openapi: 3.0.3
info:
  title: crul REST API
  description: >-

    # About the API


    The crul API allows for programatic access to core crul services and
    resources. This includes dispatching queries and results retrieval, as well
    as create, read, update, delete (CRUD) operations on core crul resources
    such as scheduled queries, credentials, domain policies, and more.
        
    # Authentication
        
    Access to the crul API requires an API key, which can be created from the
    crul web application. See [credentials](/docs/features/credentials) for
    more. The API Key should be provided as a `Authorization: crul {API KEY}`
    header.


    # Examples


    ```bash

    curl -X 'POST' \
      'http://localhost:1968/v1/sirp/query/runner/dispatch' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -H "Authorization: crul {token}" \
      -d '{ "query": "devices" }'
    ```
            
  termsOfService: https://www.crul.com/eula
  contact:
    name: API Support
    email: hello@crul.com
  version: 1.3.0
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header
  schemas:
    fileUploadSchema:
      type: object
      properties:
        fieldname:
          type: string
        encoding:
          type: string
        filename:
          type: string
        mimetype:
          type: string
      title: '#fileUploadSchema'
paths:
  /v1/sirp/env:
    get:
      operationId: env
      summary: Retrieve environment variables
      tags:
        - sirp-internal
      description: Returns service environment variables.
      responses:
        '200':
          description: Default Response
  /v1/sirp/top:
    get:
      operationId: top
      summary: Retrieve service status
      tags:
        - sirp-internal
      description: Returns service status.
      responses:
        '200':
          description: Default Response
  /v1/sirp/workers:
    get:
      operationId: workers
      summary: Retrieve query processor workers
      tags:
        - sirp-internal
      description: Returns query processor workers.
      responses:
        '200':
          description: Default Response
  /v1/sirp/diag:
    get:
      operationId: diag
      summary: Retrieve service diag file
      tags:
        - sirp-internal
      description: Returns service diag file.
      responses:
        '200':
          description: Default Response
  /v1/sirp/artifacts:
    get:
      operationId: artifacts
      summary: Retrieve service artifacts file
      tags:
        - sirp-internal
      description: Returns service artifacts file.
      parameters:
        - schema:
            type: boolean
            default: false
          in: query
          name: secrets
          required: false
      responses:
        '200':
          description: Default Response
  /v1/sirp/artifacts/upload:
    post:
      responses:
        '200':
          description: Default Response
  /v1/sirp/login:
    post:
      operationId: post-login
      summary: Sign in
      tags:
        - sirp-internal
      description: Signs in to the service.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                credential:
                  type: object
                  properties:
                    username:
                      type: string
                    password:
                      type: string
                  required:
                    - username
                    - password
              required:
                - credential
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/restart:
    post:
      operationId: post-restart
      summary: Restart service
      tags:
        - sirp
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/sirp/restart/{service}:
    post:
      operationId: post-restart-service
      summary: Restart a specific service
      tags:
        - sirp
      description: Restarts the provided service.
      parameters:
        - schema:
            type: string
            enum:
              - gonogo
              - sirp
              - secrets
              - licorice
              - workers
              - jobs
              - mentos
              - screenshot
              - krull
              - almanac
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/services/status/{service}:
    get:
      operationId: get-service-status
      summary: Retrieve service status
      tags:
        - sirp
      description: Status of the provided service.
      parameters:
        - schema:
            type: string
            enum:
              - gonogo
              - sirp
              - secrets
              - licorice
              - workers
              - jobs
              - mentos
              - screenshot
              - krull
              - almanac
          in: path
          name: service
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/services/status:
    get:
      operationId: get-services-status
      summary: Retrieve all service statuses
      tags:
        - sirp
      description: Status of all services.
      responses:
        '200':
          description: Default Response
  /v1/sirp/services/licensestatus:
    get:
      operationId: get-services-license-status
      summary: Retrieve all service license statuses
      tags:
        - sirp
      description: License status of all services.
      responses:
        '200':
          description: Default Response
  /v1/sirp/workers/status/{worker}:
    get:
      operationId: get-worker-status
      summary: Retrieve worker status
      tags:
        - sirp-internal
      description: Status of the provided worker.
      parameters:
        - schema:
            type: string
            enum:
              - cacheReaper
              - screenshotReaper
              - queryJobRefresh
              - queryJobReaper
          in: path
          name: worker
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/workers/status:
    get:
      operationId: get-workers-status
      summary: Retrieve all worker statuses
      tags:
        - sirp-internal
      description: Status of all workers.
      responses:
        '200':
          description: Default Response
  /v1/sirp/workers/{worker}/disable:
    post:
      operationId: post-disable-worker
      summary: Disable worker
      tags:
        - sirp-internal
      description: Disables the provided worker.
      parameters:
        - schema:
            type: string
            enum:
              - cacheReaper
              - screenshotReaper
              - queryJobRefresh
              - queryJobReaper
          in: path
          name: worker
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/workers/{worker}/enable:
    post:
      operationId: post-enable-worker
      summary: Enable worker
      tags:
        - sirp-internal
      description: Enables the provided worker.
      parameters:
        - schema:
            type: string
            enum:
              - cacheReaper
              - screenshotReaper
              - queryJobRefresh
              - queryJobReaper
          in: path
          name: worker
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/registry:
    get:
      operationId: commands-list
      summary: Retrieve all command metadata
      tags:
        - sirp-internal
      description: >-
        All available query commands and related metadata (help text, flags,
        etc.).
      parameters:
        - schema:
            type: string
          in: query
          name: name
          required: false
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/registry/{command}:
    get:
      operationId: command-specify
      summary: Retrieve command metadata
      tags:
        - sirp-internal
      description: >-
        All available query commands and related metadata (help text, flags,
        etc.).
      parameters:
        - schema:
            type: string
          in: path
          name: command
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/registry/{command}/flags:
    get:
      operationId: command-flags-specify
      summary: Retrieve command flags
      tags:
        - sirp-internal
      description: >-
        All available query commands and related metadata (help text, flags,
        etc.).
      parameters:
        - schema:
            type: string
          in: query
          name: name
          required: false
        - schema:
            type: string
          in: path
          name: command
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/runner:
    get:
      operationId: get-commands
      summary: Retrieve all running commands
      tags:
        - sirp-internal
      description: Returns all commands.
      responses:
        '200':
          description: Default Response
    post:
      operationId: command-dispatch
      summary: Dispatch a command
      tags:
        - sirp-internal
      description: Dispatches a single command.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                command:
                  type: string
                args:
                  type: array
                flags:
                  type: object
                prev:
                  type: string
                line:
                  type: number
                metadata:
                  type: object
                id:
                  type: string
              required:
                - command
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/runner/batch:
    post:
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/runner/{id}:
    get:
      operationId: get-command
      summary: Retrieve a command
      tags:
        - sirp-internal
      description: Retrieves the provided command.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
    delete:
      operationId: delete-command
      summary: Delete a command
      tags:
        - sirp-internal
      description: Deletes the provided command.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/runner/{id}/cancel:
    post:
      operationId: cancel-command
      summary: Cancel a command
      tags:
        - sirp-internal
      description: Cancels the provided command.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/command/runner/{id}/results:
    get:
      operationId: results
      summary: Retrieve command results
      tags:
        - sirp-internal
      description: Retrieves results for the provided command
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/parser:
    post:
      operationId: parser
      summary: Parse a query string
      tags:
        - sirp
      description: Parses a query string into a query plan.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
              required:
                - query
        required: true
      parameters:
        - schema:
            type: boolean
            default: false
          in: query
          name: parseOnly
          required: false
        - schema:
            type: boolean
            default: true
          in: query
          name: addFlags
          required: false
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/parser/{type}/renderers:
    post:
      operationId: parser-renderer
      summary: Parse a query string and decorate with attributes
      tags:
        - sirp-internal
      description: >-
        Parses a query string and returns the matched command decorators used to
        format single or multople attribute decorators.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
              required:
                - query
        required: true
      parameters:
        - schema:
            type: string
            enum:
              - attribute
              - multiattribute
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/autocompleter:
    post:
      operationId: autocompleter
      summary: Autocomplete query string
      tags:
        - sirp-internal
      description: Returns possible commands for a query string.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
                offset:
                  type: number
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner:
    get:
      operationId: queries-get
      summary: Retrieve all queries
      tags:
        - sirp
      description: Returns all queries.
      responses:
        '200':
          description: Default Response
    post:
      operationId: query-post
      summary: Dispatch a query
      tags:
        - sirp
      description: Parses, validates and starts a query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
                cleanup:
                  type: boolean
                summary:
                  type: boolean
                minutes:
                  type: integer
                  minimum: 0
                ttl:
                  type: integer
                  minimum: 0
                mode:
                  type: string
                  enum:
                    - turbo
                    - comprehensive
                metadata:
                  type: object
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/dispatch:
    post:
      operationId: query-dispatch-post
      summary: Dispatch a query and wait for completion
      tags:
        - sirp
      description: >-
        Parses, validates and dispatches a query. Will return once query is
        complete.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
                cleanup:
                  type: boolean
                summary:
                  type: boolean
                minutes:
                  type: integer
                  minimum: 0
                ttl:
                  type: integer
                  minimum: 0
                metadata:
                  type: object
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}:
    get:
      operationId: query-get
      summary: Retrieve a query
      tags:
        - sirp
      description: Returns a queries.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
    delete:
      operationId: query-delete
      summary: Delete a query
      tags:
        - sirp
      description: Deletes the provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/attributes/visible:
    get:
      operationId: get-query-attributes-visible
      summary: Retrieve visible attributes for a query
      tags:
        - sirp-internal
      description: Returns the visible attributes for a provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/attributes/renderers/{type}:
    get:
      operationId: get-query-attributes-renderers
      summary: Retrieve attribute renderers for a query
      tags:
        - sirp-internal
      description: Returns the attributes renderers for a provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
        - schema:
            type: string
            enum:
              - attribute
              - multiattribute
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/screenshots:
    get:
      operationId: query-screenshots
      summary: Retrieve query screenshots
      tags:
        - sirp
      description: Returns the screenshots associated with the provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/summary:
    get:
      operationId: query-summary
      summary: Retrieve a query summary
      tags:
        - sirp
      description: Returns the summary of the provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/diag:
    get:
      operationId: query-diag
      summary: Retrieve a query diag
      tags:
        - sirp-internal
      description: Returns the diag of the provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/summary/status:
    get:
      operationId: query-summary-status-get
      summary: Retrieve a query summary status
      tags:
        - sirp
      description: Returns the status of the provided query's summary.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/cancel:
    post:
      operationId: query-cancel
      summary: Cancel a query
      tags:
        - sirp
      description: Cancels the provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/status:
    get:
      operationId: query-status
      summary: Retrieve a query status
      tags:
        - sirp
      description: Returns the status of the provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/stages:
    get:
      operationId: query-stages-get
      summary: Retrieve all stages for a query
      tags:
        - sirp
      description: Returns all stages for provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/commands:
    get:
      operationId: query-commands-get
      summary: Retrieve all commands for a query
      tags:
        - sirp
      description: Returns all commands for provided query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/{stage}:
    get:
      operationId: query-stage-get
      summary: Retrieve a stage for a query
      tags:
        - sirp
      description: Returns the stage for provided query and stage.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
        - schema:
            type: string
          in: path
          name: stage
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/{stage}/commands:
    get:
      operationId: query-stage-commands-get
      summary: Retrieve commands for a query stage
      tags:
        - sirp
      description: Returns all commands for provided query stage.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
        - schema:
            type: string
          in: path
          name: stage
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/{stage}/results:
    get:
      operationId: query-stage-results-get
      summary: Retrieve results for a query stage
      tags:
        - sirp
      description: Returns results for provided query stage.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
        - schema:
            type: string
          in: path
          name: stage
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/results:
    get:
      operationId: query-results-get
      summary: Retrieve query results
      tags:
        - sirp
      description: Retrieves the results of a completed query.
      parameters:
        - schema:
            type: string
          in: query
          name: mode
          required: false
        - schema:
            type: integer
          in: query
          name: offset
          required: false
        - schema:
            type: integer
          in: query
          name: limit
          required: false
        - schema:
            type: boolean
          in: query
          name: sort
          required: false
        - schema:
            type: string
          in: query
          name: sortKey
          required: false
        - schema:
            type: string
          in: query
          name: sortOrder
          required: false
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/results/stats:
    get:
      operationId: query-stats
      summary: Retrieve query stats
      tags:
        - sirp-internal
      description: Returns the stats of the results of a completed query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/results/convert:
    post:
      operationId: query-convert
      summary: Convert query results
      tags:
        - sirp-internal
      description: Converts the results of a completed query to csv.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/runner/{id}/results/export/{mode}:
    get:
      operationId: query-export
      summary: Export query results
      tags:
        - sirp-internal
      description: Exports a csv of the results of a completed query.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for a stream. (A UUID specified by RFC4122).
        - schema:
            type: string
            enum:
              - csv
              - ndjson
          in: path
          name: mode
          required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/scheduler:
    get:
      operationId: scheduled-queries-get
      summary: Retrieve all scheduled queries
      tags:
        - sirp-scheduled
      description: Returns all scheduled queries.
      responses:
        '200':
          description: Default Response
    post:
      operationId: scheduled-query-post
      summary: Add a scheduled query
      tags:
        - sirp-scheduled
      description: Parses, validates and schedules a query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
                cleanup:
                  type: boolean
                summary:
                  type: boolean
                minutes:
                  type: integer
                  minimum: 0
                ttl:
                  type: integer
                  minimum: 0
                metadata:
                  type: object
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/scheduler/{id}:
    get:
      operationId: scheduled-query-get
      summary: Retrieve a scheduled query
      tags:
        - sirp-scheduled
      description: Returns the provided scheduled query.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: The unique identifier for a scheduled artifact.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: scheduled-query-delete
      summary: Delete a scheduled query
      tags:
        - sirp-scheduled
      description: Deletes the provided scheduled query.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: The unique identifier for a scheduled artifact.
      responses:
        '200':
          description: Default Response
    put:
      operationId: scheduled-query-put
      summary: Update a scheduled query
      tags:
        - sirp-scheduled
      description: Updates a scheduled query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
                cleanup:
                  type: boolean
                summary:
                  type: boolean
                minutes:
                  type: integer
                  minimum: 0
                ttl:
                  type: integer
                  minimum: 0
                metadata:
                  type: object
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/scheduler/{id}/enable:
    post:
      operationId: scheduled-query-enable
      summary: Enable a scheduled query
      tags:
        - sirp-scheduled
      description: Enables the provided scheduled query.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: The unique identifier for a scheduled artifact.
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/scheduler/{id}/disable:
    post:
      operationId: scheduled-query-disable
      summary: Disable a scheduled query
      tags:
        - sirp-scheduled
      description: Disables the provided scheduled query.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
          description: The unique identifier for a scheduled artifact.
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/saved:
    get:
      operationId: query-templates-get
      summary: List query templates
      tags:
        - sirp-templates
      description: Lists all query templates.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: query
          name: name
          required: false
          description: The query name/label reference.
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: query
          name: sortBy
          required: false
          description: A sorting key.
      responses:
        '200':
          description: Default Response
    post:
      operationId: query-template-create
      summary: Create a new query template
      tags:
        - sirp-templates
      description: Create a new query template.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The query name/label reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                description:
                  description: The query description.
                  type: string
                  minLength: 1
                  maxLength: 100000
                query:
                  description: The crul query.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                templateSchema:
                  description: >-
                    The template data schema; underlying inputs including
                    properties and types.
                  type: object
              required:
                - name
                - description
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/saved/{id}:
    get:
      operationId: query-template-get
      summary: Retrieve a query template
      tags:
        - sirp-templates
      description: Retrieve a query template.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
    put:
      operationId: query-template-update
      summary: Update a query template
      tags:
        - sirp-templates
      description: Update a query template.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The query name/label reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                description:
                  description: The query description.
                  type: string
                  minLength: 1
                  maxLength: 100000
                query:
                  description: The crul query.
                  type: string
                  minLength: 1
                  maxLength: 1048576
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
    delete:
      operationId: query-template-delete
      summary: Delete a query template
      tags:
        - sirp-templates
      description: Delete a query template.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/saved/dispatch:
    post:
      operationId: query-template-dispatch-post
      summary: Dispatch a query template and wait for completion
      tags:
        - sirp-templates
      description: Parses, validates and dispatches a query template.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The query string.
                  type: string
                  minimumLength: 1
                values:
                  type: object
                cleanup:
                  type: boolean
                summary:
                  type: boolean
                minutes:
                  type: integer
                  minimum: 0
                ttl:
                  type: integer
                  minimum: 0
                metadata:
                  type: object
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/saved/parse:
    post:
      operationId: query-template-parses
      summary: Parse a query template
      tags:
        - sirp-templates
      description: Parses a query template.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  description: The crul query.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                values:
                  type: object
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/uploads/{name}/export/{mode}:
    get:
      operationId: file-upload-export-get
      summary: Export a cellar file
      tags:
        - cellar
      description: Export an uploaded file.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
        - schema:
            type: string
            enum:
              - csv
              - ndjson
          in: path
          name: mode
          required: true
          description: The file export mode.
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/uploads:
    get:
      operationId: file-upload-list
      summary: Retrieve all cellar files
      tags:
        - cellar
      description: List all uploaded files.
      responses:
        '200':
          description: Default Response
    post:
      operationId: file-upload-create
      summary: Upload a cellar file
      tags:
        - cellar
      description: Upload and store a new file.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: object
                  properties:
                    value:
                      description: The file name.
                      type: string
                      pattern: ^[A-Za-z0-9-_. ]+$
                      minLength: 1
                      maxLength: 1000
              required:
                - name
                - fileContent
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/uploads/{name}:
    get:
      operationId: file-upload-get
      summary: Retrieve a cellar file
      tags:
        - cellar
      description: Retrieve an uploaded file.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: file-upload-delete
      summary: Delete a cellar file
      tags:
        - cellar
      description: Delete an uploaded file.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/manifests:
    get:
      operationId: cellar-manifest-list
      summary: Retrieve all cellar manifests
      tags:
        - cellar
      description: Retrieve all cellar manifests.
      responses:
        '200':
          description: Default Response
    post:
      operationId: cellar-manifest-create
      summary: Add a cellar manifest
      tags:
        - cellar
      description: Add a cellar manifest for stored content.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The file name.
                  type: string
                  pattern: ^[A-Za-z0-9-_. ]+$
                  minLength: 1
                  maxLength: 1000
                store:
                  description: The store name.
                  type: string
                  pattern: ^[A-Za-z0-9-_. ]+$
                  minLength: 1
                  maxLength: 1000
                type:
                  description: The store type.
                  type: string
                  enum:
                    - file
                    - gcpGCS
                    - awsS3
                    - azureBlob
                    - kafka
                    - splunk
                    - cribl
                    - influxdb
                    - elasticsearch
                    - gcpPubSub
                    - gcpBigQuery
                    - awsKinesis
                    - http
                    - awsKinesisFirehose
                    - awsDynamoDB
                    - awsSQS
                    - awsSNS
                    - azureTable
                    - azureQueue
                    - cassandra
                    - redisPubSub
                    - sftp
                    - nats
                    - pulsar
                    - mqtt
                    - sql
                    - localFile
                    - timeplus
                    - graphistry
                    - snowflake
                screenshots:
                  description: An array of screenshot references to keep alive.
                  type: array
                attributesContext:
                  description: >-
                    An object containing visible attributes and attribute
                    renderers.
                  type: object
              required:
                - name
                - store
                - type
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/manifests/{name}:
    get:
      operationId: cellar-manifest-get
      summary: Retrieve a cellar manifest
      tags:
        - cellar
      description: Retrieve a cellar manifest.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: cellar-manifest-delete
      summary: Delete a cellar manifest
      tags:
        - cellar
      description: Deletes a cellar manifest.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/manifests/{name}/touch:
    post:
      operationId: cellar-manifest-touch
      summary: Touch a store manifest
      tags:
        - cellar
      description: Touches a cellar manifest.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
      responses:
        '200':
          description: Default Response
  /v1/sirp/cellar/manifests/{name}/errors/touch:
    post:
      operationId: cellar-manifest-errors-touch
      summary: Touch a cellar manifest errors
      tags:
        - cellar
      description: Touches a cellar manifest errors.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The file name.
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/library:
    get:
      operationId: query-library-list
      summary: Retrieve all library queries
      tags:
        - sirp-internal
      description: List all library queries.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: query
          name: name
          required: false
          description: The query name/label reference.
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: query
          name: sortBy
          required: false
          description: A sorting key.
      responses:
        '200':
          description: Default Response
  /v1/sirp/updates/check/{uuid}:
    get:
      operationId: update-check
      summary: Update check
      tags:
        - sirp-internal
      description: Perform an in-product update check.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: uuid
          required: true
          description: The unique identifier for the user. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/updates/checkstub:
    get:
      responses:
        '200':
          description: Default Response
  /v1/sirp/server/info:
    get:
      operationId: server-info
      summary: Retrieve server information
      tags:
        - sirp-internal
      description: Server information including version and platform details.
      responses:
        '200':
          description: Default Response
  /v1/sirp/licenses:
    get:
      operationId: licenses
      summary: Retrieve available licenses
      tags:
        - sirp-internal
      description: Retrieves available licenses.
      parameters:
        - schema:
            type: string
          in: query
          name: access_token
          required: false
          description: The access token for the user.
        - schema:
            type: string
            format: uuid
          in: query
          name: uuid
          required: false
          description: The unique identifier for the user. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/sirp/query/tokens:
    get:
      operationId: query-tokens
      summary: Retrieve all query tokens
      tags:
        - sirp-internal
      description: >-
        Available query tokens including global, checkpoints, credentials and
        prompts.
      responses:
        '200':
          description: Default Response
  /v1/licorice/restart:
    post:
      operationId: restart
      summary: Restart service
      tags:
        - licorice
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/licorice/validate:
    get:
      operationId: validate
      summary: Validate the current license
      tags:
        - licorice
      description: Validates the current license.
      responses:
        '200':
          description: Default Response
  /v1/licorice/validate/{id}:
    get:
      operationId: validate-specify
      summary: Validate a license
      tags:
        - licorice
      description: Validates the provided license.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/licorice/license:
    get:
      operationId: license-list
      summary: Retrieve all licenses
      tags:
        - licorice
      description: Retrieves all licenses.
      responses:
        '200':
          description: Default Response
    post:
      operationId: license-create
      summary: Add a license
      tags:
        - licorice
      description: Adds a new license.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                licenseKey:
                  $ref: '#/components/schemas/fileUploadSchema'
              required:
                - licenseKey
        required: true
      responses:
        '200':
          description: Default Response
  /v1/licorice/license/{id}:
    get:
      operationId: license-get
      summary: Retrieve a license
      tags:
        - licorice
      description: Retrieves the provided license.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
    delete:
      operationId: license-delete
      summary: Delete a license
      tags:
        - licorice
      description: Deletes the provided license.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/licorice/license/current:
    get:
      operationId: license-current-get
      summary: Retrieve the current license
      tags:
        - licorice
      description: Retrieves the current license.
      responses:
        '200':
          description: Default Response
  /v1/licorice/license/upload:
    post:
      operationId: license-upload
      summary: Upload a license
      tags:
        - licorice
      description: Upload a new license.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                licenseKey:
                  $ref: '#/components/schemas/fileUploadSchema'
              required:
                - licenseKey
        required: true
      responses:
        '200':
          description: Default Response
  /v1/workers/env:
    get:
      operationId: env
      summary: Retrieve environment variables
      tags:
        - workers
      description: Returns service environment variables.
      responses:
        '200':
          description: Default Response
  /v1/workers/top:
    get:
      operationId: top
      summary: Retrieve service status
      tags:
        - workers
      description: Returns service status.
      responses:
        '200':
          description: Default Response
  /v1/workers/restart:
    post:
      operationId: restart
      summary: Restart the service
      tags:
        - workers
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/workers/{type}:
    get:
      operationId: get-workers
      summary: Retrieve all workers
      tags:
        - workers
      description: Retrieves all workers
      parameters:
        - schema:
            type: string
            enum:
              - query
              - command
              - summary
            default: query
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
    post:
      operationId: add-worker
      summary: Add a worker
      tags:
        - workers
      description: Adds a new workers
      parameters:
        - schema:
            type: string
            enum:
              - query
              - command
              - summary
            default: query
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
  /v1/workers/{type}/{pid}:
    get:
      operationId: get-worker
      summary: Retrieve a worker
      tags:
        - workers
      description: Retrieves the provided worker.
      parameters:
        - schema:
            type: string
            enum:
              - query
              - command
              - summary
            default: query
          in: path
          name: type
          required: true
        - schema:
            type: string
          in: path
          name: pid
          required: true
      responses:
        '200':
          description: Default Response
    delete:
      operationId: delete-worker
      summary: Delete a worker
      tags:
        - workers
      description: Deletes the provided worker.
      parameters:
        - schema:
            type: string
            enum:
              - query
              - command
              - summary
            default: query
          in: path
          name: type
          required: true
        - schema:
            type: string
          in: path
          name: pid
          required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/restart:
    post:
      operationId: restart
      summary: Restart the service
      tags:
        - secrets
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/secrets:
    get:
      operationId: secrets-list
      summary: Retrieve all secrets
      tags:
        - secrets
      description: Lists secrets.
      parameters:
        - schema:
            type: string
            enum:
              - store
              - credential
              - custom
              - apikey
              - user
              - checkpoint
              - prompt
          in: query
          name: type
          required: false
      responses:
        '200':
          description: Default Response
    post:
      operationId: secrets-create
      summary: Create a secret
      tags: &ref_0
        - secrets
      description: Creates a new secret.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - store
                    - credential
                    - custom
                    - apikey
                    - user
                    - checkpoint
                    - prompt
                providerType:
                  type: string
                secret:
                  type: string
                  minLength: 1
                  maxLength: 100000
                name:
                  type: string
                  minLength: 1
                  maxLength: 250
                metadata:
                  type: object
                  properties:
                    type: false
              required:
                - name
        required: true
      responses:
        '200':
          description: Default Response
    put:
      operationId: secrets-create
      summary: Create a secret
      tags: *ref_0
      description: Creates a new secret.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - store
                    - credential
                    - custom
                    - apikey
                    - user
                    - checkpoint
                    - prompt
                providerType:
                  type: string
                secret:
                  type: string
                  minLength: 1
                  maxLength: 100000
                name:
                  type: string
                  minLength: 1
                  maxLength: 250
                metadata:
                  type: object
                  properties:
                    type: false
              required:
                - name
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/{name}:
    get:
      operationId: secrets-get
      summary: Retrieve a secret
      tags:
        - secrets
      description: Gets the secret with the provided name.
      parameters:
        - schema:
            type: string
            enum:
              - store
              - credential
              - custom
              - apikey
              - user
              - checkpoint
              - prompt
          in: query
          name: type
          required: false
        - schema:
            type: string
          in: path
          name: name
          required: true
      responses:
        '200':
          description: Default Response
    delete:
      operationId: secrets-delete
      summary: Delete a secret
      tags:
        - secrets
      description: Deletes the secret with the provided name.
      parameters:
        - schema:
            type: string
            enum:
              - store
              - credential
              - custom
              - apikey
              - user
              - checkpoint
              - prompt
          in: query
          name: type
          required: false
        - schema:
            type: string
          in: path
          name: name
          required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/stores:
    get:
      operationId: stores-list
      summary: Retrieve all stores
      description: Lists stores.
      responses:
        '200':
          description: Default Response
    post:
      operationId: store-create
      summary: Create a store
      tags:
        - stores
      description: Creates a new store.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - gcpGCS
                    - gcpPubSub
                    - gcpBigQuery
                    - awsS3
                    - awsDynamoDB
                    - awsSNS
                    - awsSQS
                    - awsKinesis
                    - awsKinesisFirehose
                    - azureBlob
                    - azureTable
                    - azureQueue
                    - kafka
                    - splunk
                    - cribl
                    - influxdb
                    - elasticsearch
                    - hdfs
                    - http
                    - localFile
                    - mqtt
                    - amqp
                    - sql
                    - nats
                    - nsq
                    - redisPubSub
                    - cassandra
                    - pulsar
                    - sftp
                    - timeplus
                    - snowflake
                    - graphistry
              allOf:
                - if:
                    properties:
                      type:
                        enum:
                          - gcpGCS
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcpGCS
                        description: GCP GCS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              bucketName:
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rootDirectory:
                                type: string
                                minLength: 0
                                maxLength: 1000
                            required:
                              - bucketName
                              - rootDirectory
                            default:
                              rootDirectory: ''
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              jsonKeyFile:
                                title: JSON Key File
                                description: >-
                                  A JSON Key File for a service account
                                  containing full access to the provided bucket
                                type: string
                                format: password
                            required:
                              - jsonKeyFile
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - gcpPubSub
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcpPubSub
                        description: GCP PubSub
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              project:
                                title: Project
                                description: The project ID of the topic to publish to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              topic:
                                title: topic
                                description: The topic to publish to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              publishTimeout:
                                title: Publish Timeout
                                description: >-
                                  The maximum length of time to wait before
                                  abandoning a publish attempt for a message.
                                type: string
                                default: 60s
                              orderingKey:
                                title: Ordering Key
                                description: >-
                                  The ordering key to use for publishing
                                  messages.
                                type: string
                                default: ''
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - project
                              - topic
                            default:
                              publishTimeout: 60s
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - gcpBigQuery
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcpBigQuery
                        description: GCP BigQuery
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              project:
                                title: Project
                                description: >-
                                  The project ID of the dataset to insert data
                                  to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              dataset:
                                title: Dataset
                                description: The BigQuery Dataset ID.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              table:
                                title: Table
                                description: The table to insert messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              writeDisposition:
                                title: Write Disposition
                                description: >-
                                  Specifies how existing data in a destination
                                  table is treated.
                                type: string
                                enum:
                                  - WRITE_APPEND
                                  - WRITE_EMPTY
                                  - WRITE_TRUNCATE
                                default: WRITE_APPEND
                              createDisposition:
                                title: Create Disposition
                                description: >-
                                  Specifies the circumstances under which
                                  destination table will be created.
                                type: string
                                enum:
                                  - CREATE_IF_NEEDED
                                  - CREATE_NEVER
                                default: CREATE_IF_NEEDED
                              format:
                                title: Format
                                description: The format of each incoming message.
                                type: string
                                enum:
                                  - NEWLINE_DELIMITED_JSON
                                default: NEWLINE_DELIMITED_JSON
                              ignoreUnknownValues:
                                title: Ignore Unknown Values
                                decription: >-
                                  Causes values not matching the schema to be
                                  tolerated. Unknown values are ignored. For CSV
                                  this ignores extra values at the end of a
                                  line. For JSON this ignores named values that
                                  do not match any column name. Records
                                  containing unknown values are treated as
                                  "bad".
                                type: boolean
                                default: false
                              maxBadRecords:
                                title: Max Bad Records
                                description: >-
                                  The maximum number of bad records that will be
                                  ignored when reading data.
                                type: integer
                                default: 0
                              autoDetect:
                                title: Auto Detect
                                description: >-
                                  Indicates if we should automatically infer the
                                  options and schema for CSV and JSON sources.
                                type: boolean
                                default: false
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - project
                              - dataset
                              - table
                            default:
                              writeDisposition: WRITE_APPEND
                              createDisposition: CREATE_IF_NEEDED
                              format: NEWLINE_DELIMITED_JSON
                              ignoreUnknownValues: false
                              maxBadRecords: 0
                              autoDetect: false
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - awsS3
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsS3
                        description: AWS S3
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              bucketName:
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rootDirectory:
                                type: string
                                minLength: 0
                                maxLength: 1000
                            required:
                              - bucketName
                              - rootDirectory
                            default:
                              rootDirectory: ''
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              IAM_USER_KEY:
                                title: IAM User Key
                                description: ''
                                type: string
                              IAM_USER_SECRET:
                                title: IAM User Secret
                                description: ''
                                type: string
                                format: password
                            required:
                              - IAM_USER_KEY
                              - IAM_USER_SECRET
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsDynamoDB
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsDynamoDB
                        description: AWS DynamoDB
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              table:
                                title: Table
                                description: The table to store messages in.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              ttl:
                                title: Time To Live (TTL)
                                description: >-
                                  A TTL to set for items, calculated from the
                                  moment the message is sent.
                                type: string
                                minLength: 1
                                maxLength: 250
                              ttlKey:
                                title: TTL Key
                                description: The column key to place the TTL value within.
                                type: string
                                minLength: 1
                                maxLength: 250
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries. If set to zero
                                  there is no limit.
                                type: integer
                                default: 3
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - table
                              - region
                            default:
                              region: us-west-1
                              maxRetries: 3
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsSNS
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsSNS
                        description: AWS SNS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              topicArn:
                                title: Topic ARN
                                description: The topic to publish to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              messageGroupId:
                                title: Message Group ID
                                description: 'A group ID to set for messages. '
                                type: string
                                minLength: 1
                                maxLength: 250
                              messageDeduplicationId:
                                title: Message Deduplication ID
                                description: A deduplication ID to set for messages.
                                type: string
                                minLength: 1
                                maxLength: 250
                              timeout:
                                title: Timeout
                                description: >-
                                  The maximum period to wait on an upload before
                                  abandoning it and reattempting.
                                type: string
                                default: 5s
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - topicArn
                              - region
                            default:
                              timeout: 5s
                              region: us-west-1
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsSQS
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsSQS
                        description: AWS SQS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: The URL of the target SQS queue.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              messageGroupId:
                                title: Message Group ID
                                description: 'A group ID to set for messages. '
                                type: string
                                minLength: 1
                                maxLength: 250
                              messageDeduplicationId:
                                title: Message Deduplication ID
                                description: 'A deduplication ID to set for messages. '
                                type: string
                                minLength: 1
                                maxLength: 250
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - region
                            default:
                              region: us-west-1
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsKinesis
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsKinesis
                        description: AWS Kinesis
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              stream:
                                title: Stream
                                description: The stream to publish messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              partitionKey:
                                title: Partition Key
                                description: A key for partitioning messages.
                                type: string
                                minLength: 1
                                maxLength: 250
                              hashKey:
                                title: Hash Key
                                description: A hash key for partitioning messages.
                                type: string
                                minLength: 1
                                maxLength: 250
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries before giving up
                                  on the request. If set to zero there is no
                                  limit.
                                type: integer
                                default: 0
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - stream
                              - partitionKey
                              - region
                            default:
                              region: us-west-2
                              maxRetries: 0
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsKinesisFirehose
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsKinesisFirehose
                        description: AWS Kinesis Firehose
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              stream:
                                title: Stream
                                description: The stream to publish messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                                default: ''
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries before giving up
                                  on the request. If set to zero there is no
                                  limit.
                                type: integer
                                default: 0
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - stream
                              - region
                            default:
                              region: us-west-1
                              maxRetries: 0
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - azureBlob
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: azureBlob
                        description: Azure Blob Storage
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              containerName:
                                title: Container
                                description: The container for uploading the messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rootDirectory:
                                type: string
                                minLength: 0
                                maxLength: 1000
                            required:
                              - containerName
                            default:
                              rootDirectory: ''
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Storage Connection String
                                type: object
                                properties:
                                  storageConnectionString:
                                    title: Storage Connection String
                                    description: A storage account connection string.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageConnectionString
                              - title: Storage Account
                                type: object
                                properties:
                                  storageAccount:
                                    title: Storage Account
                                    description: The storage account to upload messages to.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  storageAccessKey:
                                    title: Storage Access Key
                                    description: The storage account access key.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageAccount
                                  - storageAccessKey
                              - title: Storage SAS Token
                                type: object
                                properties:
                                  storageSASToken:
                                    title: Storage SAS Token
                                    description: The storage account SAS token.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageSASToken
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - azureTable
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: azureTable
                        description: Azure Table Storage
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              tableName:
                                title: Table Name
                                description: The table to store messages into.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              partitionKey:
                                title: Partition Key
                                description: The partition key.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rowKey:
                                title: Row Key
                                description: The row key.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              insertType:
                                title: Insert Type
                                description: Type of insert operation.
                                type: string
                                enum:
                                  - INSERT
                                  - INSERT_MERGE
                                  - INSERT_REPLACE
                                default: INSERT
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - tableName
                            default:
                              insertType: DEFAULT
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Storage Account
                                type: object
                                properties:
                                  storageAccount:
                                    title: Storage Account
                                    description: The storage account to upload messages to.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  storageAccessKey:
                                    title: Storage Access Key
                                    description: The storage account access key.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageAccount
                                  - storageAccessKey
                              - title: Storage Connection String
                                type: object
                                properties:
                                  storageConnectionString:
                                    title: Storage Connection String
                                    description: A storage account connection string.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageConnectionString
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - azureQueue
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: azureQueue
                        description: Azure Queue Storage
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              queueName:
                                title: Queue Name
                                description: The name of the target Queue Storage queue.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              ttl:
                                title: TTL
                                description: >-
                                  The TTL of each individual message as a
                                  duration string. Defaults to 0, meaning no
                                  retention period is set
                                type: string
                                default: '0'
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - queueName
                            default:
                              ttl: '0'
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Storage Account
                                type: object
                                properties:
                                  storageAccount:
                                    title: Storage Account
                                    description: The storage account to upload messages to.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  storageAccessKey:
                                    title: Storage Access Key
                                    description: The storage account access key.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageAccount
                                  - storageAccessKey
                              - title: Storage Connection String
                                type: object
                                properties:
                                  storageConnectionString:
                                    title: Storage Connection String
                                    description: A storage account connection string.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageConnectionString
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - kafka
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: kafka
                        description: Kafka Topic
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              brokers:
                                title: Brokers
                                description: ''
                                type: array
                                items:
                                  type: string
                                  format: uri
                                minItems: 1
                              clientId:
                                title: Client Id
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              topic:
                                title: Default Topic (can be overidden)
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - topic
                              - brokers
                              - clientId
                            default:
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              mechanism:
                                title: Mechanism
                                description: ''
                                type: string
                                enum:
                                  - PLAIN
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - username
                              - password
                              - mechanism
                              - tls
                            default:
                              mechanism: PLAIN
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - splunk
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: splunk
                        description: Splunk HTTP Event Collector
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              endpoint:
                                title: HTTP Event Collector (HEC) Endpoint
                                description: The endpoint to send data to.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              source:
                                title: Source
                                description: >-
                                  The source to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              sourcetype:
                                title: Sourcetype
                                description: >-
                                  The sourcetype to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              host:
                                title: Host
                                description: >-
                                  The host to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              index:
                                title: Index
                                description: >-
                                  The index to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - endpoint
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: HEC Token
                                description: >-
                                  A valid HEC token associated with the provided
                                  endpoint.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - cribl
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: cribl
                        description: Cribl HTTP Event Collector
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              endpoint:
                                title: HTTP Event Collector (HEC) Endpoint
                                description: The endpoint to send data to.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              source:
                                title: Source
                                description: >-
                                  The source to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              sourcetype:
                                title: Sourcetype
                                description: >-
                                  The sourcetype to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              host:
                                title: Host
                                description: >-
                                  The host to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              index:
                                title: Index
                                description: >-
                                  The index to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - endpoint
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: HEC Token
                                description: >-
                                  A valid HEC token associated with the provided
                                  endpoint.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - influxdb
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: influxdb
                        description: InfluxDB
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              endpoint:
                                title: InfluxDB Write Endpoint
                                description: >-
                                  The endpoint to send data to. (ex.
                                  https://us-east-1-1.aws.cloud2.influxdata.com)
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              bucket:
                                title: Bucket
                                description: The bucket to write data to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              precision:
                                title: Precision
                                description: The bucket to write data to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - endpoint
                              - bucket
                              - precision
                            default:
                              throughput: 10
                              precision: ms
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: API Token
                                description: >-
                                  A valid API token associated with the provided
                                  endpoint.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - elasticsearch
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: elasticsearch
                        description: Elasticsearch Cluster
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: A list of URLs to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - http://localhost:9200
                              index:
                                title: Index
                                description: The index to place messages.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              action:
                                title: Action
                                description: The action to take on the document.
                                type: string
                                enum:
                                  - index
                                  - update
                                  - delete
                                default: index
                              type:
                                title: Type
                                description: The document type.
                                type: string
                                default: doc
                              timeout:
                                title: Timeout
                                description: >-
                                  The maximum time to wait before abandoning a
                                  request (and trying again).
                                type: string
                                default: 5s
                              gzipCompression:
                                title: gzip Compression
                                description: Enable gzip compression on the request side.
                                type: boolean
                                default: false
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - addresses
                              - index
                              - action
                              - type
                              - timeout
                              - gzipCompression
                            default:
                              addresses:
                                - http://localhost:9200
                              action: index
                              type: doc
                              timeout: 5s
                              gzipCompression: false
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              enabled:
                                title: Enabled
                                type: boolean
                                default: false
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - enabled
                            default:
                              enabled: false
                              tls:
                                enabled: false
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - hdfs
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: hdfs
                        description: HDFS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: A list of addresses to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - localhost:9000
                              user:
                                title: User
                                description: A user identifier.
                                type: string
                                minLength: 1
                                maxLength: 1000
                                default: crul_hdfs
                              directory:
                                title: Directory
                                description: >-
                                  A directory to store message files within. If
                                  the directory does not exist it will be
                                  created.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              path:
                                title: Path
                                description: The path to upload messages as.
                                type: string
                                minLength: 1
                                maxLength: 1000
                                default: >-
                                  ${!count("files")}-${!timestamp_unix_nano()}.txt
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - addresses
                              - user
                              - directory
                              - path
                            default:
                              addresses:
                                - localhost:9000
                              user: crul_hdfs
                              path: ${!count("files")}-${!timestamp_unix_nano()}.txt
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - http
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: http
                        description: HTTP
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: The URL to connect to.
                                type: string
                                format: uri
                              timeout:
                                title: Timeout
                                description: A static timeout to apply to requests.
                                type: string
                                default: 5s
                              retryPeriod:
                                title: Retry Period
                                description: >-
                                  The base period to wait between failed
                                  requests.
                                default: 1s
                              retries:
                                title: Retries
                                description: The maximum number of retry attempts to make.
                                type: integer
                                default: 3
                              maxRetryBackoff:
                                title: Max Retry Backoff
                                description: >-
                                  The maximum period to wait between failed
                                  requests.
                                type: string
                                default: 300s
                              verb:
                                title: HTTP Verb
                                description: A verb to connect with.
                                type: string
                                enum:
                                  - GET
                                  - POST
                                  - DELETE
                                default: GET
                              backoffOn:
                                title: Backoff Status Codes
                                description: >-
                                  A list of status codes whereby the request
                                  should be considered to have failed and
                                  retries should be attempted, but the period
                                  between them should be increased gradually.
                                type: array
                                minItems: 1
                                items:
                                  type: integer
                                default:
                                  - 429
                              dropOn:
                                title: Drop Status Codes
                                description: >-
                                  A list of status codes whereby the request
                                  should be considered to have failed but
                                  retries should not be attempted.
                                type: array
                                items:
                                  type: integer
                                default: []
                              successfulOn:
                                title: Success Status Codes (Non 2XX)
                                description: >-
                                  A list of status codes whereby the attempt
                                  should be considered successful, this is
                                  useful for dropping requests that return
                                  non-2XX codes indicating that the message has
                                  been dealt with.
                                type: array
                                items:
                                  type: integer
                                default: []
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - verb
                            default:
                              timeout: 5s
                              retryPeriod: 1s
                              retries: 3
                              maxRetryBackoff: 300s
                              verb: GET
                              backoffOn:
                                - 429
                              dropOn: []
                              successfulOn: []
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            anyOf:
                              - title: OAuth
                                type: object
                                properties:
                                  oauth:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      consumerKey:
                                        title: Consumer Key
                                        description: >-
                                          A value used to identify the client to
                                          the service provider.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      consumerSecret:
                                        title: Consumer Secret
                                        description: >-
                                          A secret used to establish ownership of
                                          the consumer key.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                      accessToken:
                                        title: Access Token
                                        description: >-
                                          A value used to gain access to the
                                          protected resources on behalf of the
                                          user.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      accessTokenSecret:
                                        title: Access Token Secret
                                        description: >-
                                          A secret provided in order to establish
                                          ownership of a given access token.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                      requestUrl:
                                        title: Request URL
                                        description: The URL of the OAuth provider.
                                        type: string
                                        format: uri
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                  headers:
                                    title: Headers
                                    description: Explicit headers.
                                    type: array
                                    default: []
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          title: Header Name
                                          type: string
                                          default: ''
                                        value:
                                          title: Header Value
                                          type: string
                                          default: ''
                                      required:
                                        - key
                                        - value
                                  tls:
                                    title: Advanced TLS Settings
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enable custom TLS settings
                                        description: >-
                                          If set, this will override the default
                                          TLS settings with the provided TLS
                                          settings.
                                        type: boolean
                                        default: true
                                      skipCertificateVerification:
                                        title: Skip Certificate Verification
                                        description: >-
                                          Whether to skip server side certificate
                                          verification.
                                        type: boolean
                                        default: false
                                      enableRenegotiation:
                                        title: Enable Renegotiation
                                        description: >-
                                          Whether to allow the remote server to
                                          repeatedly request renegotiation.
                                        type: boolean
                                        default: false
                                      certificates:
                                        oneOf:
                                          - type: object
                                            title: Root CA File
                                            properties:
                                              rootCAFile:
                                                title: Root CA File
                                                description: >-
                                                  An optional path of a root certificate
                                                  authority file to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCAFile
                                          - type: object
                                            title: Root CA
                                            properties:
                                              rootCA:
                                                title: Root CA
                                                description: >-
                                                  A plain text root certificate authority
                                                  to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCA
                                          - title: Client Certificates (Plain text)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificate:
                                                      title: Certificate
                                                      description: A plain text certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    key:
                                                      title: Certificate Key
                                                      description: A plain text certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certificate
                                                    - key
                                            required:
                                              - clientCertificates
                                          - title: Client Certificates (Files)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificateFile:
                                                      title: Certificate File
                                                      description: The path to a certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    keyFile:
                                                      title: Certificate Key File
                                                      description: The path to a certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certifcateFile
                                                    - keyFile
                                            required:
                                              - clientCertificates
                                    required:
                                      - enabled
                                    default:
                                      enabled: true
                              - title: OAuth2
                                type: object
                                properties:
                                  oauth2:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      clientKey:
                                        title: Client Key
                                        description: >-
                                          A value used to identify the client to
                                          the token provider.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      clientSecret:
                                        title: Client Secret
                                        description: >-
                                          A secret used to establish ownership of
                                          the client key.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                      tokenUrl:
                                        title: Token URL
                                        description: The URL of the token provider.
                                        type: string
                                        format: uri
                                      scopes:
                                        title: Scopes
                                        description: >-
                                          A list of optional requested
                                          permissions.
                                        type: array
                                        default: []
                                        items:
                                          type: string
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                  headers:
                                    title: Headers
                                    description: Explicit headers.
                                    type: array
                                    default: []
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          title: Header Name
                                          type: string
                                          default: ''
                                        value:
                                          title: Header Value
                                          type: string
                                          default: ''
                                      required:
                                        - key
                                        - value
                                  tls:
                                    title: Advanced TLS Settings
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enable custom TLS settings
                                        description: >-
                                          If set, this will override the default
                                          TLS settings with the provided TLS
                                          settings.
                                        type: boolean
                                        default: true
                                      skipCertificateVerification:
                                        title: Skip Certificate Verification
                                        description: >-
                                          Whether to skip server side certificate
                                          verification.
                                        type: boolean
                                        default: false
                                      enableRenegotiation:
                                        title: Enable Renegotiation
                                        description: >-
                                          Whether to allow the remote server to
                                          repeatedly request renegotiation.
                                        type: boolean
                                        default: false
                                      certificates:
                                        oneOf:
                                          - type: object
                                            title: Root CA File
                                            properties:
                                              rootCAFile:
                                                title: Root CA File
                                                description: >-
                                                  An optional path of a root certificate
                                                  authority file to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCAFile
                                          - type: object
                                            title: Root CA
                                            properties:
                                              rootCA:
                                                title: Root CA
                                                description: >-
                                                  A plain text root certificate authority
                                                  to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCA
                                          - title: Client Certificates (Plain text)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificate:
                                                      title: Certificate
                                                      description: A plain text certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    key:
                                                      title: Certificate Key
                                                      description: A plain text certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certificate
                                                    - key
                                            required:
                                              - clientCertificates
                                          - title: Client Certificates (Files)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificateFile:
                                                      title: Certificate File
                                                      description: The path to a certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    keyFile:
                                                      title: Certificate Key File
                                                      description: The path to a certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certifcateFile
                                                    - keyFile
                                            required:
                                              - clientCertificates
                                    required:
                                      - enabled
                                    default:
                                      enabled: true
                              - title: JWT
                                type: object
                                properties:
                                  jwt:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      claims:
                                        title: Claims
                                        description: >-
                                          A value used to identify the claims that
                                          issued the JWT.
                                        type: object
                                        properties:
                                          key:
                                            title: Claim Key
                                            type: string
                                          value:
                                            title: Claim Value
                                            type: string
                                        default: {}
                                      signingMethod:
                                        title: Signing Method
                                        description: >-
                                          A method used to sign the token such as
                                          RS256, RS384 or RS512.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      privateKeyFile:
                                        title: Private Key File
                                        description: >-
                                          A file with the PEM encoded via PKCS1 or
                                          PKCS8 as private key.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                  headers:
                                    title: Headers
                                    description: Explicit headers.
                                    type: array
                                    default: []
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          title: Header Name
                                          type: string
                                          default: ''
                                        value:
                                          title: Header Value
                                          type: string
                                          default: ''
                                      required:
                                        - key
                                        - value
                                  tls:
                                    title: Advanced TLS Settings
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enable custom TLS settings
                                        description: >-
                                          If set, this will override the default
                                          TLS settings with the provided TLS
                                          settings.
                                        type: boolean
                                        default: true
                                      skipCertificateVerification:
                                        title: Skip Certificate Verification
                                        description: >-
                                          Whether to skip server side certificate
                                          verification.
                                        type: boolean
                                        default: false
                                      enableRenegotiation:
                                        title: Enable Renegotiation
                                        description: >-
                                          Whether to allow the remote server to
                                          repeatedly request renegotiation.
                                        type: boolean
                                        default: false
                                      certificates:
                                        oneOf:
                                          - type: object
                                            title: Root CA File
                                            properties:
                                              rootCAFile:
                                                title: Root CA File
                                                description: >-
                                                  An optional path of a root certificate
                                                  authority file to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCAFile
                                          - type: object
                                            title: Root CA
                                            properties:
                                              rootCA:
                                                title: Root CA
                                                description: >-
                                                  A plain text root certificate authority
                                                  to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCA
                                          - title: Client Certificates (Plain text)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificate:
                                                      title: Certificate
                                                      description: A plain text certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    key:
                                                      title: Certificate Key
                                                      description: A plain text certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certificate
                                                    - key
                                            required:
                                              - clientCertificates
                                          - title: Client Certificates (Files)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificateFile:
                                                      title: Certificate File
                                                      description: The path to a certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    keyFile:
                                                      title: Certificate Key File
                                                      description: The path to a certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certifcateFile
                                                    - keyFile
                                            required:
                                              - clientCertificates
                                    required:
                                      - enabled
                                    default:
                                      enabled: true
                              - title: Basic Auth
                                type: object
                                properties:
                                  basicAuth:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      username:
                                        title: Username
                                        description: A username to authenticate as.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      password:
                                        title: Password
                                        description: A password to authenticate with.
                                        type: string
                                        format: password
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                headers:
                                  title: Headers
                                  description: Explicit headers.
                                  type: array
                                  default: []
                                  items:
                                    type: object
                                    properties:
                                      key:
                                        title: Header Name
                                        type: string
                                        default: ''
                                      value:
                                        title: Header Value
                                        type: string
                                        default: ''
                                    required:
                                      - key
                                      - value
                                tls:
                                  title: Advanced TLS Settings
                                  type: object
                                  properties:
                                    enabled:
                                      title: Enable custom TLS settings
                                      description: >-
                                        If set, this will override the default
                                        TLS settings with the provided TLS
                                        settings.
                                      type: boolean
                                      default: true
                                    skipCertificateVerification:
                                      title: Skip Certificate Verification
                                      description: >-
                                        Whether to skip server side certificate
                                        verification.
                                      type: boolean
                                      default: false
                                    enableRenegotiation:
                                      title: Enable Renegotiation
                                      description: >-
                                        Whether to allow the remote server to
                                        repeatedly request renegotiation.
                                      type: boolean
                                      default: false
                                    certificates:
                                      oneOf:
                                        - type: object
                                          title: Root CA File
                                          properties:
                                            rootCAFile:
                                              title: Root CA File
                                              description: >-
                                                An optional path of a root certificate
                                                authority file to use.
                                              type: string
                                              minLength: 1
                                              maxLength: 10000
                                          required:
                                            - rootCAFile
                                        - type: object
                                          title: Root CA
                                          properties:
                                            rootCA:
                                              title: Root CA
                                              description: >-
                                                A plain text root certificate authority
                                                to use.
                                              type: string
                                              minLength: 1
                                              maxLength: 10000
                                          required:
                                            - rootCA
                                        - title: Client Certificates (Plain text)
                                          type: object
                                          properties:
                                            clientCertificates:
                                              type: array
                                              minItems: 1
                                              items:
                                                type: object
                                                properties:
                                                  certificate:
                                                    title: Certificate
                                                    description: A plain text certificate to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                  key:
                                                    title: Certificate Key
                                                    description: A plain text certificate key to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                required:
                                                  - certificate
                                                  - key
                                          required:
                                            - clientCertificates
                                        - title: Client Certificates (Files)
                                          type: object
                                          properties:
                                            clientCertificates:
                                              type: array
                                              minItems: 1
                                              items:
                                                type: object
                                                properties:
                                                  certificateFile:
                                                    title: Certificate File
                                                    description: The path to a certificate to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                  keyFile:
                                                    title: Certificate Key File
                                                    description: The path to a certificate key to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                required:
                                                  - certifcateFile
                                                  - keyFile
                                          required:
                                            - clientCertificates
                                  required:
                                    - enabled
                                  default:
                                    enabled: true
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - localFile
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: localFile
                        description: Local File
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              path:
                                title: Path
                                description: >-
                                  The file to write to, if the file does not yet
                                  exist it will be created.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              codec:
                                title: Codec
                                description: >-
                                  The way in which the bytes of messages should
                                  be written out into the output data stream.
                                type: string
                                default: all-bytes
                                enum:
                                  - all-bytes
                                  - append
                                  - lines
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - path
                              - codec
                            default:
                              codec: all-bytes
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - mqtt
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: mqtt
                        description: MQTT
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: The addresses to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - tcp://localhost:1883
                              topic:
                                title: Topic
                                description: The topic to publish messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              clientId:
                                title: Client ID
                                description: An identifier for the client connection.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              qos:
                                title: QoS
                                description: QoS for each message.
                                type: integer
                                default: 1
                                enum:
                                  - 0
                                  - 1
                                  - 2
                              connectTimeout:
                                title: Connection Timeout
                                description: >-
                                  The maximum amount of time to wait in order to
                                  establish a connection before the attempt is
                                  abandoned.
                                type: string
                                default: 30s
                              writeTimeout:
                                title: Write Timeout
                                description: >-
                                  The maximum amount of time to wait to write
                                  data before the attempt is abandoned.
                                type: string
                                default: 30s
                              retained:
                                title: Retained
                                description: Set message as retained on the topic.
                                type: boolean
                                default: false
                              will:
                                enabled:
                                  title: Enabled
                                  description: Whether to enable last will messages.
                                  type: boolean
                                  default: false
                                qos:
                                  title: QoS
                                  description: QoS  for last will message.
                                  type: integer
                                  default: 1
                                  enum:
                                    - 0
                                    - 1
                                    - 2
                                retained:
                                  title: Retained
                                  description: Set retained for last will message.
                                  type: boolean
                                  default: false
                                topic:
                                  title: Topic
                                  description: The topic for last will message.
                                  type: string
                                  minLength: 1
                                  maxLength: 1000
                                payload:
                                  title: Payload
                                  description: Set payload for last will message.
                                  type: string
                                  minLength: 1
                                  maxLength: 10000
                                required:
                                  - qos
                                  - retained
                                  - topic
                                  - payload
                                default:
                                  qos: 1
                                  retained: false
                            required:
                              - addresses
                              - topic
                              - clientId
                              - qos
                              - connectTimeout
                              - writeTimeout
                              - retained
                              - payload
                            default:
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: A username to connect with.
                                type: string
                              password:
                                title: Password
                                description: A password to connect with.
                                type: string
                                format: password
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - username
                              - password
                              - tls
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - amqp
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: amqp
                        description: AMQP
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: The url of the AMQP service.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              targetAddress:
                                title: Target Address
                                description: The address to write to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - targetAddress
                              - credentials
                            default:
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: A SASL plain text username.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: A SASL plain text password.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              mechanism:
                                title: Mechanism
                                description: The SASL authentication mechanism to use.
                                type: string
                                enum:
                                  - PLAIN
                                  - none
                                default: none
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - username
                              - password
                              - mechanism
                              - tls
                            default:
                              mechanism: none
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - sql
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: sql
                        description: SQL
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              driver:
                                title: Driver
                                description: A database driver to use.
                                type: string
                                enum:
                                  - mysql
                                  - postgres
                                  - clickhouse
                                  - mssql
                                default: mysql
                              dsn:
                                title: Data Source Name
                                description: >-
                                  A Data Source Name to identify the target
                                  database.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              table:
                                title: Table
                                description: The table to insert to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              columns:
                                title: Columns
                                description: A list of columns to insert.
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 1000
                                default: []
                              prefix:
                                title: Prefix
                                description: >-
                                  Aprefix to prepend to the insert query (before
                                  INSERT).
                                type: string
                                minLength: 1
                                maxLength: 1000
                              suffix:
                                title: Suffix
                                description: A suffix to append to the insert query.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - driver
                              - dsn
                              - table
                              - columns
                            default:
                              driver: mysql
                              columns: []
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - nats
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: nats
                        description: NATS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: The addresses to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - nats://127.0.0.1:4222
                              subject:
                                title: Subject
                                description: The subject to publish to.
                                type: string
                                default: crul-message
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - subject
                              - addresses
                            default:
                              addresses:
                                - nats://127.0.0.1:4222
                              subject: crul-message
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              nkeyFile:
                                title: NKey File
                                description: A optional file containing an NKey seed.
                                type: string
                              userCredentialsFile:
                                title: User Credentials File
                                description: >-
                                  A file containing user credentials which
                                  consist of an user JWT and corresponding NKey
                                  seed.
                                type: string
                              headers:
                                title: Headers
                                description: Explicit headers.
                                type: array
                                default: []
                                items:
                                  type: object
                                  properties:
                                    key:
                                      title: Header Name
                                      type: string
                                      default: ''
                                    value:
                                      title: Header Value
                                      type: string
                                      default: ''
                                  required:
                                    - key
                                    - value
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - nKeyFile
                              - userCredentialsFile
                            default:
                              tls:
                                enabled: false
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - nsq
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: nsq
                        description: NSQ
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              nsqdTCPAddress:
                                title: NSQD TCP Address
                                description: The address of the target NSQD server.
                                type: string
                                format: uri
                                default: localhost:4150
                                minLength: 1
                                maxLength: 1000
                              topic:
                                title: Topic
                                description: The topic to publish to.
                                type: string
                                default: crulMessages
                                minLength: 1
                                maxLength: 1000
                              userAgent:
                                title: User Agent
                                description: A user agent string to connect with.
                                type: string
                                default: crulProducer
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - topic
                              - nsqdTCPAddress
                              - userAgent
                            default:
                              nsqdTCPAddress: localhost:4150
                              topic: crulMessages
                              userAgent: crulProducer
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            default:
                              tls:
                                enabled: false
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - redisPubSub
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: redisPubSub
                        description: Redis PubSub
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: >-
                                  The URL of the target Redis server. Database
                                  is optional and is supplied as the URL path.
                                  The scheme tcp is equivalent to redis.
                                type: string
                                format: uri
                                default: tcp://localhost:6379
                              kind:
                                title: Kind
                                description: >-
                                  Specifies a simple, cluster-aware, or
                                  failover-aware redis client.
                                type: string
                                enum:
                                  - simple
                                  - cluster-aware
                                  - failover-aware
                                default: simple
                              master:
                                title: Master
                                description: >-
                                  Name of the redis master when kind is
                                  failover.
                                type: string
                              channel:
                                title: Channel
                                description: The channel to publish messages to.
                                type: string
                                default: crul_chan
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - kind
                              - channel
                            default:
                              url: tcp://localhost:6379
                              kind: simple
                              channel: crul_chan
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - cassandra
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: cassandra
                        description: Cassandra
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: A list of Cassandra nodes to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default: []
                              query:
                                title: Query
                                description: A query to execute for each message.
                                type: string
                                minLength: 1
                                maxLength: 10000
                              disableInitialHostLookup:
                                title: Disable Initial Host Lookup
                                description: >-
                                  If enabled the driver will not attempt to get
                                  host info from the system.peers table. This
                                  can speed up queries but will mean that
                                  data_centre, rack and token information will
                                  not be available.
                                type: boolean
                                default: false
                              consistency:
                                title: Consistency
                                description: The consistency level to use.
                                type: string
                                enum:
                                  - ANY
                                  - ONE
                                  - TWO
                                  - THREE
                                  - QUORUM
                                  - ALL
                                  - LOCAL_QUORUM
                                  - EACH_QUORUM
                                  - LOCAL_ONE
                                default: QUORUM
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries before giving up
                                  on a request.
                                type: integer
                                default: 3
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - addresses
                              - query
                            default:
                              addresses:
                                - localhost:9042
                              disableInitialHostLookup: false
                              consistency: QUORUM
                              maxRetries: 3
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              enabled:
                                title: Enabled
                                type: boolean
                                default: false
                              username:
                                title: Username
                                description: A username to connect with.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: The password for the provided username.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - enabled
                            default:
                              enabled: false
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - pulsar
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: pulsar
                        description: Apache Pulsar
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: A URL to connect to.
                                type: string
                                format: uri
                                default: pulsar://localhost:6650
                              topic:
                                title: Topic
                                description: A topic to publish to.
                                type: string
                              key:
                                title: Key
                                description: The key to publish messages with.
                                type: string
                              orderingKey:
                                title: Ordering Key
                                description: The ordering key to publish messages with.
                                type: string
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - topic
                              - key
                              - orderingKey
                            default:
                              url: pulsar://localhost:6650
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: OAuth
                                type: object
                                properties:
                                  oauth2:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      audience:
                                        title: Audience
                                        description: OAuth2 audience.
                                        type: string
                                        default: ''
                                      issuerURL:
                                        title: Issuer URL
                                        description: OAuth2 issuer URL.
                                        type: string
                                        default: ''
                                      privateKeyFile:
                                        title: Private Key File
                                        description: File containing the private key.
                                        type: string
                                        default: ''
                                    required:
                                      - enabled
                                      - audience
                                      - issuerURL
                                      - privateKeyFile
                                required:
                                  - oauth2
                              - title: Token
                                type: object
                                properties:
                                  token:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      token:
                                        title: Token Value
                                        description: Actual base64 encoded token.
                                        type: string
                                        format: password
                                        default: ''
                                    required:
                                      - enabled
                                      - token
                                required:
                                  - token
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - sftp
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: sftp
                        description: SFTP
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              address:
                                title: Address
                                description: The address of the server to connect to.
                                type: string
                                format: uri
                              path:
                                title: Path
                                description: >-
                                  The file to save the messages to on the
                                  server.
                                type: string
                              codec:
                                title: Codec
                                description: >-
                                  The way in which the bytes of messages should
                                  be written out into the output data stream.
                                type: string
                                enum:
                                  - all-bytes
                                  - append
                                  - lines
                                default: all-bytes
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - address
                              - path
                              - codec
                            default:
                              codec: all-bytes
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Username/Password
                                type: object
                                properties:
                                  username:
                                    title: Username
                                    description: >-
                                      The username to connect to the SFTP
                                      server.
                                    type: string
                                    default: ''
                                  password:
                                    title: Password
                                    description: >-
                                      The password for the username to connect
                                      to the SFTP server.
                                    type: string
                                    format: password
                                    default: ''
                                required:
                                  - username
                                  - password
                              - title: Private Key File
                                type: object
                                properties:
                                  privateKeyFile:
                                    title: Private Key File
                                    description: >-
                                      The private key for the username to
                                      connect to the SFTP server.
                                    type: string
                                    default: ''
                                  privateKeyFilePassword:
                                    title: Private Key File Password
                                    description: Optional passphrase for private key.
                                    type: string
                                    format: password
                                required:
                                  - privateKeyFile
                                  - privateKeyFilePassword
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - timeplus
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: timeplus
                        description: Timeplus Stream Collector
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              schemehostport:
                                title: API Endpoint
                                description: The Timeplus REST service to send data to.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              stream:
                                title: Stream
                                description: The stream to be used for delivered data.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - schemehostport
                              - stream
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: API key
                                description: >-
                                  A valid Timeplus API key associated with the
                                  provided schemehostport.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - snowflake
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: snowflake
                        description: >-
                          Sends messages to Snowflake stages and, optionally,
                          calls Snowpipe to load this data into one or more
                          tables.
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              account:
                                title: Account
                                description: >-
                                  Account name, which is the same as the Account
                                  Identifier as described here. However, when
                                  using an Account Locator, the Account
                                  Identifier is formatted as
                                  <account_locator>.<region_id>.<cloud> and this
                                  field needs to be populated using the
                                  <account_locator> part.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              region:
                                title: Region
                                description: >-
                                  Optional region field which needs to be
                                  populated when using an Account Locator and it
                                  must be set to the <region_id> part of the
                                  Account Identifier
                                  (<account_locator>.<region_id>.<cloud>).
                                type: string
                                minLength: 1
                                maxLength: 1000
                              cloud:
                                title: Cloud
                                description: >-
                                  Optional cloud platform field which needs to
                                  be populated when using an Account Locator and
                                  it must be set to the <cloud> part of the
                                  Account Identifier
                                  (<account_locator>.<region_id>.<cloud>).
                                type: string
                                minLength: 1
                                maxLength: 1000
                              database:
                                title: Database
                                description: Database
                                type: string
                                minLength: 1
                                maxLength: 1000
                              warehouse:
                                title: Warehouse
                                description: Warehouse
                                type: string
                                minLength: 1
                                maxLength: 1000
                              schema:
                                title: Schema
                                description: Schema
                                type: string
                                minLength: 1
                                maxLength: 1000
                              stage:
                                title: Stage
                                description: >-
                                  Stage name. Use either one of the supported
                                  stage types.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              path:
                                title: Path
                                description: Stage path.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              role:
                                title: Role
                                description: Role.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              snowpipe:
                                title: Snowpipe
                                description: >-
                                  An optional Snowpipe name. Use the <snowpipe>
                                  part from <database>.<schema>.<snowpipe>.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              upload_parallel_threads:
                                title: Upload Parallel Threads
                                description: >-
                                  Specifies the number of threads to use for
                                  uploading files.
                                type: integer
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - account
                            default:
                              throughput: 10
                              upload_parallel_threads: 4
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: username
                                description: Username.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: password
                                description: An optional password.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - username
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - graphistry
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: graphistry
                        description: Graphistry Upload
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              datasetId:
                                title: Dataset ID
                                description: The Graphistry dataset Id.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - datasetId
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: API key
                                description: A valid Graphistry API key.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
              required:
                - type
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/stores/{name}:
    get:
      operationId: store-get
      summary: Retrieve a store
      tags:
        - stores
      description: Gets the store with the provided name.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The store name.
      responses:
        '200':
          description: Default Response
    put:
      operationId: store-update
      summary: Update a store
      tags:
        - stores
      description: Updates an existing store.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - gcpGCS
                    - gcpPubSub
                    - gcpBigQuery
                    - awsS3
                    - awsDynamoDB
                    - awsSNS
                    - awsSQS
                    - awsKinesis
                    - awsKinesisFirehose
                    - azureBlob
                    - azureTable
                    - azureQueue
                    - kafka
                    - splunk
                    - cribl
                    - influxdb
                    - elasticsearch
                    - hdfs
                    - http
                    - localFile
                    - mqtt
                    - amqp
                    - sql
                    - nats
                    - nsq
                    - redisPubSub
                    - cassandra
                    - pulsar
                    - sftp
                    - timeplus
                    - snowflake
                    - graphistry
              allOf:
                - if:
                    properties:
                      type:
                        enum:
                          - gcpGCS
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcpGCS
                        description: GCP GCS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              bucketName:
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rootDirectory:
                                type: string
                                minLength: 0
                                maxLength: 1000
                            required:
                              - bucketName
                              - rootDirectory
                            default:
                              rootDirectory: ''
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              jsonKeyFile:
                                title: JSON Key File
                                description: >-
                                  A JSON Key File for a service account
                                  containing full access to the provided bucket
                                type: string
                                format: password
                            required:
                              - jsonKeyFile
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - gcpPubSub
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcpPubSub
                        description: GCP PubSub
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              project:
                                title: Project
                                description: The project ID of the topic to publish to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              topic:
                                title: topic
                                description: The topic to publish to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              publishTimeout:
                                title: Publish Timeout
                                description: >-
                                  The maximum length of time to wait before
                                  abandoning a publish attempt for a message.
                                type: string
                                default: 60s
                              orderingKey:
                                title: Ordering Key
                                description: >-
                                  The ordering key to use for publishing
                                  messages.
                                type: string
                                default: ''
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - project
                              - topic
                            default:
                              publishTimeout: 60s
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - gcpBigQuery
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcpBigQuery
                        description: GCP BigQuery
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              project:
                                title: Project
                                description: >-
                                  The project ID of the dataset to insert data
                                  to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              dataset:
                                title: Dataset
                                description: The BigQuery Dataset ID.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              table:
                                title: Table
                                description: The table to insert messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              writeDisposition:
                                title: Write Disposition
                                description: >-
                                  Specifies how existing data in a destination
                                  table is treated.
                                type: string
                                enum:
                                  - WRITE_APPEND
                                  - WRITE_EMPTY
                                  - WRITE_TRUNCATE
                                default: WRITE_APPEND
                              createDisposition:
                                title: Create Disposition
                                description: >-
                                  Specifies the circumstances under which
                                  destination table will be created.
                                type: string
                                enum:
                                  - CREATE_IF_NEEDED
                                  - CREATE_NEVER
                                default: CREATE_IF_NEEDED
                              format:
                                title: Format
                                description: The format of each incoming message.
                                type: string
                                enum:
                                  - NEWLINE_DELIMITED_JSON
                                default: NEWLINE_DELIMITED_JSON
                              ignoreUnknownValues:
                                title: Ignore Unknown Values
                                decription: >-
                                  Causes values not matching the schema to be
                                  tolerated. Unknown values are ignored. For CSV
                                  this ignores extra values at the end of a
                                  line. For JSON this ignores named values that
                                  do not match any column name. Records
                                  containing unknown values are treated as
                                  "bad".
                                type: boolean
                                default: false
                              maxBadRecords:
                                title: Max Bad Records
                                description: >-
                                  The maximum number of bad records that will be
                                  ignored when reading data.
                                type: integer
                                default: 0
                              autoDetect:
                                title: Auto Detect
                                description: >-
                                  Indicates if we should automatically infer the
                                  options and schema for CSV and JSON sources.
                                type: boolean
                                default: false
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - project
                              - dataset
                              - table
                            default:
                              writeDisposition: WRITE_APPEND
                              createDisposition: CREATE_IF_NEEDED
                              format: NEWLINE_DELIMITED_JSON
                              ignoreUnknownValues: false
                              maxBadRecords: 0
                              autoDetect: false
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - awsS3
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsS3
                        description: AWS S3
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              bucketName:
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rootDirectory:
                                type: string
                                minLength: 0
                                maxLength: 1000
                            required:
                              - bucketName
                              - rootDirectory
                            default:
                              rootDirectory: ''
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              IAM_USER_KEY:
                                title: IAM User Key
                                description: ''
                                type: string
                              IAM_USER_SECRET:
                                title: IAM User Secret
                                description: ''
                                type: string
                                format: password
                            required:
                              - IAM_USER_KEY
                              - IAM_USER_SECRET
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsDynamoDB
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsDynamoDB
                        description: AWS DynamoDB
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              table:
                                title: Table
                                description: The table to store messages in.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              ttl:
                                title: Time To Live (TTL)
                                description: >-
                                  A TTL to set for items, calculated from the
                                  moment the message is sent.
                                type: string
                                minLength: 1
                                maxLength: 250
                              ttlKey:
                                title: TTL Key
                                description: The column key to place the TTL value within.
                                type: string
                                minLength: 1
                                maxLength: 250
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries. If set to zero
                                  there is no limit.
                                type: integer
                                default: 3
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - table
                              - region
                            default:
                              region: us-west-1
                              maxRetries: 3
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsSNS
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsSNS
                        description: AWS SNS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              topicArn:
                                title: Topic ARN
                                description: The topic to publish to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              messageGroupId:
                                title: Message Group ID
                                description: 'A group ID to set for messages. '
                                type: string
                                minLength: 1
                                maxLength: 250
                              messageDeduplicationId:
                                title: Message Deduplication ID
                                description: A deduplication ID to set for messages.
                                type: string
                                minLength: 1
                                maxLength: 250
                              timeout:
                                title: Timeout
                                description: >-
                                  The maximum period to wait on an upload before
                                  abandoning it and reattempting.
                                type: string
                                default: 5s
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - topicArn
                              - region
                            default:
                              timeout: 5s
                              region: us-west-1
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsSQS
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsSQS
                        description: AWS SQS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: The URL of the target SQS queue.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              messageGroupId:
                                title: Message Group ID
                                description: 'A group ID to set for messages. '
                                type: string
                                minLength: 1
                                maxLength: 250
                              messageDeduplicationId:
                                title: Message Deduplication ID
                                description: 'A deduplication ID to set for messages. '
                                type: string
                                minLength: 1
                                maxLength: 250
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - region
                            default:
                              region: us-west-1
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsKinesis
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsKinesis
                        description: AWS Kinesis
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              stream:
                                title: Stream
                                description: The stream to publish messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              partitionKey:
                                title: Partition Key
                                description: A key for partitioning messages.
                                type: string
                                minLength: 1
                                maxLength: 250
                              hashKey:
                                title: Hash Key
                                description: A hash key for partitioning messages.
                                type: string
                                minLength: 1
                                maxLength: 250
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries before giving up
                                  on the request. If set to zero there is no
                                  limit.
                                type: integer
                                default: 0
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - stream
                              - partitionKey
                              - region
                            default:
                              region: us-west-2
                              maxRetries: 0
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - awsKinesisFirehose
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: awsKinesisFirehose
                        description: AWS Kinesis Firehose
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              stream:
                                title: Stream
                                description: The stream to publish messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                                default: ''
                              region:
                                title: Region
                                description: The AWS region to target.
                                type: string
                                minLength: 1
                                maxLength: 250
                                default: us-west-1
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries before giving up
                                  on the request. If set to zero there is no
                                  limit.
                                type: integer
                                default: 0
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - stream
                              - region
                            default:
                              region: us-west-1
                              maxRetries: 0
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              awsAccessKeyId:
                                title: AWS Access Key Id
                                description: The ID of credentials to use.
                                type: string
                                minLength: 1
                                maxLength: 250
                              awsAccessKeySecret:
                                title: AWS Access Key Secret
                                description: The secret for the credentials being used.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 250
                            required:
                              - awsAccessKeyId
                              - awsAccessKeySecret
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - azureBlob
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: azureBlob
                        description: Azure Blob Storage
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              containerName:
                                title: Container
                                description: The container for uploading the messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rootDirectory:
                                type: string
                                minLength: 0
                                maxLength: 1000
                            required:
                              - containerName
                            default:
                              rootDirectory: ''
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Storage Connection String
                                type: object
                                properties:
                                  storageConnectionString:
                                    title: Storage Connection String
                                    description: A storage account connection string.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageConnectionString
                              - title: Storage Account
                                type: object
                                properties:
                                  storageAccount:
                                    title: Storage Account
                                    description: The storage account to upload messages to.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  storageAccessKey:
                                    title: Storage Access Key
                                    description: The storage account access key.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageAccount
                                  - storageAccessKey
                              - title: Storage SAS Token
                                type: object
                                properties:
                                  storageSASToken:
                                    title: Storage SAS Token
                                    description: The storage account SAS token.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageSASToken
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - azureTable
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: azureTable
                        description: Azure Table Storage
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              tableName:
                                title: Table Name
                                description: The table to store messages into.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              partitionKey:
                                title: Partition Key
                                description: The partition key.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              rowKey:
                                title: Row Key
                                description: The row key.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              insertType:
                                title: Insert Type
                                description: Type of insert operation.
                                type: string
                                enum:
                                  - INSERT
                                  - INSERT_MERGE
                                  - INSERT_REPLACE
                                default: INSERT
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - tableName
                            default:
                              insertType: DEFAULT
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Storage Account
                                type: object
                                properties:
                                  storageAccount:
                                    title: Storage Account
                                    description: The storage account to upload messages to.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  storageAccessKey:
                                    title: Storage Access Key
                                    description: The storage account access key.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageAccount
                                  - storageAccessKey
                              - title: Storage Connection String
                                type: object
                                properties:
                                  storageConnectionString:
                                    title: Storage Connection String
                                    description: A storage account connection string.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageConnectionString
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - azureQueue
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: azureQueue
                        description: Azure Queue Storage
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              queueName:
                                title: Queue Name
                                description: The name of the target Queue Storage queue.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              ttl:
                                title: TTL
                                description: >-
                                  The TTL of each individual message as a
                                  duration string. Defaults to 0, meaning no
                                  retention period is set
                                type: string
                                default: '0'
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - queueName
                            default:
                              ttl: '0'
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Storage Account
                                type: object
                                properties:
                                  storageAccount:
                                    title: Storage Account
                                    description: The storage account to upload messages to.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  storageAccessKey:
                                    title: Storage Access Key
                                    description: The storage account access key.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageAccount
                                  - storageAccessKey
                              - title: Storage Connection String
                                type: object
                                properties:
                                  storageConnectionString:
                                    title: Storage Connection String
                                    description: A storage account connection string.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - storageConnectionString
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - kafka
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: kafka
                        description: Kafka Topic
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              brokers:
                                title: Brokers
                                description: ''
                                type: array
                                items:
                                  type: string
                                  format: uri
                                minItems: 1
                              clientId:
                                title: Client Id
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              topic:
                                title: Default Topic (can be overidden)
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - topic
                              - brokers
                              - clientId
                            default:
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              mechanism:
                                title: Mechanism
                                description: ''
                                type: string
                                enum:
                                  - PLAIN
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - username
                              - password
                              - mechanism
                              - tls
                            default:
                              mechanism: PLAIN
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - splunk
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: splunk
                        description: Splunk HTTP Event Collector
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              endpoint:
                                title: HTTP Event Collector (HEC) Endpoint
                                description: The endpoint to send data to.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              source:
                                title: Source
                                description: >-
                                  The source to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              sourcetype:
                                title: Sourcetype
                                description: >-
                                  The sourcetype to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              host:
                                title: Host
                                description: >-
                                  The host to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              index:
                                title: Index
                                description: >-
                                  The index to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - endpoint
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: HEC Token
                                description: >-
                                  A valid HEC token associated with the provided
                                  endpoint.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - cribl
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: cribl
                        description: Cribl HTTP Event Collector
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              endpoint:
                                title: HTTP Event Collector (HEC) Endpoint
                                description: The endpoint to send data to.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              source:
                                title: Source
                                description: >-
                                  The source to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              sourcetype:
                                title: Sourcetype
                                description: >-
                                  The sourcetype to be used for delivered data.
                                  (Uses token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              host:
                                title: Host
                                description: >-
                                  The host to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              index:
                                title: Index
                                description: >-
                                  The index to be used for delivered data. (Uses
                                  token settings if not provided)
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - endpoint
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: HEC Token
                                description: >-
                                  A valid HEC token associated with the provided
                                  endpoint.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - influxdb
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: influxdb
                        description: InfluxDB
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              endpoint:
                                title: InfluxDB Write Endpoint
                                description: >-
                                  The endpoint to send data to. (ex.
                                  https://us-east-1-1.aws.cloud2.influxdata.com)
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              bucket:
                                title: Bucket
                                description: The bucket to write data to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              precision:
                                title: Precision
                                description: The bucket to write data to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - endpoint
                              - bucket
                              - precision
                            default:
                              throughput: 10
                              precision: ms
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: API Token
                                description: >-
                                  A valid API token associated with the provided
                                  endpoint.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - elasticsearch
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: elasticsearch
                        description: Elasticsearch Cluster
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: A list of URLs to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - http://localhost:9200
                              index:
                                title: Index
                                description: The index to place messages.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              action:
                                title: Action
                                description: The action to take on the document.
                                type: string
                                enum:
                                  - index
                                  - update
                                  - delete
                                default: index
                              type:
                                title: Type
                                description: The document type.
                                type: string
                                default: doc
                              timeout:
                                title: Timeout
                                description: >-
                                  The maximum time to wait before abandoning a
                                  request (and trying again).
                                type: string
                                default: 5s
                              gzipCompression:
                                title: gzip Compression
                                description: Enable gzip compression on the request side.
                                type: boolean
                                default: false
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - addresses
                              - index
                              - action
                              - type
                              - timeout
                              - gzipCompression
                            default:
                              addresses:
                                - http://localhost:9200
                              action: index
                              type: doc
                              timeout: 5s
                              gzipCompression: false
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              enabled:
                                title: Enabled
                                type: boolean
                                default: false
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - enabled
                            default:
                              enabled: false
                              tls:
                                enabled: false
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - hdfs
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: hdfs
                        description: HDFS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: A list of addresses to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - localhost:9000
                              user:
                                title: User
                                description: A user identifier.
                                type: string
                                minLength: 1
                                maxLength: 1000
                                default: crul_hdfs
                              directory:
                                title: Directory
                                description: >-
                                  A directory to store message files within. If
                                  the directory does not exist it will be
                                  created.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              path:
                                title: Path
                                description: The path to upload messages as.
                                type: string
                                minLength: 1
                                maxLength: 1000
                                default: >-
                                  ${!count("files")}-${!timestamp_unix_nano()}.txt
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - addresses
                              - user
                              - directory
                              - path
                            default:
                              addresses:
                                - localhost:9000
                              user: crul_hdfs
                              path: ${!count("files")}-${!timestamp_unix_nano()}.txt
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - http
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: http
                        description: HTTP
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: The URL to connect to.
                                type: string
                                format: uri
                              timeout:
                                title: Timeout
                                description: A static timeout to apply to requests.
                                type: string
                                default: 5s
                              retryPeriod:
                                title: Retry Period
                                description: >-
                                  The base period to wait between failed
                                  requests.
                                default: 1s
                              retries:
                                title: Retries
                                description: The maximum number of retry attempts to make.
                                type: integer
                                default: 3
                              maxRetryBackoff:
                                title: Max Retry Backoff
                                description: >-
                                  The maximum period to wait between failed
                                  requests.
                                type: string
                                default: 300s
                              verb:
                                title: HTTP Verb
                                description: A verb to connect with.
                                type: string
                                enum:
                                  - GET
                                  - POST
                                  - DELETE
                                default: GET
                              backoffOn:
                                title: Backoff Status Codes
                                description: >-
                                  A list of status codes whereby the request
                                  should be considered to have failed and
                                  retries should be attempted, but the period
                                  between them should be increased gradually.
                                type: array
                                minItems: 1
                                items:
                                  type: integer
                                default:
                                  - 429
                              dropOn:
                                title: Drop Status Codes
                                description: >-
                                  A list of status codes whereby the request
                                  should be considered to have failed but
                                  retries should not be attempted.
                                type: array
                                items:
                                  type: integer
                                default: []
                              successfulOn:
                                title: Success Status Codes (Non 2XX)
                                description: >-
                                  A list of status codes whereby the attempt
                                  should be considered successful, this is
                                  useful for dropping requests that return
                                  non-2XX codes indicating that the message has
                                  been dealt with.
                                type: array
                                items:
                                  type: integer
                                default: []
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - verb
                            default:
                              timeout: 5s
                              retryPeriod: 1s
                              retries: 3
                              maxRetryBackoff: 300s
                              verb: GET
                              backoffOn:
                                - 429
                              dropOn: []
                              successfulOn: []
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            anyOf:
                              - title: OAuth
                                type: object
                                properties:
                                  oauth:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      consumerKey:
                                        title: Consumer Key
                                        description: >-
                                          A value used to identify the client to
                                          the service provider.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      consumerSecret:
                                        title: Consumer Secret
                                        description: >-
                                          A secret used to establish ownership of
                                          the consumer key.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                      accessToken:
                                        title: Access Token
                                        description: >-
                                          A value used to gain access to the
                                          protected resources on behalf of the
                                          user.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      accessTokenSecret:
                                        title: Access Token Secret
                                        description: >-
                                          A secret provided in order to establish
                                          ownership of a given access token.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                      requestUrl:
                                        title: Request URL
                                        description: The URL of the OAuth provider.
                                        type: string
                                        format: uri
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                  headers:
                                    title: Headers
                                    description: Explicit headers.
                                    type: array
                                    default: []
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          title: Header Name
                                          type: string
                                          default: ''
                                        value:
                                          title: Header Value
                                          type: string
                                          default: ''
                                      required:
                                        - key
                                        - value
                                  tls:
                                    title: Advanced TLS Settings
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enable custom TLS settings
                                        description: >-
                                          If set, this will override the default
                                          TLS settings with the provided TLS
                                          settings.
                                        type: boolean
                                        default: true
                                      skipCertificateVerification:
                                        title: Skip Certificate Verification
                                        description: >-
                                          Whether to skip server side certificate
                                          verification.
                                        type: boolean
                                        default: false
                                      enableRenegotiation:
                                        title: Enable Renegotiation
                                        description: >-
                                          Whether to allow the remote server to
                                          repeatedly request renegotiation.
                                        type: boolean
                                        default: false
                                      certificates:
                                        oneOf:
                                          - type: object
                                            title: Root CA File
                                            properties:
                                              rootCAFile:
                                                title: Root CA File
                                                description: >-
                                                  An optional path of a root certificate
                                                  authority file to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCAFile
                                          - type: object
                                            title: Root CA
                                            properties:
                                              rootCA:
                                                title: Root CA
                                                description: >-
                                                  A plain text root certificate authority
                                                  to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCA
                                          - title: Client Certificates (Plain text)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificate:
                                                      title: Certificate
                                                      description: A plain text certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    key:
                                                      title: Certificate Key
                                                      description: A plain text certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certificate
                                                    - key
                                            required:
                                              - clientCertificates
                                          - title: Client Certificates (Files)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificateFile:
                                                      title: Certificate File
                                                      description: The path to a certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    keyFile:
                                                      title: Certificate Key File
                                                      description: The path to a certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certifcateFile
                                                    - keyFile
                                            required:
                                              - clientCertificates
                                    required:
                                      - enabled
                                    default:
                                      enabled: true
                              - title: OAuth2
                                type: object
                                properties:
                                  oauth2:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      clientKey:
                                        title: Client Key
                                        description: >-
                                          A value used to identify the client to
                                          the token provider.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      clientSecret:
                                        title: Client Secret
                                        description: >-
                                          A secret used to establish ownership of
                                          the client key.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                      tokenUrl:
                                        title: Token URL
                                        description: The URL of the token provider.
                                        type: string
                                        format: uri
                                      scopes:
                                        title: Scopes
                                        description: >-
                                          A list of optional requested
                                          permissions.
                                        type: array
                                        default: []
                                        items:
                                          type: string
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                  headers:
                                    title: Headers
                                    description: Explicit headers.
                                    type: array
                                    default: []
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          title: Header Name
                                          type: string
                                          default: ''
                                        value:
                                          title: Header Value
                                          type: string
                                          default: ''
                                      required:
                                        - key
                                        - value
                                  tls:
                                    title: Advanced TLS Settings
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enable custom TLS settings
                                        description: >-
                                          If set, this will override the default
                                          TLS settings with the provided TLS
                                          settings.
                                        type: boolean
                                        default: true
                                      skipCertificateVerification:
                                        title: Skip Certificate Verification
                                        description: >-
                                          Whether to skip server side certificate
                                          verification.
                                        type: boolean
                                        default: false
                                      enableRenegotiation:
                                        title: Enable Renegotiation
                                        description: >-
                                          Whether to allow the remote server to
                                          repeatedly request renegotiation.
                                        type: boolean
                                        default: false
                                      certificates:
                                        oneOf:
                                          - type: object
                                            title: Root CA File
                                            properties:
                                              rootCAFile:
                                                title: Root CA File
                                                description: >-
                                                  An optional path of a root certificate
                                                  authority file to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCAFile
                                          - type: object
                                            title: Root CA
                                            properties:
                                              rootCA:
                                                title: Root CA
                                                description: >-
                                                  A plain text root certificate authority
                                                  to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCA
                                          - title: Client Certificates (Plain text)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificate:
                                                      title: Certificate
                                                      description: A plain text certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    key:
                                                      title: Certificate Key
                                                      description: A plain text certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certificate
                                                    - key
                                            required:
                                              - clientCertificates
                                          - title: Client Certificates (Files)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificateFile:
                                                      title: Certificate File
                                                      description: The path to a certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    keyFile:
                                                      title: Certificate Key File
                                                      description: The path to a certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certifcateFile
                                                    - keyFile
                                            required:
                                              - clientCertificates
                                    required:
                                      - enabled
                                    default:
                                      enabled: true
                              - title: JWT
                                type: object
                                properties:
                                  jwt:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      claims:
                                        title: Claims
                                        description: >-
                                          A value used to identify the claims that
                                          issued the JWT.
                                        type: object
                                        properties:
                                          key:
                                            title: Claim Key
                                            type: string
                                          value:
                                            title: Claim Value
                                            type: string
                                        default: {}
                                      signingMethod:
                                        title: Signing Method
                                        description: >-
                                          A method used to sign the token such as
                                          RS256, RS384 or RS512.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      privateKeyFile:
                                        title: Private Key File
                                        description: >-
                                          A file with the PEM encoded via PKCS1 or
                                          PKCS8 as private key.
                                        type: string
                                        format: password
                                        minLength: 1
                                        maxLength: 1000
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                  headers:
                                    title: Headers
                                    description: Explicit headers.
                                    type: array
                                    default: []
                                    items:
                                      type: object
                                      properties:
                                        key:
                                          title: Header Name
                                          type: string
                                          default: ''
                                        value:
                                          title: Header Value
                                          type: string
                                          default: ''
                                      required:
                                        - key
                                        - value
                                  tls:
                                    title: Advanced TLS Settings
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enable custom TLS settings
                                        description: >-
                                          If set, this will override the default
                                          TLS settings with the provided TLS
                                          settings.
                                        type: boolean
                                        default: true
                                      skipCertificateVerification:
                                        title: Skip Certificate Verification
                                        description: >-
                                          Whether to skip server side certificate
                                          verification.
                                        type: boolean
                                        default: false
                                      enableRenegotiation:
                                        title: Enable Renegotiation
                                        description: >-
                                          Whether to allow the remote server to
                                          repeatedly request renegotiation.
                                        type: boolean
                                        default: false
                                      certificates:
                                        oneOf:
                                          - type: object
                                            title: Root CA File
                                            properties:
                                              rootCAFile:
                                                title: Root CA File
                                                description: >-
                                                  An optional path of a root certificate
                                                  authority file to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCAFile
                                          - type: object
                                            title: Root CA
                                            properties:
                                              rootCA:
                                                title: Root CA
                                                description: >-
                                                  A plain text root certificate authority
                                                  to use.
                                                type: string
                                                minLength: 1
                                                maxLength: 10000
                                            required:
                                              - rootCA
                                          - title: Client Certificates (Plain text)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificate:
                                                      title: Certificate
                                                      description: A plain text certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    key:
                                                      title: Certificate Key
                                                      description: A plain text certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certificate
                                                    - key
                                            required:
                                              - clientCertificates
                                          - title: Client Certificates (Files)
                                            type: object
                                            properties:
                                              clientCertificates:
                                                type: array
                                                minItems: 1
                                                items:
                                                  type: object
                                                  properties:
                                                    certificateFile:
                                                      title: Certificate File
                                                      description: The path to a certificate to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                    keyFile:
                                                      title: Certificate Key File
                                                      description: The path to a certificate key to use.
                                                      type: string
                                                      minLength: 1
                                                      maxLength: 10000
                                                  required:
                                                    - certifcateFile
                                                    - keyFile
                                            required:
                                              - clientCertificates
                                    required:
                                      - enabled
                                    default:
                                      enabled: true
                              - title: Basic Auth
                                type: object
                                properties:
                                  basicAuth:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      username:
                                        title: Username
                                        description: A username to authenticate as.
                                        type: string
                                        minLength: 1
                                        maxLength: 1000
                                      password:
                                        title: Password
                                        description: A password to authenticate with.
                                        type: string
                                        format: password
                                    required:
                                      - enabled
                                    default:
                                      enabled: false
                                headers:
                                  title: Headers
                                  description: Explicit headers.
                                  type: array
                                  default: []
                                  items:
                                    type: object
                                    properties:
                                      key:
                                        title: Header Name
                                        type: string
                                        default: ''
                                      value:
                                        title: Header Value
                                        type: string
                                        default: ''
                                    required:
                                      - key
                                      - value
                                tls:
                                  title: Advanced TLS Settings
                                  type: object
                                  properties:
                                    enabled:
                                      title: Enable custom TLS settings
                                      description: >-
                                        If set, this will override the default
                                        TLS settings with the provided TLS
                                        settings.
                                      type: boolean
                                      default: true
                                    skipCertificateVerification:
                                      title: Skip Certificate Verification
                                      description: >-
                                        Whether to skip server side certificate
                                        verification.
                                      type: boolean
                                      default: false
                                    enableRenegotiation:
                                      title: Enable Renegotiation
                                      description: >-
                                        Whether to allow the remote server to
                                        repeatedly request renegotiation.
                                      type: boolean
                                      default: false
                                    certificates:
                                      oneOf:
                                        - type: object
                                          title: Root CA File
                                          properties:
                                            rootCAFile:
                                              title: Root CA File
                                              description: >-
                                                An optional path of a root certificate
                                                authority file to use.
                                              type: string
                                              minLength: 1
                                              maxLength: 10000
                                          required:
                                            - rootCAFile
                                        - type: object
                                          title: Root CA
                                          properties:
                                            rootCA:
                                              title: Root CA
                                              description: >-
                                                A plain text root certificate authority
                                                to use.
                                              type: string
                                              minLength: 1
                                              maxLength: 10000
                                          required:
                                            - rootCA
                                        - title: Client Certificates (Plain text)
                                          type: object
                                          properties:
                                            clientCertificates:
                                              type: array
                                              minItems: 1
                                              items:
                                                type: object
                                                properties:
                                                  certificate:
                                                    title: Certificate
                                                    description: A plain text certificate to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                  key:
                                                    title: Certificate Key
                                                    description: A plain text certificate key to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                required:
                                                  - certificate
                                                  - key
                                          required:
                                            - clientCertificates
                                        - title: Client Certificates (Files)
                                          type: object
                                          properties:
                                            clientCertificates:
                                              type: array
                                              minItems: 1
                                              items:
                                                type: object
                                                properties:
                                                  certificateFile:
                                                    title: Certificate File
                                                    description: The path to a certificate to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                  keyFile:
                                                    title: Certificate Key File
                                                    description: The path to a certificate key to use.
                                                    type: string
                                                    minLength: 1
                                                    maxLength: 10000
                                                required:
                                                  - certifcateFile
                                                  - keyFile
                                          required:
                                            - clientCertificates
                                  required:
                                    - enabled
                                  default:
                                    enabled: true
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - localFile
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: localFile
                        description: Local File
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              path:
                                title: Path
                                description: >-
                                  The file to write to, if the file does not yet
                                  exist it will be created.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              codec:
                                title: Codec
                                description: >-
                                  The way in which the bytes of messages should
                                  be written out into the output data stream.
                                type: string
                                default: all-bytes
                                enum:
                                  - all-bytes
                                  - append
                                  - lines
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - path
                              - codec
                            default:
                              codec: all-bytes
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - mqtt
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: mqtt
                        description: MQTT
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: The addresses to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - tcp://localhost:1883
                              topic:
                                title: Topic
                                description: The topic to publish messages to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              clientId:
                                title: Client ID
                                description: An identifier for the client connection.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              qos:
                                title: QoS
                                description: QoS for each message.
                                type: integer
                                default: 1
                                enum:
                                  - 0
                                  - 1
                                  - 2
                              connectTimeout:
                                title: Connection Timeout
                                description: >-
                                  The maximum amount of time to wait in order to
                                  establish a connection before the attempt is
                                  abandoned.
                                type: string
                                default: 30s
                              writeTimeout:
                                title: Write Timeout
                                description: >-
                                  The maximum amount of time to wait to write
                                  data before the attempt is abandoned.
                                type: string
                                default: 30s
                              retained:
                                title: Retained
                                description: Set message as retained on the topic.
                                type: boolean
                                default: false
                              will:
                                enabled:
                                  title: Enabled
                                  description: Whether to enable last will messages.
                                  type: boolean
                                  default: false
                                qos:
                                  title: QoS
                                  description: QoS  for last will message.
                                  type: integer
                                  default: 1
                                  enum:
                                    - 0
                                    - 1
                                    - 2
                                retained:
                                  title: Retained
                                  description: Set retained for last will message.
                                  type: boolean
                                  default: false
                                topic:
                                  title: Topic
                                  description: The topic for last will message.
                                  type: string
                                  minLength: 1
                                  maxLength: 1000
                                payload:
                                  title: Payload
                                  description: Set payload for last will message.
                                  type: string
                                  minLength: 1
                                  maxLength: 10000
                                required:
                                  - qos
                                  - retained
                                  - topic
                                  - payload
                                default:
                                  qos: 1
                                  retained: false
                            required:
                              - addresses
                              - topic
                              - clientId
                              - qos
                              - connectTimeout
                              - writeTimeout
                              - retained
                              - payload
                            default:
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: A username to connect with.
                                type: string
                              password:
                                title: Password
                                description: A password to connect with.
                                type: string
                                format: password
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - username
                              - password
                              - tls
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - amqp
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: amqp
                        description: AMQP
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: The url of the AMQP service.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              targetAddress:
                                title: Target Address
                                description: The address to write to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - targetAddress
                              - credentials
                            default:
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: A SASL plain text username.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: A SASL plain text password.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              mechanism:
                                title: Mechanism
                                description: The SASL authentication mechanism to use.
                                type: string
                                enum:
                                  - PLAIN
                                  - none
                                default: none
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - username
                              - password
                              - mechanism
                              - tls
                            default:
                              mechanism: none
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - sql
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: sql
                        description: SQL
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              driver:
                                title: Driver
                                description: A database driver to use.
                                type: string
                                enum:
                                  - mysql
                                  - postgres
                                  - clickhouse
                                  - mssql
                                default: mysql
                              dsn:
                                title: Data Source Name
                                description: >-
                                  A Data Source Name to identify the target
                                  database.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              table:
                                title: Table
                                description: The table to insert to.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              columns:
                                title: Columns
                                description: A list of columns to insert.
                                type: array
                                items:
                                  type: string
                                  minLength: 1
                                  maxLength: 1000
                                default: []
                              prefix:
                                title: Prefix
                                description: >-
                                  Aprefix to prepend to the insert query (before
                                  INSERT).
                                type: string
                                minLength: 1
                                maxLength: 1000
                              suffix:
                                title: Suffix
                                description: A suffix to append to the insert query.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - driver
                              - dsn
                              - table
                              - columns
                            default:
                              driver: mysql
                              columns: []
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - nats
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: nats
                        description: NATS
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: The addresses to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default:
                                  - nats://127.0.0.1:4222
                              subject:
                                title: Subject
                                description: The subject to publish to.
                                type: string
                                default: crul-message
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - subject
                              - addresses
                            default:
                              addresses:
                                - nats://127.0.0.1:4222
                              subject: crul-message
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              nkeyFile:
                                title: NKey File
                                description: A optional file containing an NKey seed.
                                type: string
                              userCredentialsFile:
                                title: User Credentials File
                                description: >-
                                  A file containing user credentials which
                                  consist of an user JWT and corresponding NKey
                                  seed.
                                type: string
                              headers:
                                title: Headers
                                description: Explicit headers.
                                type: array
                                default: []
                                items:
                                  type: object
                                  properties:
                                    key:
                                      title: Header Name
                                      type: string
                                      default: ''
                                    value:
                                      title: Header Value
                                      type: string
                                      default: ''
                                  required:
                                    - key
                                    - value
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - nKeyFile
                              - userCredentialsFile
                            default:
                              tls:
                                enabled: false
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - nsq
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: nsq
                        description: NSQ
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              nsqdTCPAddress:
                                title: NSQD TCP Address
                                description: The address of the target NSQD server.
                                type: string
                                format: uri
                                default: localhost:4150
                                minLength: 1
                                maxLength: 1000
                              topic:
                                title: Topic
                                description: The topic to publish to.
                                type: string
                                default: crulMessages
                                minLength: 1
                                maxLength: 1000
                              userAgent:
                                title: User Agent
                                description: A user agent string to connect with.
                                type: string
                                default: crulProducer
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - topic
                              - nsqdTCPAddress
                              - userAgent
                            default:
                              nsqdTCPAddress: localhost:4150
                              topic: crulMessages
                              userAgent: crulProducer
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            default:
                              tls:
                                enabled: false
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - redisPubSub
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: redisPubSub
                        description: Redis PubSub
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: >-
                                  The URL of the target Redis server. Database
                                  is optional and is supplied as the URL path.
                                  The scheme tcp is equivalent to redis.
                                type: string
                                format: uri
                                default: tcp://localhost:6379
                              kind:
                                title: Kind
                                description: >-
                                  Specifies a simple, cluster-aware, or
                                  failover-aware redis client.
                                type: string
                                enum:
                                  - simple
                                  - cluster-aware
                                  - failover-aware
                                default: simple
                              master:
                                title: Master
                                description: >-
                                  Name of the redis master when kind is
                                  failover.
                                type: string
                              channel:
                                title: Channel
                                description: The channel to publish messages to.
                                type: string
                                default: crul_chan
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - kind
                              - channel
                            default:
                              url: tcp://localhost:6379
                              kind: simple
                              channel: crul_chan
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                        required:
                          - store
                          - configuration
                - if:
                    properties:
                      type:
                        enum:
                          - cassandra
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: cassandra
                        description: Cassandra
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              addresses:
                                title: Addresses
                                description: A list of Cassandra nodes to connect to.
                                type: array
                                minItems: 1
                                items:
                                  type: string
                                  format: uri
                                default: []
                              query:
                                title: Query
                                description: A query to execute for each message.
                                type: string
                                minLength: 1
                                maxLength: 10000
                              disableInitialHostLookup:
                                title: Disable Initial Host Lookup
                                description: >-
                                  If enabled the driver will not attempt to get
                                  host info from the system.peers table. This
                                  can speed up queries but will mean that
                                  data_centre, rack and token information will
                                  not be available.
                                type: boolean
                                default: false
                              consistency:
                                title: Consistency
                                description: The consistency level to use.
                                type: string
                                enum:
                                  - ANY
                                  - ONE
                                  - TWO
                                  - THREE
                                  - QUORUM
                                  - ALL
                                  - LOCAL_QUORUM
                                  - EACH_QUORUM
                                  - LOCAL_ONE
                                default: QUORUM
                              maxRetries:
                                title: Max Retries
                                description: >-
                                  The maximum number of retries before giving up
                                  on a request.
                                type: integer
                                default: 3
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - addresses
                              - query
                            default:
                              addresses:
                                - localhost:9042
                              disableInitialHostLookup: false
                              consistency: QUORUM
                              maxRetries: 3
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              enabled:
                                title: Enabled
                                type: boolean
                                default: false
                              username:
                                title: Username
                                description: A username to connect with.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: The password for the provided username.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - enabled
                            default:
                              enabled: false
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - pulsar
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: pulsar
                        description: Apache Pulsar
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              url:
                                title: URL
                                description: A URL to connect to.
                                type: string
                                format: uri
                                default: pulsar://localhost:6650
                              topic:
                                title: Topic
                                description: A topic to publish to.
                                type: string
                              key:
                                title: Key
                                description: The key to publish messages with.
                                type: string
                              orderingKey:
                                title: Ordering Key
                                description: The ordering key to publish messages with.
                                type: string
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - url
                              - topic
                              - key
                              - orderingKey
                            default:
                              url: pulsar://localhost:6650
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: OAuth
                                type: object
                                properties:
                                  oauth2:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      audience:
                                        title: Audience
                                        description: OAuth2 audience.
                                        type: string
                                        default: ''
                                      issuerURL:
                                        title: Issuer URL
                                        description: OAuth2 issuer URL.
                                        type: string
                                        default: ''
                                      privateKeyFile:
                                        title: Private Key File
                                        description: File containing the private key.
                                        type: string
                                        default: ''
                                    required:
                                      - enabled
                                      - audience
                                      - issuerURL
                                      - privateKeyFile
                                required:
                                  - oauth2
                              - title: Token
                                type: object
                                properties:
                                  token:
                                    type: object
                                    properties:
                                      enabled:
                                        title: Enabled
                                        type: boolean
                                        default: false
                                      token:
                                        title: Token Value
                                        description: Actual base64 encoded token.
                                        type: string
                                        format: password
                                        default: ''
                                    required:
                                      - enabled
                                      - token
                                required:
                                  - token
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - sftp
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: sftp
                        description: SFTP
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              address:
                                title: Address
                                description: The address of the server to connect to.
                                type: string
                                format: uri
                              path:
                                title: Path
                                description: >-
                                  The file to save the messages to on the
                                  server.
                                type: string
                              codec:
                                title: Codec
                                description: >-
                                  The way in which the bytes of messages should
                                  be written out into the output data stream.
                                type: string
                                enum:
                                  - all-bytes
                                  - append
                                  - lines
                                default: all-bytes
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - address
                              - path
                              - codec
                            default:
                              codec: all-bytes
                              throughput: 1
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            oneOf:
                              - title: Username/Password
                                type: object
                                properties:
                                  username:
                                    title: Username
                                    description: >-
                                      The username to connect to the SFTP
                                      server.
                                    type: string
                                    default: ''
                                  password:
                                    title: Password
                                    description: >-
                                      The password for the username to connect
                                      to the SFTP server.
                                    type: string
                                    format: password
                                    default: ''
                                required:
                                  - username
                                  - password
                              - title: Private Key File
                                type: object
                                properties:
                                  privateKeyFile:
                                    title: Private Key File
                                    description: >-
                                      The private key for the username to
                                      connect to the SFTP server.
                                    type: string
                                    default: ''
                                  privateKeyFilePassword:
                                    title: Private Key File Password
                                    description: Optional passphrase for private key.
                                    type: string
                                    format: password
                                required:
                                  - privateKeyFile
                                  - privateKeyFilePassword
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - timeplus
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: timeplus
                        description: Timeplus Stream Collector
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              schemehostport:
                                title: API Endpoint
                                description: The Timeplus REST service to send data to.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              stream:
                                title: Stream
                                description: The stream to be used for delivered data.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - schemehostport
                              - stream
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: API key
                                description: >-
                                  A valid Timeplus API key associated with the
                                  provided schemehostport.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - snowflake
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: snowflake
                        description: >-
                          Sends messages to Snowflake stages and, optionally,
                          calls Snowpipe to load this data into one or more
                          tables.
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              account:
                                title: Account
                                description: >-
                                  Account name, which is the same as the Account
                                  Identifier as described here. However, when
                                  using an Account Locator, the Account
                                  Identifier is formatted as
                                  <account_locator>.<region_id>.<cloud> and this
                                  field needs to be populated using the
                                  <account_locator> part.
                                type: string
                                format: uri
                                minLength: 1
                                maxLength: 1000
                              region:
                                title: Region
                                description: >-
                                  Optional region field which needs to be
                                  populated when using an Account Locator and it
                                  must be set to the <region_id> part of the
                                  Account Identifier
                                  (<account_locator>.<region_id>.<cloud>).
                                type: string
                                minLength: 1
                                maxLength: 1000
                              cloud:
                                title: Cloud
                                description: >-
                                  Optional cloud platform field which needs to
                                  be populated when using an Account Locator and
                                  it must be set to the <cloud> part of the
                                  Account Identifier
                                  (<account_locator>.<region_id>.<cloud>).
                                type: string
                                minLength: 1
                                maxLength: 1000
                              database:
                                title: Database
                                description: Database
                                type: string
                                minLength: 1
                                maxLength: 1000
                              warehouse:
                                title: Warehouse
                                description: Warehouse
                                type: string
                                minLength: 1
                                maxLength: 1000
                              schema:
                                title: Schema
                                description: Schema
                                type: string
                                minLength: 1
                                maxLength: 1000
                              stage:
                                title: Stage
                                description: >-
                                  Stage name. Use either one of the supported
                                  stage types.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              path:
                                title: Path
                                description: Stage path.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              role:
                                title: Role
                                description: Role.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              snowpipe:
                                title: Snowpipe
                                description: >-
                                  An optional Snowpipe name. Use the <snowpipe>
                                  part from <database>.<schema>.<snowpipe>.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              upload_parallel_threads:
                                title: Upload Parallel Threads
                                description: >-
                                  Specifies the number of threads to use for
                                  uploading files.
                                type: integer
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - account
                            default:
                              throughput: 10
                              upload_parallel_threads: 4
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: username
                                description: Username.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: password
                                description: An optional password.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - username
                        required:
                          - store
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - graphistry
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: graphistry
                        description: Graphistry Upload
                        type: object
                        properties:
                          store:
                            title: Store
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this store.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              datasetId:
                                title: Dataset ID
                                description: The Graphistry dataset Id.
                                type: string
                                minLength: 1
                                maxLength: 1000
                              throughput:
                                title: Throughput
                                description: The number of concurrent outbound operations.
                                type: integer
                            required:
                              - datasetId
                            default:
                              throughput: 10
                          processors:
                            title: Custom Processing Functions
                            type: array
                            items:
                              title: Processor
                              description: A processing function.
                              type: string
                              minLength: 1
                              maxLength: 1000
                            default: []
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              token:
                                title: API key
                                description: A valid Graphistry API key.
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                              tls:
                                title: Advanced TLS Settings
                                type: object
                                properties:
                                  enabled:
                                    title: Enable custom TLS settings
                                    description: >-
                                      If set, this will override the default TLS
                                      settings with the provided TLS settings.
                                    type: boolean
                                    default: true
                                  skipCertificateVerification:
                                    title: Skip Certificate Verification
                                    description: >-
                                      Whether to skip server side certificate
                                      verification.
                                    type: boolean
                                    default: false
                                  enableRenegotiation:
                                    title: Enable Renegotiation
                                    description: >-
                                      Whether to allow the remote server to
                                      repeatedly request renegotiation.
                                    type: boolean
                                    default: false
                                  certificates:
                                    oneOf:
                                      - type: object
                                        title: Root CA File
                                        properties:
                                          rootCAFile:
                                            title: Root CA File
                                            description: >-
                                              An optional path of a root certificate
                                              authority file to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCAFile
                                      - type: object
                                        title: Root CA
                                        properties:
                                          rootCA:
                                            title: Root CA
                                            description: >-
                                              A plain text root certificate authority
                                              to use.
                                            type: string
                                            minLength: 1
                                            maxLength: 10000
                                        required:
                                          - rootCA
                                      - title: Client Certificates (Plain text)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificate:
                                                  title: Certificate
                                                  description: A plain text certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                key:
                                                  title: Certificate Key
                                                  description: A plain text certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certificate
                                                - key
                                        required:
                                          - clientCertificates
                                      - title: Client Certificates (Files)
                                        type: object
                                        properties:
                                          clientCertificates:
                                            type: array
                                            minItems: 1
                                            items:
                                              type: object
                                              properties:
                                                certificateFile:
                                                  title: Certificate File
                                                  description: The path to a certificate to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                                keyFile:
                                                  title: Certificate Key File
                                                  description: The path to a certificate key to use.
                                                  type: string
                                                  minLength: 1
                                                  maxLength: 10000
                                              required:
                                                - certifcateFile
                                                - keyFile
                                        required:
                                          - clientCertificates
                                required:
                                  - enabled
                                default:
                                  enabled: true
                            required:
                              - token
                            default:
                              tls:
                                enabled: true
                        required:
                          - store
                          - configuration
                          - credentials
              required:
                - type
        required: true
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The store name.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: store-delete
      summary: Delete a store
      tags:
        - stores
      description: Deletes the store with the provided name.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9-_. ]+$
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The store name.
      responses:
        '200':
          description: Default Response
  /v1/secrets/stores/schemas:
    get:
      operationId: stores-schemas-list
      summary: Retrieve all store schemas
      tags:
        - stores
      description: Lists store schemas.
      responses:
        '200':
          description: Default Response
  /v1/secrets/stores/schemas/{type}:
    get:
      operationId: store-schema-get
      summary: Retrieve a store schema
      tags:
        - stores
      description: Gets the store schema with the provided store type.
      parameters:
        - schema:
            type: string
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/credentials:
    get:
      operationId: credentials-list
      summary: List credentials
      tags:
        - credentials
      description: Lists credentials.
      responses:
        '200':
          description: Default Response
    post:
      operationId: credential-create
      summary: Create a credential
      tags:
        - credentials
      description: Creates a new credential.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - oauth
                    - splunk
                    - custom
                    - openai
                    - pinecone
                    - okta
                    - gcp
                    - aws4
              allOf:
                - if:
                    properties:
                      type:
                        enum:
                          - oauth
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: oauth
                        description: OAuth
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              auth:
                                type: object
                                title: Token Details
                                properties:
                                  tokenHost:
                                    title: Token Host
                                    description: The host associated with this token.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  tokenPath:
                                    title: Token Path
                                    description: The path to request the token.
                                    type: string
                                    minLength: 1
                                    maxLength: 5000
                                required:
                                  - tokenHost
                                  - tokenPath
                            required:
                              - auth
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              client:
                                type: object
                                title: Client Credential
                                properties:
                                  id:
                                    title: Client ID
                                    description: ''
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  secret:
                                    title: Client Secret
                                    description: ''
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - id
                                  - secret
                        required:
                          - credential
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - splunk
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: splunk
                        description: Splunk
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - username
                              - password
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - custom
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: custom
                        description: Custom
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              secret:
                                title: Secret
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - secret
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - openai
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: openai
                        description: An Open AI API Key
                        type: object
                        properties:
                          credential:
                            title: Name
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                            default:
                              name: openai
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              secret:
                                title: Secret
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - secret
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - pinecone
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: pinecone
                        description: A Pinecone API Key
                        type: object
                        properties:
                          credential:
                            title: Name
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                            default:
                              name: pinecone
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              secret:
                                title: Secret
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - secret
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - okta
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: okta
                        description: Okta
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - username
                              - password
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - gcp
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcp
                        description: Google Cloud JSON Web Tokens
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              gcp:
                                title: Key file
                                type: object
                                properties:
                                  keyfile:
                                    title: keyfile.json (source)
                                    description: >-
                                      Private key json file saved to your
                                      computer.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 10000
                                required:
                                  - keyfile
                            required:
                              - gcp
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - aws4
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: aws4
                        description: Amazon AWS Signature Version 4
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              aws4:
                                title: Access Keys
                                type: object
                                properties:
                                  accessKeyId:
                                    title: Access Key ID
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 10000
                                  secretAccessKey:
                                    title: Secret Access Key
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 10000
                                required:
                                  - accessKeyId
                                  - secretAccessKey
                            required:
                              - aws4
                        required:
                          - credential
                          - credentials
              required:
                - type
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/credentials/oauth/mappings:
    get:
      operationId: oauth-mappings-list
      summary: List OAuth mappings
      tags:
        - credentials
      description: Lists OAuth mappings.
      responses:
        '200':
          description: Default Response
  /v1/secrets/credentials/{name}:
    get:
      operationId: credential-get
      summary: Retrieve a credential
      tags:
        - credentials
      description: Gets the credential with the provided name.
      parameters:
        - schema:
            type: string
          in: path
          name: name
          required: true
      responses:
        '200':
          description: Default Response
    put:
      operationId: credential-update
      summary: Update a credential
      tags:
        - credentials
      description: Updates an existing credential.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - oauth
                    - splunk
                    - custom
                    - openai
                    - pinecone
                    - okta
                    - gcp
                    - aws4
              allOf:
                - if:
                    properties:
                      type:
                        enum:
                          - oauth
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: oauth
                        description: OAuth
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          configuration:
                            title: Configuration
                            type: object
                            properties:
                              auth:
                                type: object
                                title: Token Details
                                properties:
                                  tokenHost:
                                    title: Token Host
                                    description: The host associated with this token.
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  tokenPath:
                                    title: Token Path
                                    description: The path to request the token.
                                    type: string
                                    minLength: 1
                                    maxLength: 5000
                                required:
                                  - tokenHost
                                  - tokenPath
                            required:
                              - auth
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              client:
                                type: object
                                title: Client Credential
                                properties:
                                  id:
                                    title: Client ID
                                    description: ''
                                    type: string
                                    minLength: 1
                                    maxLength: 1000
                                  secret:
                                    title: Client Secret
                                    description: ''
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 1000
                                required:
                                  - id
                                  - secret
                        required:
                          - credential
                          - configuration
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - splunk
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: splunk
                        description: Splunk
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - username
                              - password
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - custom
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: custom
                        description: Custom
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              secret:
                                title: Secret
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - secret
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - openai
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: openai
                        description: An Open AI API Key
                        type: object
                        properties:
                          credential:
                            title: Name
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                            default:
                              name: openai
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              secret:
                                title: Secret
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - secret
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - pinecone
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: pinecone
                        description: A Pinecone API Key
                        type: object
                        properties:
                          credential:
                            title: Name
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                            default:
                              name: pinecone
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              secret:
                                title: Secret
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - secret
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - okta
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: okta
                        description: Okta
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              username:
                                title: Username
                                description: ''
                                type: string
                                minLength: 1
                                maxLength: 1000
                              password:
                                title: Password
                                description: ''
                                type: string
                                format: password
                                minLength: 1
                                maxLength: 1000
                            required:
                              - username
                              - password
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - gcp
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: gcp
                        description: Google Cloud JSON Web Tokens
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              gcp:
                                title: Key file
                                type: object
                                properties:
                                  keyfile:
                                    title: keyfile.json (source)
                                    description: >-
                                      Private key json file saved to your
                                      computer.
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 10000
                                required:
                                  - keyfile
                            required:
                              - gcp
                        required:
                          - credential
                          - credentials
                - if:
                    properties:
                      type:
                        enum:
                          - aws4
                    required:
                      - type
                  then:
                    properties:
                      config:
                        title: aws4
                        description: Amazon AWS Signature Version 4
                        type: object
                        properties:
                          credential:
                            title: Details
                            type: object
                            properties:
                              name:
                                title: Name
                                description: A unique name for this credential.
                                type: string
                                minLength: 1
                                maxLength: 1000
                            required:
                              - name
                          credentials:
                            title: Credentials
                            type: object
                            properties:
                              aws4:
                                title: Access Keys
                                type: object
                                properties:
                                  accessKeyId:
                                    title: Access Key ID
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 10000
                                  secretAccessKey:
                                    title: Secret Access Key
                                    type: string
                                    format: password
                                    minLength: 1
                                    maxLength: 10000
                                required:
                                  - accessKeyId
                                  - secretAccessKey
                            required:
                              - aws4
                        required:
                          - credential
                          - credentials
              required:
                - type
        required: true
      parameters:
        - schema:
            type: string
          in: path
          name: name
          required: true
      responses:
        '200':
          description: Default Response
    delete:
      operationId: credential-delete
      summary: Delete a credential
      tags:
        - credentials
      description: Deletes the credential with the provided name.
      parameters:
        - schema:
            type: string
          in: path
          name: name
          required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/credentials/schemas/{type}:
    get:
      operationId: credential-schema-get
      summary: Get credential schema
      tags:
        - credentials
      description: Gets the credential schema with the provided credential type.
      parameters:
        - schema:
            type: string
          in: path
          name: type
          required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/credentials/schemas:
    get:
      operationId: credentials-schemas-list
      summary: List credential schemas
      tags:
        - credentials
      description: Lists credential schemas.
      responses:
        '200':
          description: Default Response
  /v1/secrets/apikeys/generate:
    get:
      operationId: api-key-generate
      summary: Generate an API key
      tags:
        - api_keys
      description: Generate an API key value.
      responses:
        '200':
          description: Default Response
  /v1/secrets/apikeys/verify:
    post:
      operationId: api-key-verify
      summary: Verify an API key
      tags:
        - api_keys
      description: Verify an API key value.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                key:
                  description: The api key.
                  type: string
                  minLength: 1
                  maxLength: 1000
              required:
                - key
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/apikeys:
    get:
      operationId: api-keys-get
      summary: Retrieve all API keys
      tags:
        - api_keys
      description: Retrieve all API keys.
      responses:
        '200':
          description: Default Response
    post:
      responses:
        '200':
          description: Default Response
  /v1/secrets/apikeys/{id}:
    get:
      operationId: api-key-get
      summary: Retrieve an API key
      tags:
        - api_keys
      description: Retrieve an API key.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
    put:
      responses:
        '200':
          description: Default Response
    delete:
      operationId: api-key-delete
      summary: Delete an API key
      tags:
        - api_keys
      description: Delete an API key.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/secrets/users:
    get:
      operationId: users-get
      summary: Retrieve all users
      tags:
        - users
      description: Retrieve all users.
      responses:
        '200':
          description: Default Response
    post:
      operationId: user-create
      summary: Create a new user
      tags:
        - users
      description: Create a new user.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                credential:
                  type: object
                  properties:
                    username:
                      description: The username.
                      type: string
                      minLength: 1
                      maxLength: 1000
                    password:
                      description: The password.
                      type: string
                      minLength: 7
                      maxLength: 1000
                  required:
                    - username
                    - password
              required:
                - credential
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/users/{username}:
    get:
      operationId: user-get
      summary: Retrieve a user
      tags:
        - users
      description: Retrieve a user.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: username
          required: true
          description: The username.
      responses:
        '200':
          description: Default Response
    put:
      operationId: user-update
      summary: Update a user
      tags:
        - users
      description: Update a user.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                credential:
                  type: object
                  properties:
                    username:
                      description: The username.
                      type: string
                      minLength: 1
                      maxLength: 1000
                    password:
                      description: The password.
                      type: string
                      minLength: 7
                      maxLength: 1000
                    oldpassword:
                      description: The password.
                      type: string
                      minLength: 7
                      maxLength: 1000
                  required:
                    - username
                    - password
                    - oldpassword
              required:
                - credential
        required: true
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: username
          required: true
          description: The username.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: user-delete
      summary: Delete a user
      tags:
        - users
      description: Delete a user.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: username
          required: true
          description: The username.
      responses:
        '200':
          description: Default Response
  /v1/secrets/users/verify:
    post:
      operationId: user-verify
      summary: Verify a user
      tags:
        - users
      description: Verify a user credential.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                credential:
                  type: object
                  properties:
                    username:
                      description: The username.
                      type: string
                      minLength: 1
                      maxLength: 1000
                    password:
                      description: The password.
                      type: string
                      minLength: 7
                      maxLength: 1000
                  required:
                    - username
                    - password
              required:
                - credential
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/checkpoints:
    get:
      operationId: checkpoints-get
      summary: Retrieve all checkpoints
      tags:
        - checkpoints
      description: Retrieve all checkpoints.
      responses:
        '200':
          description: Default Response
    post:
      operationId: checkpoint-create
      summary: Create a new checkpoint
      tags:
        - checkpoints
      description: Create a new checkpoint.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The checkpoint name.
                  type: string
                  minLength: 1
                  maxLength: 1000
                checkpoint:
                  description: The checkpoint value.
                  type: string
                  minLength: 1
                  maxLength: 10000
              required:
                - name
                - checkpoint
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/checkpoints/{name}:
    get:
      operationId: checkpoint-get
      summary: Retrieve a checkpoint
      tags:
        - checkpoints
      description: Retrieve a checkpoint.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The checkpoint name.
      responses:
        '200':
          description: Default Response
    put:
      operationId: checkpoint-update
      summary: Update a checkpoint
      tags:
        - checkpoints
      description: Update a checkpoint.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                checkpoint:
                  description: The checkpoint value.
                  type: string
                  minLength: 1
                  maxLength: 10000
              required:
                - checkpoint
        required: true
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The checkpoint name.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: checkpoint-delete
      summary: Delete a checkpoint
      tags:
        - checkpoints
      description: Delete a checkpoint.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The checkpoint name.
      responses:
        '200':
          description: Default Response
  /v1/secrets/prompts:
    get:
      operationId: prompts-get
      summary: Retrieve all prompts
      tags:
        - prompts
      description: Retrieve all prompts.
      responses:
        '200':
          description: Default Response
    post:
      operationId: prompt-create
      summary: Create a new prompt
      tags:
        - prompts
      description: Create a new prompt.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The prompt name.
                  type: string
                  minLength: 1
                  maxLength: 1000
                prompt:
                  description: The prompt value.
                  type: string
                  minLength: 1
                  maxLength: 10000
              required:
                - name
                - prompt
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/prompts/{name}:
    get:
      operationId: prompt-get
      summary: Retrieve a prompt
      tags:
        - prompts
      description: Retrieve a prompt.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The prompt name.
      responses:
        '200':
          description: Default Response
    put:
      operationId: prompt-update
      summary: Update a prompt
      tags:
        - prompts
      description: Update a prompt.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  description: The prompt value.
                  type: string
                  minLength: 1
                  maxLength: 10000
              required:
                - prompt
        required: true
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The prompt name.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: prompt-delete
      summary: Delete a prompt
      tags:
        - prompts
      description: Delete a prompt.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The prompt name.
      responses:
        '200':
          description: Default Response
  /v1/screenshot/restart:
    post:
      operationId: restart
      summary: Restart the service
      tags:
        - screenshot
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/screenshot/image/{hash}:
    get:
      summary: Retrieve a screenshot
      tags:
        - screenshot
      description: Retrieves a screenshot matching the specified hash.
      parameters:
        - schema:
            type: string
            minLength: 64
            maxLength: 64
          in: path
          name: hash
          required: true
          description: A hash value used for lookup of the image.
      responses:
        '200':
          description: Default Response
  /v1/mentos/env:
    get:
      operationId: stream-env-list
      summary: Retrieve environment variables
      tags:
        - mentos
      description: Returns instance environment variables.
      responses:
        '200':
          description: Default Response
  /v1/mentos/ping:
    get:
      operationId: stream-ping
      summary: Ping service
      tags:
        - mentos
      description: Pings service.
      responses:
        '200':
          description: Default Response
  /v1/mentos/restart:
    post:
      operationId: restart
      summary: Restart service
      tags:
        - mentos
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/mentos/streams:
    get:
      responses:
        '200':
          description: Default Response
    post:
      operationId: stream-post
      summary: Create a stream
      tags:
        - mentos
      description: Create a new stream.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The stream name/label reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                streamConfig:
                  description: A configuration object describing the desired stream.
                  type: object
              required:
                - name
                - streamConfig
        required: true
      responses:
        '200':
          description: Default Response
  /v1/mentos/streams/{name}:
    get:
      operationId: stream-get
      summary: Retrieve a stream
      tags:
        - mentos
      description: Returns the provided stream.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The stream name/label reference.
      responses:
        '200':
          description: Default Response
    delete:
      operationId: stream-delete
      summary: Delete a stream
      tags:
        - mentos
      description: Deletes the provided stream.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: name
          required: true
          description: The stream name/label reference.
      responses:
        '200':
          description: Default Response
  /v1/mentos/streams/{name}/write:
    post:
      operationId: stream-write-post
      summary: Write to an existing stream
      tags:
        - mentos
      description: Write content to an existing stream.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  description: An object to pass in as an input to a stream.
                  type: object
              required:
                - content
        required: true
      responses:
        '200':
          description: Default Response
  /v1/mentos/write:
    post:
      operationId: stream-post
      summary: Write to a stream
      tags:
        - mentos
      description: Write results using a stream.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The stream name/label reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                config:
                  description: A configuration object describing the desired write.
                  type: object
              required:
                - config
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/restart:
    post:
      operationId: restart
      summary: Restart service
      tags:
        - krull
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/krull/devices:
    get:
      summary: List of devices
      tags:
        - krull
      description: Devices and associated viewport properties that can be emulated.
      responses:
        '200':
          description: Default Response
  /v1/krull/top:
    get:
      summary: System details
      tags:
        - krull
      description: System health and active workers including error reporting.
      responses:
        '200':
          description: Default Response
  /v1/krull/evaluate:
    post:
      summary: Evaluate a JavaScript expression
      tags:
        - krull
      description: Evaluate a JavaScript expression and return results.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - expression
              properties:
                expression:
                  description: >-
                    A JavaScript expression to evaluate, NOTE: Functions must be
                    in fat-arrow format.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                jquery:
                  description: >-
                    Import jQuery library. Passed to expression function in last
                    argument (ie., (..args, { $ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                lodash:
                  description: >-
                    Import lodash library. Passed to expression function in last
                    argument (ie., (..args, { _ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                mathjs:
                  description: >-
                    Import mathjs library. Passed to expression function in last
                    argument (ie., (..args, { mathjs }) => {}). NOTE: When
                    imported into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                args:
                  description: >-
                    Argument values to pass to an expression. Passed as leading
                    argument or middle arguments if data is passed back to
                    expression (ie., ([data], ...args, [options]) => {}).
                  type: array
                  maxItems: 100
                  items:
                    type:
                      - string
                      - number
                      - object
                      - array
                      - boolean
                      - 'null'
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/requests:
    post:
      summary: Capture all external requests
      tags:
        - krull
      description: >-
        A summary of all external requests made from a url. NOTE: This is a
        slower operation as all requests are processed.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
              properties:
                url:
                  description: A URL for a webpage.
                  type: string
                  pattern: ^https?://
                expression:
                  description: >-
                    A JavaScript expression to evaluate, NOTE: Functions must be
                    in fat-arrow format.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                cookieStorage:
                  description: Cookie data to be set.
                  type: object
                  additionalProperties:
                    type: object
                    required:
                      - value
                      - domain
                    properties:
                      value:
                        type: string
                      domain:
                        type: string
                      path:
                        type: string
                      expires:
                        type:
                          - string
                          - number
                      size:
                        type: number
                      httpOnly:
                        type: boolean
                      secure:
                        type: boolean
                      session:
                        type: boolean
                sessionStorage:
                  description: sessionStorage data to be set.
                  type: object
                localStorage:
                  description: localStorage data to be set.
                  type: object
                responseText:
                  description: >-
                    Include the response text. NOTE: This can have performance
                    implications.
                  type: boolean
                  default: false
                session:
                  description: >-
                    Capture the browser cookie, localStorage and sessionStorage
                    object/values.
                      Decorates the return value(s) with localStorage, sessionStorage and cookieStorage.
                      NOTE: See cookieStorage, localStorage and sessionStorage for object serialization structure.
                  type: boolean
                  default: false
                jquery:
                  description: >-
                    Import jQuery library. Passed to expression function in last
                    argument (ie., (..args, { $ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                lodash:
                  description: >-
                    Import lodash library. Passed to expression function in last
                    argument (ie., (..args, { _ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                mathjs:
                  description: >-
                    Import mathjs library. Passed to expression function in last
                    argument (ie., (..args, { mathjs }) => {}). NOTE: When
                    imported into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                args:
                  description: >-
                    Argument values to pass to an expression. Passed as leading
                    argument or middle arguments if data is passed back to
                    expression (ie., ([data], ...args, [options]) => {}).
                  type: array
                  maxItems: 100
                  items:
                    type:
                      - string
                      - number
                      - object
                      - array
                      - boolean
                      - 'null'
                retry:
                  description: >-
                    The number of times to retry a failed browser transaction.
                    NOTE: The total number of attempts is the sum of the first
                    request plus the retry number (ie., retry of 2 will result
                    in three attempts). Hey kid, three strikes you are out of
                    here!
                  type: number
                  minimum: 0
                  maximum: 2
                device:
                  description: The device to emulate.
                  type: string
                  enum:
                    - Desktop
                    - Blackberry PlayBook
                    - Blackberry PlayBook landscape
                    - BlackBerry Z30
                    - BlackBerry Z30 landscape
                    - Galaxy Note 3
                    - Galaxy Note 3 landscape
                    - Galaxy Note II
                    - Galaxy Note II landscape
                    - Galaxy S III
                    - Galaxy S III landscape
                    - Galaxy S5
                    - Galaxy S5 landscape
                    - Galaxy S8
                    - Galaxy S8 landscape
                    - Galaxy S9+
                    - Galaxy S9+ landscape
                    - Galaxy Tab S4
                    - Galaxy Tab S4 landscape
                    - iPad
                    - iPad landscape
                    - iPad (gen 6)
                    - iPad (gen 6) landscape
                    - iPad (gen 7)
                    - iPad (gen 7) landscape
                    - iPad Mini
                    - iPad Mini landscape
                    - iPad Pro
                    - iPad Pro landscape
                    - iPad Pro 11
                    - iPad Pro 11 landscape
                    - iPhone 4
                    - iPhone 4 landscape
                    - iPhone 5
                    - iPhone 5 landscape
                    - iPhone 6
                    - iPhone 6 landscape
                    - iPhone 6 Plus
                    - iPhone 6 Plus landscape
                    - iPhone 7
                    - iPhone 7 landscape
                    - iPhone 7 Plus
                    - iPhone 7 Plus landscape
                    - iPhone 8
                    - iPhone 8 landscape
                    - iPhone 8 Plus
                    - iPhone 8 Plus landscape
                    - iPhone SE
                    - iPhone SE landscape
                    - iPhone X
                    - iPhone X landscape
                    - iPhone XR
                    - iPhone XR landscape
                    - iPhone 11
                    - iPhone 11 landscape
                    - iPhone 11 Pro
                    - iPhone 11 Pro landscape
                    - iPhone 11 Pro Max
                    - iPhone 11 Pro Max landscape
                    - iPhone 12
                    - iPhone 12 landscape
                    - iPhone 12 Pro
                    - iPhone 12 Pro landscape
                    - iPhone 12 Pro Max
                    - iPhone 12 Pro Max landscape
                    - iPhone 12 Mini
                    - iPhone 12 Mini landscape
                    - iPhone 13
                    - iPhone 13 landscape
                    - iPhone 13 Pro
                    - iPhone 13 Pro landscape
                    - iPhone 13 Pro Max
                    - iPhone 13 Pro Max landscape
                    - iPhone 13 Mini
                    - iPhone 13 Mini landscape
                    - JioPhone 2
                    - JioPhone 2 landscape
                    - Kindle Fire HDX
                    - Kindle Fire HDX landscape
                    - LG Optimus L70
                    - LG Optimus L70 landscape
                    - Microsoft Lumia 550
                    - Microsoft Lumia 950
                    - Microsoft Lumia 950 landscape
                    - Nexus 10
                    - Nexus 10 landscape
                    - Nexus 4
                    - Nexus 4 landscape
                    - Nexus 5
                    - Nexus 5 landscape
                    - Nexus 5X
                    - Nexus 5X landscape
                    - Nexus 6
                    - Nexus 6 landscape
                    - Nexus 6P
                    - Nexus 6P landscape
                    - Nexus 7
                    - Nexus 7 landscape
                    - Nokia Lumia 520
                    - Nokia Lumia 520 landscape
                    - Nokia N9
                    - Nokia N9 landscape
                    - Pixel 2
                    - Pixel 2 landscape
                    - Pixel 2 XL
                    - Pixel 2 XL landscape
                    - Pixel 3
                    - Pixel 3 landscape
                    - Pixel 4
                    - Pixel 4 landscape
                    - Pixel 4a (5G)
                    - Pixel 4a (5G) landscape
                    - Pixel 5
                    - Pixel 5 landscape
                    - Moto G4
                    - Moto G4 landscape
                  default: iPhone X
                headers:
                  description: HTTP headers to set before loading page.
                  type: object
                wait:
                  description: Wait criteria before resolving page load.
                  anyOf:
                    - description: >-
                        winload - consider navigation to be finished when the
                        window load event is fired.

                        domload - consider navigation to be finished when the
                        DOMContentLoaded event is fired.

                        idle - consider navigation to be finished when there are
                        no more than 0 network connections for at least 500 ms.

                        net2 - consider navigation to be finished when there are
                        no more than 2 network connections for at least 500 ms.
                      type: string
                      enum:
                        - idle
                        - net2
                        - winload
                        - domload
                    - description: The number of milliseconds to wait for.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: Function to be evaluated in browser context.
                      type: string
                      pattern: /^([^{=]+|\(.*\)\s*)?=>/
                    - description: A selector of an element to wait for.
                      type: string
                      minLength: 1
                      maxLength: 1048576
                ready:
                  description: >-
                    winload - consider navigation to be finished when the window
                    load event is fired.

                    domload - consider navigation to be finished when the
                    DOMContentLoaded event is fired.

                    idle - consider navigation to be finished when there are no
                    more than 0 network connections for at least 500 ms.

                    net2 - consider navigation to be finished when there are no
                    more than 2 network connections for at least 500 ms.
                  type: string
                  enum:
                    - idle
                    - net2
                    - winload
                    - domload
                visible:
                  description: >-
                    Wait for element to be present in DOM and to be visible,
                    i.e. to not have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                hidden:
                  description: >-
                    Wait for element to not be found in the DOM or to be hidden,
                    i.e. have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                polling:
                  description: >-
                    An interval at which the wait function/()=> is executed,
                    defaults to raf. If polling is a number, then it is treated
                    as an interval in milliseconds at which the function would
                    be executed. If polling is a string, then it can be one of
                    the following values:

                    raf - to constantly execute function/()=>  in
                    requestAnimationFrame callback. This is the tightest polling
                    mode which is suitable to observe styling changes.

                    mutation - to execute function/()=> on every DOM mutation.
                  anyOf:
                    - description: Interval in milliseconds.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: >-
                        Polling interval based on requestAnimationFrame callback
                        (raf) DOM mutation (mutation)
                      type: string
                      enum:
                        - raf
                        - mutation
                proxy:
                  description: >-
                    The URI for a http, https, socks(v5), socks5, socks4, or pac
                    proxy.
                  type: string
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/scrape:
    post:
      summary: Execute JavaScript within a page
      tags:
        - krull
      description: >-
        The general swiss-army knife for execution of arbitrary JavaScript
        within a given url.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
                - expression
              properties:
                url:
                  description: A URL for a webpage.
                  type: string
                  pattern: ^https?://
                expression:
                  description: >-
                    A JavaScript expression to evaluate, NOTE: Functions must be
                    in fat-arrow format.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                screenshot:
                  description: >-
                    Take full page screenshot. NOTE: This can have performance
                    implications.
                  type: boolean
                  default: false
                session:
                  description: >-
                    Capture the browser cookie, localStorage and sessionStorage
                    object/values.
                      Decorates the return value(s) with localStorage, sessionStorage and cookieStorage.
                      NOTE: See cookieStorage, localStorage and sessionStorage for object serialization structure.
                  type: boolean
                  default: false
                type:
                  description: Specifies the image type.
                  type: string
                  enum:
                    - png
                    - jpeg
                    - webp
                  default: jpeg
                quality:
                  description: >-
                    The quality of the image. NOTE: Only applicable to jpg
                    images.
                  type: number
                  minimum: 1
                  maximum: 100
                  default: 100
                cookieStorage:
                  description: Cookie data to be set.
                  type: object
                  additionalProperties:
                    type: object
                    required:
                      - value
                      - domain
                    properties:
                      value:
                        type: string
                      domain:
                        type: string
                      path:
                        type: string
                      expires:
                        type:
                          - string
                          - number
                      size:
                        type: number
                      httpOnly:
                        type: boolean
                      secure:
                        type: boolean
                      session:
                        type: boolean
                sessionStorage:
                  description: sessionStorage data to be set.
                  type: object
                localStorage:
                  description: localStorage data to be set.
                  type: object
                jquery:
                  description: >-
                    Import jQuery library. Passed to expression function in last
                    argument (ie., (..args, { $ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                lodash:
                  description: >-
                    Import lodash library. Passed to expression function in last
                    argument (ie., (..args, { _ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                mathjs:
                  description: >-
                    Import mathjs library. Passed to expression function in last
                    argument (ie., (..args, { mathjs }) => {}). NOTE: When
                    imported into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                args:
                  description: >-
                    Argument values to pass to an expression. Passed as leading
                    argument or middle arguments if data is passed back to
                    expression (ie., ([data], ...args, [options]) => {}).
                  type: array
                  maxItems: 100
                  items:
                    type:
                      - string
                      - number
                      - object
                      - array
                      - boolean
                      - 'null'
                filter:
                  description: >-
                    Hostname or path values to glob and block requests against
                    (eg., *.doubleclick.net will block all requests to
                    doubleclick.net). NOTE: Filtering rquests can result in
                    longer page loads and execution time.
                  type: array
                  maxItems: 1000
                  items:
                    type:
                      - string
                retry:
                  description: >-
                    The number of times to retry a failed browser transaction.
                    NOTE: The total number of attempts is the sum of the first
                    request plus the retry number (ie., retry of 2 will result
                    in three attempts). Hey kid, three strikes you are out of
                    here!
                  type: number
                  minimum: 0
                  maximum: 2
                device:
                  description: The device to emulate.
                  type: string
                  enum:
                    - Desktop
                    - Blackberry PlayBook
                    - Blackberry PlayBook landscape
                    - BlackBerry Z30
                    - BlackBerry Z30 landscape
                    - Galaxy Note 3
                    - Galaxy Note 3 landscape
                    - Galaxy Note II
                    - Galaxy Note II landscape
                    - Galaxy S III
                    - Galaxy S III landscape
                    - Galaxy S5
                    - Galaxy S5 landscape
                    - Galaxy S8
                    - Galaxy S8 landscape
                    - Galaxy S9+
                    - Galaxy S9+ landscape
                    - Galaxy Tab S4
                    - Galaxy Tab S4 landscape
                    - iPad
                    - iPad landscape
                    - iPad (gen 6)
                    - iPad (gen 6) landscape
                    - iPad (gen 7)
                    - iPad (gen 7) landscape
                    - iPad Mini
                    - iPad Mini landscape
                    - iPad Pro
                    - iPad Pro landscape
                    - iPad Pro 11
                    - iPad Pro 11 landscape
                    - iPhone 4
                    - iPhone 4 landscape
                    - iPhone 5
                    - iPhone 5 landscape
                    - iPhone 6
                    - iPhone 6 landscape
                    - iPhone 6 Plus
                    - iPhone 6 Plus landscape
                    - iPhone 7
                    - iPhone 7 landscape
                    - iPhone 7 Plus
                    - iPhone 7 Plus landscape
                    - iPhone 8
                    - iPhone 8 landscape
                    - iPhone 8 Plus
                    - iPhone 8 Plus landscape
                    - iPhone SE
                    - iPhone SE landscape
                    - iPhone X
                    - iPhone X landscape
                    - iPhone XR
                    - iPhone XR landscape
                    - iPhone 11
                    - iPhone 11 landscape
                    - iPhone 11 Pro
                    - iPhone 11 Pro landscape
                    - iPhone 11 Pro Max
                    - iPhone 11 Pro Max landscape
                    - iPhone 12
                    - iPhone 12 landscape
                    - iPhone 12 Pro
                    - iPhone 12 Pro landscape
                    - iPhone 12 Pro Max
                    - iPhone 12 Pro Max landscape
                    - iPhone 12 Mini
                    - iPhone 12 Mini landscape
                    - iPhone 13
                    - iPhone 13 landscape
                    - iPhone 13 Pro
                    - iPhone 13 Pro landscape
                    - iPhone 13 Pro Max
                    - iPhone 13 Pro Max landscape
                    - iPhone 13 Mini
                    - iPhone 13 Mini landscape
                    - JioPhone 2
                    - JioPhone 2 landscape
                    - Kindle Fire HDX
                    - Kindle Fire HDX landscape
                    - LG Optimus L70
                    - LG Optimus L70 landscape
                    - Microsoft Lumia 550
                    - Microsoft Lumia 950
                    - Microsoft Lumia 950 landscape
                    - Nexus 10
                    - Nexus 10 landscape
                    - Nexus 4
                    - Nexus 4 landscape
                    - Nexus 5
                    - Nexus 5 landscape
                    - Nexus 5X
                    - Nexus 5X landscape
                    - Nexus 6
                    - Nexus 6 landscape
                    - Nexus 6P
                    - Nexus 6P landscape
                    - Nexus 7
                    - Nexus 7 landscape
                    - Nokia Lumia 520
                    - Nokia Lumia 520 landscape
                    - Nokia N9
                    - Nokia N9 landscape
                    - Pixel 2
                    - Pixel 2 landscape
                    - Pixel 2 XL
                    - Pixel 2 XL landscape
                    - Pixel 3
                    - Pixel 3 landscape
                    - Pixel 4
                    - Pixel 4 landscape
                    - Pixel 4a (5G)
                    - Pixel 4a (5G) landscape
                    - Pixel 5
                    - Pixel 5 landscape
                    - Moto G4
                    - Moto G4 landscape
                  default: iPhone X
                headers:
                  description: HTTP headers to set before loading page.
                  type: object
                wait:
                  description: Wait criteria before resolving page load.
                  anyOf:
                    - description: >-
                        winload - consider navigation to be finished when the
                        window load event is fired.

                        domload - consider navigation to be finished when the
                        DOMContentLoaded event is fired.

                        idle - consider navigation to be finished when there are
                        no more than 0 network connections for at least 500 ms.

                        net2 - consider navigation to be finished when there are
                        no more than 2 network connections for at least 500 ms.
                      type: string
                      enum:
                        - idle
                        - net2
                        - winload
                        - domload
                    - description: The number of milliseconds to wait for.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: Function to be evaluated in browser context.
                      type: string
                      pattern: /^([^{=]+|\(.*\)\s*)?=>/
                    - description: A selector of an element to wait for.
                      type: string
                      minLength: 1
                      maxLength: 1048576
                ready:
                  description: >-
                    winload - consider navigation to be finished when the window
                    load event is fired.

                    domload - consider navigation to be finished when the
                    DOMContentLoaded event is fired.

                    idle - consider navigation to be finished when there are no
                    more than 0 network connections for at least 500 ms.

                    net2 - consider navigation to be finished when there are no
                    more than 2 network connections for at least 500 ms.
                  type: string
                  enum:
                    - idle
                    - net2
                    - winload
                    - domload
                visible:
                  description: >-
                    Wait for element to be present in DOM and to be visible,
                    i.e. to not have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                hidden:
                  description: >-
                    Wait for element to not be found in the DOM or to be hidden,
                    i.e. have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                polling:
                  description: >-
                    An interval at which the wait function/()=> is executed,
                    defaults to raf. If polling is a number, then it is treated
                    as an interval in milliseconds at which the function would
                    be executed. If polling is a string, then it can be one of
                    the following values:

                    raf - to constantly execute function/()=>  in
                    requestAnimationFrame callback. This is the tightest polling
                    mode which is suitable to observe styling changes.

                    mutation - to execute function/()=> on every DOM mutation.
                  anyOf:
                    - description: Interval in milliseconds.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: >-
                        Polling interval based on requestAnimationFrame callback
                        (raf) DOM mutation (mutation)
                      type: string
                      enum:
                        - raf
                        - mutation
                proxy:
                  description: >-
                    The URI for a http, https, socks(v5), socks5, socks4, or pac
                    proxy.
                  type: string
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/selector:
    post:
      summary: Evaluate a CSS selector
      tags:
        - krull
      description: Evaluate a CSS selector expression for a given url.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
                - selector
              properties:
                url:
                  description: A URL for a webpage.
                  type: string
                  pattern: ^https?://
                selector:
                  description: CSS selector expression.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                screenshot:
                  description: >-
                    Take full page screenshot. NOTE: This can have performance
                    implications.
                  type: boolean
                  default: false
                session:
                  description: >-
                    Capture the browser cookie, localStorage and sessionStorage
                    object/values.
                      Decorates the return value(s) with localStorage, sessionStorage and cookieStorage.
                      NOTE: See cookieStorage, localStorage and sessionStorage for object serialization structure.
                  type: boolean
                  default: false
                type:
                  description: Specifies the image type.
                  type: string
                  enum:
                    - png
                    - jpeg
                    - webp
                  default: jpeg
                quality:
                  description: >-
                    The quality of the image. NOTE: Only applicable to jpg
                    images.
                  type: number
                  minimum: 1
                  maximum: 100
                  default: 100
                engine:
                  description: 'The selector engine to use. NOTE: dom uses querySelectorAll.'
                  type: string
                  enum:
                    - dom
                    - jquery
                expression:
                  description: >-
                    A JavaScript expression to evaluate, NOTE: Functions must be
                    in fat-arrow format.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                cookieStorage:
                  description: Cookie data to be set.
                  type: object
                  additionalProperties:
                    type: object
                    required:
                      - value
                      - domain
                    properties:
                      value:
                        type: string
                      domain:
                        type: string
                      path:
                        type: string
                      expires:
                        type:
                          - string
                          - number
                      size:
                        type: number
                      httpOnly:
                        type: boolean
                      secure:
                        type: boolean
                      session:
                        type: boolean
                sessionStorage:
                  description: sessionStorage data to be set.
                  type: object
                localStorage:
                  description: localStorage data to be set.
                  type: object
                jquery:
                  description: >-
                    Import jQuery library. Passed to expression function in last
                    argument (ie., (..args, { $ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                lodash:
                  description: >-
                    Import lodash library. Passed to expression function in last
                    argument (ie., (..args, { _ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                mathjs:
                  description: >-
                    Import mathjs library. Passed to expression function in last
                    argument (ie., (..args, { mathjs }) => {}). NOTE: When
                    imported into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                html:
                  description: >-
                    Extract innerHTML and outerHTML. NOTE: This can have
                    performance implications.
                  type: boolean
                  default: true
                hashtml:
                  description: >-
                    Extract innerHTML and outerHTML sha1 hash of respective
                    values. NOTE: This can have performance implications.
                  type: boolean
                  default: false
                dimension:
                  description: >-
                    Extract DOM position attributes. NOTE: This can have
                    performance implications due to repaints.
                  type: boolean
                  default: true
                args:
                  description: >-
                    Argument values to pass to an expression. Passed as leading
                    argument or middle arguments if data is passed back to
                    expression (ie., ([data], ...args, [options]) => {}).
                  type: array
                  maxItems: 100
                  items:
                    type:
                      - string
                      - number
                      - object
                      - array
                      - boolean
                      - 'null'
                retry:
                  description: >-
                    The number of times to retry a failed browser transaction.
                    NOTE: The total number of attempts is the sum of the first
                    request plus the retry number (ie., retry of 2 will result
                    in three attempts). Hey kid, three strikes you are out of
                    here!
                  type: number
                  minimum: 0
                  maximum: 2
                device:
                  description: The device to emulate.
                  type: string
                  enum:
                    - Desktop
                    - Blackberry PlayBook
                    - Blackberry PlayBook landscape
                    - BlackBerry Z30
                    - BlackBerry Z30 landscape
                    - Galaxy Note 3
                    - Galaxy Note 3 landscape
                    - Galaxy Note II
                    - Galaxy Note II landscape
                    - Galaxy S III
                    - Galaxy S III landscape
                    - Galaxy S5
                    - Galaxy S5 landscape
                    - Galaxy S8
                    - Galaxy S8 landscape
                    - Galaxy S9+
                    - Galaxy S9+ landscape
                    - Galaxy Tab S4
                    - Galaxy Tab S4 landscape
                    - iPad
                    - iPad landscape
                    - iPad (gen 6)
                    - iPad (gen 6) landscape
                    - iPad (gen 7)
                    - iPad (gen 7) landscape
                    - iPad Mini
                    - iPad Mini landscape
                    - iPad Pro
                    - iPad Pro landscape
                    - iPad Pro 11
                    - iPad Pro 11 landscape
                    - iPhone 4
                    - iPhone 4 landscape
                    - iPhone 5
                    - iPhone 5 landscape
                    - iPhone 6
                    - iPhone 6 landscape
                    - iPhone 6 Plus
                    - iPhone 6 Plus landscape
                    - iPhone 7
                    - iPhone 7 landscape
                    - iPhone 7 Plus
                    - iPhone 7 Plus landscape
                    - iPhone 8
                    - iPhone 8 landscape
                    - iPhone 8 Plus
                    - iPhone 8 Plus landscape
                    - iPhone SE
                    - iPhone SE landscape
                    - iPhone X
                    - iPhone X landscape
                    - iPhone XR
                    - iPhone XR landscape
                    - iPhone 11
                    - iPhone 11 landscape
                    - iPhone 11 Pro
                    - iPhone 11 Pro landscape
                    - iPhone 11 Pro Max
                    - iPhone 11 Pro Max landscape
                    - iPhone 12
                    - iPhone 12 landscape
                    - iPhone 12 Pro
                    - iPhone 12 Pro landscape
                    - iPhone 12 Pro Max
                    - iPhone 12 Pro Max landscape
                    - iPhone 12 Mini
                    - iPhone 12 Mini landscape
                    - iPhone 13
                    - iPhone 13 landscape
                    - iPhone 13 Pro
                    - iPhone 13 Pro landscape
                    - iPhone 13 Pro Max
                    - iPhone 13 Pro Max landscape
                    - iPhone 13 Mini
                    - iPhone 13 Mini landscape
                    - JioPhone 2
                    - JioPhone 2 landscape
                    - Kindle Fire HDX
                    - Kindle Fire HDX landscape
                    - LG Optimus L70
                    - LG Optimus L70 landscape
                    - Microsoft Lumia 550
                    - Microsoft Lumia 950
                    - Microsoft Lumia 950 landscape
                    - Nexus 10
                    - Nexus 10 landscape
                    - Nexus 4
                    - Nexus 4 landscape
                    - Nexus 5
                    - Nexus 5 landscape
                    - Nexus 5X
                    - Nexus 5X landscape
                    - Nexus 6
                    - Nexus 6 landscape
                    - Nexus 6P
                    - Nexus 6P landscape
                    - Nexus 7
                    - Nexus 7 landscape
                    - Nokia Lumia 520
                    - Nokia Lumia 520 landscape
                    - Nokia N9
                    - Nokia N9 landscape
                    - Pixel 2
                    - Pixel 2 landscape
                    - Pixel 2 XL
                    - Pixel 2 XL landscape
                    - Pixel 3
                    - Pixel 3 landscape
                    - Pixel 4
                    - Pixel 4 landscape
                    - Pixel 4a (5G)
                    - Pixel 4a (5G) landscape
                    - Pixel 5
                    - Pixel 5 landscape
                    - Moto G4
                    - Moto G4 landscape
                  default: iPhone X
                headers:
                  description: HTTP headers to set before loading page.
                  type: object
                wait:
                  description: Wait criteria before resolving page load.
                  anyOf:
                    - description: >-
                        winload - consider navigation to be finished when the
                        window load event is fired.

                        domload - consider navigation to be finished when the
                        DOMContentLoaded event is fired.

                        idle - consider navigation to be finished when there are
                        no more than 0 network connections for at least 500 ms.

                        net2 - consider navigation to be finished when there are
                        no more than 2 network connections for at least 500 ms.
                      type: string
                      enum:
                        - idle
                        - net2
                        - winload
                        - domload
                    - description: The number of milliseconds to wait for.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: Function to be evaluated in browser context.
                      type: string
                      pattern: /^([^{=]+|\(.*\)\s*)?=>/
                    - description: A selector of an element to wait for.
                      type: string
                      minLength: 1
                      maxLength: 1048576
                ready:
                  description: >-
                    winload - consider navigation to be finished when the window
                    load event is fired.

                    domload - consider navigation to be finished when the
                    DOMContentLoaded event is fired.

                    idle - consider navigation to be finished when there are no
                    more than 0 network connections for at least 500 ms.

                    net2 - consider navigation to be finished when there are no
                    more than 2 network connections for at least 500 ms.
                  type: string
                  enum:
                    - idle
                    - net2
                    - winload
                    - domload
                visible:
                  description: >-
                    Wait for element to be present in DOM and to be visible,
                    i.e. to not have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                hidden:
                  description: >-
                    Wait for element to not be found in the DOM or to be hidden,
                    i.e. have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                polling:
                  description: >-
                    An interval at which the wait function/()=> is executed,
                    defaults to raf. If polling is a number, then it is treated
                    as an interval in milliseconds at which the function would
                    be executed. If polling is a string, then it can be one of
                    the following values:

                    raf - to constantly execute function/()=>  in
                    requestAnimationFrame callback. This is the tightest polling
                    mode which is suitable to observe styling changes.

                    mutation - to execute function/()=> on every DOM mutation.
                  anyOf:
                    - description: Interval in milliseconds.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: >-
                        Polling interval based on requestAnimationFrame callback
                        (raf) DOM mutation (mutation)
                      type: string
                      enum:
                        - raf
                        - mutation
                proxy:
                  description: >-
                    The URI for a http, https, socks(v5), socks5, socks4, or pac
                    proxy.
                  type: string
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/navigate:
    post:
      summary: Navigate and capture a page session
      tags:
        - krull
      description: >-
        Capture Cookie, localStorage and sessionStorage from page navigate
        lifecyle (load page, do something, load new page).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
                - expression
              properties:
                url:
                  description: A URL for a webpage.
                  type: string
                  pattern: ^https?://
                expression:
                  description: >-
                    A JavaScript expression to evaluate, NOTE: Functions must be
                    in fat-arrow format.
                  type:
                    - string
                    - array
                  minLength: 1
                  maxLength: 1048576
                  maxItems: 100
                  items:
                    description: >-
                      A JavaScript expression to evaluate, NOTE: Functions must
                      be in fat-arrow format.
                    type: string
                    minLength: 1
                    maxLength: 1048576
                cookieStorage:
                  description: Cookie data to be set.
                  type: object
                  additionalProperties:
                    type: object
                    required:
                      - value
                      - domain
                    properties:
                      value:
                        type: string
                      domain:
                        type: string
                      path:
                        type: string
                      expires:
                        type:
                          - string
                          - number
                      size:
                        type: number
                      httpOnly:
                        type: boolean
                      secure:
                        type: boolean
                      session:
                        type: boolean
                sessionStorage:
                  description: sessionStorage data to be set.
                  type: object
                localStorage:
                  description: localStorage data to be set.
                  type: object
                jquery:
                  description: >-
                    Import jQuery library. Passed to expression function in last
                    argument (ie., (..args, { $ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                lodash:
                  description: >-
                    Import lodash library. Passed to expression function in last
                    argument (ie., (..args, { _ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                mathjs:
                  description: >-
                    Import mathjs library. Passed to expression function in last
                    argument (ie., (..args, { mathjs }) => {}). NOTE: When
                    imported into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                args:
                  description: >-
                    Argument values to pass to an expression. Passed as leading
                    argument or middle arguments if data is passed back to
                    expression (ie., ([data], ...args, [options]) => {}).
                  type: array
                  maxItems: 100
                  items:
                    type:
                      - string
                      - number
                      - object
                      - array
                      - boolean
                      - 'null'
                retry:
                  description: >-
                    The number of times to retry a failed browser transaction.
                    NOTE: The total number of attempts is the sum of the first
                    request plus the retry number (ie., retry of 2 will result
                    in three attempts). Hey kid, three strikes you are out of
                    here!
                  type: number
                  minimum: 0
                  maximum: 2
                device:
                  description: The device to emulate.
                  type: string
                  enum:
                    - Desktop
                    - Blackberry PlayBook
                    - Blackberry PlayBook landscape
                    - BlackBerry Z30
                    - BlackBerry Z30 landscape
                    - Galaxy Note 3
                    - Galaxy Note 3 landscape
                    - Galaxy Note II
                    - Galaxy Note II landscape
                    - Galaxy S III
                    - Galaxy S III landscape
                    - Galaxy S5
                    - Galaxy S5 landscape
                    - Galaxy S8
                    - Galaxy S8 landscape
                    - Galaxy S9+
                    - Galaxy S9+ landscape
                    - Galaxy Tab S4
                    - Galaxy Tab S4 landscape
                    - iPad
                    - iPad landscape
                    - iPad (gen 6)
                    - iPad (gen 6) landscape
                    - iPad (gen 7)
                    - iPad (gen 7) landscape
                    - iPad Mini
                    - iPad Mini landscape
                    - iPad Pro
                    - iPad Pro landscape
                    - iPad Pro 11
                    - iPad Pro 11 landscape
                    - iPhone 4
                    - iPhone 4 landscape
                    - iPhone 5
                    - iPhone 5 landscape
                    - iPhone 6
                    - iPhone 6 landscape
                    - iPhone 6 Plus
                    - iPhone 6 Plus landscape
                    - iPhone 7
                    - iPhone 7 landscape
                    - iPhone 7 Plus
                    - iPhone 7 Plus landscape
                    - iPhone 8
                    - iPhone 8 landscape
                    - iPhone 8 Plus
                    - iPhone 8 Plus landscape
                    - iPhone SE
                    - iPhone SE landscape
                    - iPhone X
                    - iPhone X landscape
                    - iPhone XR
                    - iPhone XR landscape
                    - iPhone 11
                    - iPhone 11 landscape
                    - iPhone 11 Pro
                    - iPhone 11 Pro landscape
                    - iPhone 11 Pro Max
                    - iPhone 11 Pro Max landscape
                    - iPhone 12
                    - iPhone 12 landscape
                    - iPhone 12 Pro
                    - iPhone 12 Pro landscape
                    - iPhone 12 Pro Max
                    - iPhone 12 Pro Max landscape
                    - iPhone 12 Mini
                    - iPhone 12 Mini landscape
                    - iPhone 13
                    - iPhone 13 landscape
                    - iPhone 13 Pro
                    - iPhone 13 Pro landscape
                    - iPhone 13 Pro Max
                    - iPhone 13 Pro Max landscape
                    - iPhone 13 Mini
                    - iPhone 13 Mini landscape
                    - JioPhone 2
                    - JioPhone 2 landscape
                    - Kindle Fire HDX
                    - Kindle Fire HDX landscape
                    - LG Optimus L70
                    - LG Optimus L70 landscape
                    - Microsoft Lumia 550
                    - Microsoft Lumia 950
                    - Microsoft Lumia 950 landscape
                    - Nexus 10
                    - Nexus 10 landscape
                    - Nexus 4
                    - Nexus 4 landscape
                    - Nexus 5
                    - Nexus 5 landscape
                    - Nexus 5X
                    - Nexus 5X landscape
                    - Nexus 6
                    - Nexus 6 landscape
                    - Nexus 6P
                    - Nexus 6P landscape
                    - Nexus 7
                    - Nexus 7 landscape
                    - Nokia Lumia 520
                    - Nokia Lumia 520 landscape
                    - Nokia N9
                    - Nokia N9 landscape
                    - Pixel 2
                    - Pixel 2 landscape
                    - Pixel 2 XL
                    - Pixel 2 XL landscape
                    - Pixel 3
                    - Pixel 3 landscape
                    - Pixel 4
                    - Pixel 4 landscape
                    - Pixel 4a (5G)
                    - Pixel 4a (5G) landscape
                    - Pixel 5
                    - Pixel 5 landscape
                    - Moto G4
                    - Moto G4 landscape
                  default: iPhone X
                headers:
                  description: HTTP headers to set before loading page.
                  type: object
                wait:
                  description: Wait criteria before resolving page load.
                  anyOf:
                    - description: >-
                        winload - consider navigation to be finished when the
                        window load event is fired.

                        domload - consider navigation to be finished when the
                        DOMContentLoaded event is fired.

                        idle - consider navigation to be finished when there are
                        no more than 0 network connections for at least 500 ms.

                        net2 - consider navigation to be finished when there are
                        no more than 2 network connections for at least 500 ms.
                      type: string
                      enum:
                        - idle
                        - net2
                        - winload
                        - domload
                    - description: The number of milliseconds to wait for.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: Function to be evaluated in browser context.
                      type: string
                      pattern: /^([^{=]+|\(.*\)\s*)?=>/
                    - description: A selector of an element to wait for.
                      type: string
                      minLength: 1
                      maxLength: 1048576
                ready:
                  description: >-
                    winload - consider navigation to be finished when the window
                    load event is fired.

                    domload - consider navigation to be finished when the
                    DOMContentLoaded event is fired.

                    idle - consider navigation to be finished when there are no
                    more than 0 network connections for at least 500 ms.

                    net2 - consider navigation to be finished when there are no
                    more than 2 network connections for at least 500 ms.
                  type: string
                  enum:
                    - idle
                    - net2
                    - winload
                    - domload
                visible:
                  description: >-
                    Wait for element to be present in DOM and to be visible,
                    i.e. to not have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                hidden:
                  description: >-
                    Wait for element to not be found in the DOM or to be hidden,
                    i.e. have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                polling:
                  description: >-
                    An interval at which the wait function/()=> is executed,
                    defaults to raf. If polling is a number, then it is treated
                    as an interval in milliseconds at which the function would
                    be executed. If polling is a string, then it can be one of
                    the following values:

                    raf - to constantly execute function/()=>  in
                    requestAnimationFrame callback. This is the tightest polling
                    mode which is suitable to observe styling changes.

                    mutation - to execute function/()=> on every DOM mutation.
                  anyOf:
                    - description: Interval in milliseconds.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: >-
                        Polling interval based on requestAnimationFrame callback
                        (raf) DOM mutation (mutation)
                      type: string
                      enum:
                        - raf
                        - mutation
                proxy:
                  description: >-
                    The URI for a http, https, socks(v5), socks5, socks4, or pac
                    proxy.
                  type: string
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/screenshot:
    post:
      summary: Capture a screenshot
      tags:
        - krull
      description: >-
        Capture a screenshot of the first matched element based on a specified
        css selector.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
              properties:
                url:
                  description: A URL for a webpage.
                  type: string
                  pattern: ^https?://
                selector:
                  description: CSS selector expression.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                type:
                  description: Specifies the image type.
                  type: string
                  enum:
                    - png
                    - jpeg
                    - webp
                  default: jpeg
                viewportWidth:
                  description: The rectangular area that is currently being viewed.
                  type: number
                  minimum: 1
                  maximum: 10000
                viewportHeight:
                  description: The rectangular area that is currently being viewed.
                  type: number
                  minimum: 1
                  maximum: 10000
                quality:
                  description: >-
                    The quality of the image. NOTE: Only applicable to jpg
                    images.
                  type: number
                  minimum: 1
                  maximum: 100
                  default: 100
                background:
                  description: >-
                    Set the body background css style during image
                    rasterization. For transparancy set value to `transparent`
                  type: string
                engine:
                  description: 'The selector engine to use. NOTE: dom uses querySelectorAll.'
                  type: string
                  enum:
                    - dom
                    - jquery
                expression:
                  description: >-
                    A JavaScript expression to evaluate, NOTE: Functions must be
                    in fat-arrow format.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                cookieStorage:
                  description: Cookie data to be set.
                  type: object
                  additionalProperties:
                    type: object
                    required:
                      - value
                      - domain
                    properties:
                      value:
                        type: string
                      domain:
                        type: string
                      path:
                        type: string
                      expires:
                        type:
                          - string
                          - number
                      size:
                        type: number
                      httpOnly:
                        type: boolean
                      secure:
                        type: boolean
                      session:
                        type: boolean
                sessionStorage:
                  description: sessionStorage data to be set.
                  type: object
                localStorage:
                  description: localStorage data to be set.
                  type: object
                session:
                  description: >-
                    Capture the browser cookie, localStorage and sessionStorage
                    object/values.
                      Decorates the return value(s) with localStorage, sessionStorage and cookieStorage.
                      NOTE: See cookieStorage, localStorage and sessionStorage for object serialization structure.
                  type: boolean
                  default: false
                jquery:
                  description: >-
                    Import jQuery library. Passed to expression function in last
                    argument (ie., (..args, { $ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                lodash:
                  description: >-
                    Import lodash library. Passed to expression function in last
                    argument (ie., (..args, { _ }) => {}). NOTE: When imported
                    into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                mathjs:
                  description: >-
                    Import mathjs library. Passed to expression function in last
                    argument (ie., (..args, { mathjs }) => {}). NOTE: When
                    imported into a page it is NOT in the global window scope.
                  type: boolean
                  default: false
                args:
                  description: >-
                    Argument values to pass to an expression. Passed as leading
                    argument or middle arguments if data is passed back to
                    expression (ie., ([data], ...args, [options]) => {}).
                  type: array
                  maxItems: 100
                  items:
                    type:
                      - string
                      - number
                      - object
                      - array
                      - boolean
                      - 'null'
                retry:
                  description: >-
                    The number of times to retry a failed browser transaction.
                    NOTE: The total number of attempts is the sum of the first
                    request plus the retry number (ie., retry of 2 will result
                    in three attempts). Hey kid, three strikes you are out of
                    here!
                  type: number
                  minimum: 0
                  maximum: 2
                device:
                  description: The device to emulate.
                  type: string
                  enum:
                    - Desktop
                    - Blackberry PlayBook
                    - Blackberry PlayBook landscape
                    - BlackBerry Z30
                    - BlackBerry Z30 landscape
                    - Galaxy Note 3
                    - Galaxy Note 3 landscape
                    - Galaxy Note II
                    - Galaxy Note II landscape
                    - Galaxy S III
                    - Galaxy S III landscape
                    - Galaxy S5
                    - Galaxy S5 landscape
                    - Galaxy S8
                    - Galaxy S8 landscape
                    - Galaxy S9+
                    - Galaxy S9+ landscape
                    - Galaxy Tab S4
                    - Galaxy Tab S4 landscape
                    - iPad
                    - iPad landscape
                    - iPad (gen 6)
                    - iPad (gen 6) landscape
                    - iPad (gen 7)
                    - iPad (gen 7) landscape
                    - iPad Mini
                    - iPad Mini landscape
                    - iPad Pro
                    - iPad Pro landscape
                    - iPad Pro 11
                    - iPad Pro 11 landscape
                    - iPhone 4
                    - iPhone 4 landscape
                    - iPhone 5
                    - iPhone 5 landscape
                    - iPhone 6
                    - iPhone 6 landscape
                    - iPhone 6 Plus
                    - iPhone 6 Plus landscape
                    - iPhone 7
                    - iPhone 7 landscape
                    - iPhone 7 Plus
                    - iPhone 7 Plus landscape
                    - iPhone 8
                    - iPhone 8 landscape
                    - iPhone 8 Plus
                    - iPhone 8 Plus landscape
                    - iPhone SE
                    - iPhone SE landscape
                    - iPhone X
                    - iPhone X landscape
                    - iPhone XR
                    - iPhone XR landscape
                    - iPhone 11
                    - iPhone 11 landscape
                    - iPhone 11 Pro
                    - iPhone 11 Pro landscape
                    - iPhone 11 Pro Max
                    - iPhone 11 Pro Max landscape
                    - iPhone 12
                    - iPhone 12 landscape
                    - iPhone 12 Pro
                    - iPhone 12 Pro landscape
                    - iPhone 12 Pro Max
                    - iPhone 12 Pro Max landscape
                    - iPhone 12 Mini
                    - iPhone 12 Mini landscape
                    - iPhone 13
                    - iPhone 13 landscape
                    - iPhone 13 Pro
                    - iPhone 13 Pro landscape
                    - iPhone 13 Pro Max
                    - iPhone 13 Pro Max landscape
                    - iPhone 13 Mini
                    - iPhone 13 Mini landscape
                    - JioPhone 2
                    - JioPhone 2 landscape
                    - Kindle Fire HDX
                    - Kindle Fire HDX landscape
                    - LG Optimus L70
                    - LG Optimus L70 landscape
                    - Microsoft Lumia 550
                    - Microsoft Lumia 950
                    - Microsoft Lumia 950 landscape
                    - Nexus 10
                    - Nexus 10 landscape
                    - Nexus 4
                    - Nexus 4 landscape
                    - Nexus 5
                    - Nexus 5 landscape
                    - Nexus 5X
                    - Nexus 5X landscape
                    - Nexus 6
                    - Nexus 6 landscape
                    - Nexus 6P
                    - Nexus 6P landscape
                    - Nexus 7
                    - Nexus 7 landscape
                    - Nokia Lumia 520
                    - Nokia Lumia 520 landscape
                    - Nokia N9
                    - Nokia N9 landscape
                    - Pixel 2
                    - Pixel 2 landscape
                    - Pixel 2 XL
                    - Pixel 2 XL landscape
                    - Pixel 3
                    - Pixel 3 landscape
                    - Pixel 4
                    - Pixel 4 landscape
                    - Pixel 4a (5G)
                    - Pixel 4a (5G) landscape
                    - Pixel 5
                    - Pixel 5 landscape
                    - Moto G4
                    - Moto G4 landscape
                  default: iPhone X
                headers:
                  description: HTTP headers to set before loading page.
                  type: object
                wait:
                  description: Wait criteria before resolving page load.
                  anyOf:
                    - description: >-
                        winload - consider navigation to be finished when the
                        window load event is fired.

                        domload - consider navigation to be finished when the
                        DOMContentLoaded event is fired.

                        idle - consider navigation to be finished when there are
                        no more than 0 network connections for at least 500 ms.

                        net2 - consider navigation to be finished when there are
                        no more than 2 network connections for at least 500 ms.
                      type: string
                      enum:
                        - idle
                        - net2
                        - winload
                        - domload
                    - description: The number of milliseconds to wait for.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: Function to be evaluated in browser context.
                      type: string
                      pattern: /^([^{=]+|\(.*\)\s*)?=>/
                    - description: A selector of an element to wait for.
                      type: string
                      minLength: 1
                      maxLength: 1048576
                ready:
                  description: >-
                    winload - consider navigation to be finished when the window
                    load event is fired.

                    domload - consider navigation to be finished when the
                    DOMContentLoaded event is fired.

                    idle - consider navigation to be finished when there are no
                    more than 0 network connections for at least 500 ms.

                    net2 - consider navigation to be finished when there are no
                    more than 2 network connections for at least 500 ms.
                  type: string
                  enum:
                    - idle
                    - net2
                    - winload
                    - domload
                visible:
                  description: >-
                    Wait for element to be present in DOM and to be visible,
                    i.e. to not have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                hidden:
                  description: >-
                    Wait for element to not be found in the DOM or to be hidden,
                    i.e. have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                polling:
                  description: >-
                    An interval at which the wait function/()=> is executed,
                    defaults to raf. If polling is a number, then it is treated
                    as an interval in milliseconds at which the function would
                    be executed. If polling is a string, then it can be one of
                    the following values:

                    raf - to constantly execute function/()=>  in
                    requestAnimationFrame callback. This is the tightest polling
                    mode which is suitable to observe styling changes.

                    mutation - to execute function/()=> on every DOM mutation.
                  anyOf:
                    - description: Interval in milliseconds.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: >-
                        Polling interval based on requestAnimationFrame callback
                        (raf) DOM mutation (mutation)
                      type: string
                      enum:
                        - raf
                        - mutation
                proxy:
                  description: >-
                    The URI for a http, https, socks(v5), socks5, socks4, or pac
                    proxy.
                  type: string
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/form:
    post:
      summary: Populate and submit a form
      tags:
        - krull
      description: >-
        Populate a form based on selector/value pairs and invoke a click submit
        button based on a selector and capture cookieStorage, localStorage, and
        sessionStorage.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - url
                - selectorValuePairs
                - submitSelector
              properties:
                url:
                  description: A URL for a webpage.
                  type: string
                  pattern: ^https?://
                selectorValuePairs:
                  description: An array of css selector/value pairs for input elements
                  type: array
                  items:
                    type: array
                    items:
                      - description: CSS selector expression.
                        type: string
                        minLength: 1
                        maxLength: 1048576
                      - type: string
                    minItems: 2
                    maxItems: 2
                    additionalItems: false
                  minItems: 1
                submitSelector:
                  description: CSS selector expression.
                  type: string
                  minLength: 1
                  maxLength: 1048576
                wait:
                  description: Wait criteria before resolving page load.
                  anyOf:
                    - description: >-
                        winload - consider navigation to be finished when the
                        window load event is fired.

                        domload - consider navigation to be finished when the
                        DOMContentLoaded event is fired.

                        idle - consider navigation to be finished when there are
                        no more than 0 network connections for at least 500 ms.

                        net2 - consider navigation to be finished when there are
                        no more than 2 network connections for at least 500 ms.
                      type: string
                      enum:
                        - idle
                        - net2
                        - winload
                        - domload
                    - description: The number of milliseconds to wait for.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: Function to be evaluated in browser context.
                      type: string
                      pattern: /^([^{=]+|\(.*\)\s*)?=>/
                    - description: A selector of an element to wait for.
                      type: string
                      minLength: 1
                      maxLength: 1048576
                ready:
                  description: >-
                    winload - consider navigation to be finished when the window
                    load event is fired.

                    domload - consider navigation to be finished when the
                    DOMContentLoaded event is fired.

                    idle - consider navigation to be finished when there are no
                    more than 0 network connections for at least 500 ms.

                    net2 - consider navigation to be finished when there are no
                    more than 2 network connections for at least 500 ms.
                  type: string
                  enum:
                    - idle
                    - net2
                    - winload
                    - domload
                visible:
                  description: >-
                    Wait for element to be present in DOM and to be visible,
                    i.e. to not have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                hidden:
                  description: >-
                    Wait for element to not be found in the DOM or to be hidden,
                    i.e. have display: none or visibility: hidden CSS
                    properties. Defaults to false.
                  type: boolean
                polling:
                  description: >-
                    An interval at which the wait function/()=> is executed,
                    defaults to raf. If polling is a number, then it is treated
                    as an interval in milliseconds at which the function would
                    be executed. If polling is a string, then it can be one of
                    the following values:

                    raf - to constantly execute function/()=>  in
                    requestAnimationFrame callback. This is the tightest polling
                    mode which is suitable to observe styling changes.

                    mutation - to execute function/()=> on every DOM mutation.
                  anyOf:
                    - description: Interval in milliseconds.
                      type: integer
                      minimum: 0
                      maximum: 30000
                    - description: >-
                        Polling interval based on requestAnimationFrame callback
                        (raf) DOM mutation (mutation)
                      type: string
                      enum:
                        - raf
                        - mutation
                proxy:
                  description: >-
                    The URI for a http, https, socks(v5), socks5, socks4, or pac
                    proxy.
                  type: string
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/image.{type}:
    get:
      summary: Capture a screenshot from a selector
      tags:
        - krull
      description: >-
        Capture an image binary stream of the first matched element based on a
        specified css selector.
      parameters:
        - schema:
            type: string
            pattern: ^https?://
          in: query
          name: url
          required: true
          description: A URL for a webpage.
        - schema:
            type: string
            minLength: 1
            maxLength: 1048576
          in: query
          name: selector
          required: false
          description: CSS selector expression.
        - schema:
            type: number
            minimum: 1
            maximum: 10000
          in: query
          name: viewportWidth
          required: false
          description: The rectangular area that is currently being viewed.
        - schema:
            type: number
            minimum: 1
            maximum: 10000
          in: query
          name: viewportHeight
          required: false
          description: The rectangular area that is currently being viewed.
        - schema:
            type: number
            minimum: 1
            maximum: 100
            default: 100
          in: query
          name: quality
          required: false
          description: 'The quality of the image. NOTE: Only applicable to jpg images.'
        - schema:
            type: string
          in: query
          name: background
          required: false
          description: >-
            Set the body background css style during image rasterization. For
            transparancy set value to `transparent`
        - schema:
            type: string
            enum:
              - dom
              - jquery
          in: query
          name: engine
          required: false
          description: 'The selector engine to use. NOTE: dom uses querySelectorAll.'
        - schema:
            type: string
            enum:
              - Desktop
              - Blackberry PlayBook
              - Blackberry PlayBook landscape
              - BlackBerry Z30
              - BlackBerry Z30 landscape
              - Galaxy Note 3
              - Galaxy Note 3 landscape
              - Galaxy Note II
              - Galaxy Note II landscape
              - Galaxy S III
              - Galaxy S III landscape
              - Galaxy S5
              - Galaxy S5 landscape
              - Galaxy S8
              - Galaxy S8 landscape
              - Galaxy S9+
              - Galaxy S9+ landscape
              - Galaxy Tab S4
              - Galaxy Tab S4 landscape
              - iPad
              - iPad landscape
              - iPad (gen 6)
              - iPad (gen 6) landscape
              - iPad (gen 7)
              - iPad (gen 7) landscape
              - iPad Mini
              - iPad Mini landscape
              - iPad Pro
              - iPad Pro landscape
              - iPad Pro 11
              - iPad Pro 11 landscape
              - iPhone 4
              - iPhone 4 landscape
              - iPhone 5
              - iPhone 5 landscape
              - iPhone 6
              - iPhone 6 landscape
              - iPhone 6 Plus
              - iPhone 6 Plus landscape
              - iPhone 7
              - iPhone 7 landscape
              - iPhone 7 Plus
              - iPhone 7 Plus landscape
              - iPhone 8
              - iPhone 8 landscape
              - iPhone 8 Plus
              - iPhone 8 Plus landscape
              - iPhone SE
              - iPhone SE landscape
              - iPhone X
              - iPhone X landscape
              - iPhone XR
              - iPhone XR landscape
              - iPhone 11
              - iPhone 11 landscape
              - iPhone 11 Pro
              - iPhone 11 Pro landscape
              - iPhone 11 Pro Max
              - iPhone 11 Pro Max landscape
              - iPhone 12
              - iPhone 12 landscape
              - iPhone 12 Pro
              - iPhone 12 Pro landscape
              - iPhone 12 Pro Max
              - iPhone 12 Pro Max landscape
              - iPhone 12 Mini
              - iPhone 12 Mini landscape
              - iPhone 13
              - iPhone 13 landscape
              - iPhone 13 Pro
              - iPhone 13 Pro landscape
              - iPhone 13 Pro Max
              - iPhone 13 Pro Max landscape
              - iPhone 13 Mini
              - iPhone 13 Mini landscape
              - JioPhone 2
              - JioPhone 2 landscape
              - Kindle Fire HDX
              - Kindle Fire HDX landscape
              - LG Optimus L70
              - LG Optimus L70 landscape
              - Microsoft Lumia 550
              - Microsoft Lumia 950
              - Microsoft Lumia 950 landscape
              - Nexus 10
              - Nexus 10 landscape
              - Nexus 4
              - Nexus 4 landscape
              - Nexus 5
              - Nexus 5 landscape
              - Nexus 5X
              - Nexus 5X landscape
              - Nexus 6
              - Nexus 6 landscape
              - Nexus 6P
              - Nexus 6P landscape
              - Nexus 7
              - Nexus 7 landscape
              - Nokia Lumia 520
              - Nokia Lumia 520 landscape
              - Nokia N9
              - Nokia N9 landscape
              - Pixel 2
              - Pixel 2 landscape
              - Pixel 2 XL
              - Pixel 2 XL landscape
              - Pixel 3
              - Pixel 3 landscape
              - Pixel 4
              - Pixel 4 landscape
              - Pixel 4a (5G)
              - Pixel 4a (5G) landscape
              - Pixel 5
              - Pixel 5 landscape
              - Moto G4
              - Moto G4 landscape
            default: iPhone X
          in: query
          name: device
          required: false
          description: The device to emulate.
      responses:
        '200':
          description: Default Response
  /v1/krull/static/{wildcard}:
    get:
      responses:
        '200':
          description: Default Response
  /v1/jobs/restart:
    post:
      responses:
        '200':
          description: Default Response
  /v1/jobs/env:
    get:
      responses:
        '200':
          description: Default Response
  /v1/jobs/ping:
    get:
      operationId: ping
      summary: Ping service
      tags:
        - jobs
      description: Ping service.
      responses:
        '200':
          description: Default Response
  /v1/jobs/top:
    get:
      responses:
        '200':
          description: Default Response
  /v1/jobs/queue/{type}/{id}/ack:
    put:
      responses:
        '200':
          description: Default Response
  /v1/jobs/{type}:
    get:
      responses:
        '200':
          description: Default Response
    post:
      responses:
        '200':
          description: Default Response
  /v1/jobs/workers/{type}:
    get:
      responses:
        '200':
          description: Default Response
  /v1/jobs/workers/{type}/{id}:
    delete:
      responses:
        '200':
          description: Default Response
  /v1/gonogo/env:
    get:
      operationId: env
      summary: Retrieve environment variables
      tags:
        - gonogo
      description: Returns service environment variables.
      responses:
        '200':
          description: Default Response
  /v1/gonogo/restart:
    post:
      operationId: restart
      summary: Restart service
      tags:
        - gonogo
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/gonogo/policies/enforce/{domain}/{id}:
    post:
      operationId: post-enforce-domain-policy
      summary: Enforce a domain policy
      tags:
        - gonogo
      description: Checks if a domain can be accessed.
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: domain
          required: true
          description: The policy domain reference.
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/gonogo/policies/check/{domain}:
    post:
      operationId: post-check-domain-policy
      summary: Check a domain policy
      tags:
        - gonogo
      description: >-
        Checks if a domain can be accessed based on the domain and a domain
        dispatches history.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                domainDispatches:
                  type: array
                  default: []
              required:
                - domainDispatches
        required: true
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 1000
          in: path
          name: domain
          required: true
          description: The policy domain reference.
      responses:
        '200':
          description: Default Response
  /v1/gonogo/policies:
    get:
      operationId: get-domain-policies
      summary: Retrieve all domain policies
      tags:
        - gonogo
      description: Returns all domain policies.
      responses:
        '200':
          description: Default Response
    post:
      operationId: post-domain-policies
      summary: Create a domain policy
      tags:
        - gonogo
      description: Creates a new domain policy.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The policy name/label reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                domain:
                  description: The policy domain reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                policy:
                  description: >-
                    Policy for number of dispatches allowed to this domain (per
                    second, per ten seconds, and per minute)
                  type: object
                  properties:
                    perSecond:
                      type: integer
                      minimum: 0
                      maximum: 100
                    perTenSeconds:
                      type: integer
                      minimum: 0
                      maximum: 1000
                    perMinute:
                      type: integer
                      minimum: 0
                      maximum: 6000
                  required:
                    - perSecond
                    - perTenSeconds
                    - perMinute
              required:
                - name
                - domain
                - policy
        required: true
      responses:
        '200':
          description: Default Response
  /v1/gonogo/policies/{id}:
    get:
      operationId: get-domain-policy
      summary: Retrieve a domain policy
      tags:
        - gonogo
      description: Retrieves the provided domain policy.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
    put:
      operationId: put-domain-policy
      summary: Update a domain policy
      tags:
        - gonogo
      description: Updates the provided domain policy.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The policy name/label reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                domain:
                  description: The policy domain reference.
                  type: string
                  minLength: 1
                  maxLength: 1000
                policy:
                  description: >-
                    Policy for number of dispatches allowed to this domain (per
                    second, per ten seconds, and per minute)
                  type: object
                  properties:
                    perSecond:
                      type: integer
                      minimum: 0
                      maximum: 100
                    perTenSeconds:
                      type: integer
                      minimum: 0
                      maximum: 1000
                    perMinute:
                      type: integer
                      minimum: 0
                      maximum: 6000
                  required:
                    - perSecond
                    - perTenSeconds
                    - perMinute
              required:
                - name
                - domain
                - policy
        required: true
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
    delete:
      operationId: delete-domain-policy
      summary: Delete a domain policy
      tags:
        - gonogo
      description: Deletes the provided domain policy.
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: The unique identifier for my object. (A UUID specified by RFC4122).
      responses:
        '200':
          description: Default Response
  /v1/almanac/env:
    get:
      summary: Retrieve environment variables
      tags:
        - almanac
      description: Returns instance environment variables.
      responses:
        '200':
          description: Default Response
  /v1/almanac/ping:
    get:
      summary: Ping service
      tags:
        - almanac
      description: Pings service.
      responses:
        '200':
          description: Default Response
  /v1/almanac/restart:
    post:
      operationId: restart
      summary: Restart service
      tags:
        - almanac
      description: Restarts the service.
      responses:
        '200':
          description: Default Response
  /v1/almanac:
    get:
      summary: Retrieve all scheduled queries
      tags:
        - almanac
      description: Lists scheduled queries.
      responses:
        '200':
          description: Default Response
    post:
      summary: Create a scheduled query
      tags: &ref_1
        - almanac
      description: Creates a new scheduled query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                sirpURL:
                  type: string
                query:
                  type: string
                  minLength: 1
                ttl:
                  type: integer
                  minimum: 0
                metadata:
                  type: object
                summary:
                  type: boolean
                cleanup:
                  type: boolean
                queryId:
                  type: string
                minutes:
                  type: integer
                  minimum: 0
                  maximum: 525600
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
  /v1/almanac/{id}:
    get:
      summary: Retrieve a scheduled query
      tags:
        - almanac
      description: Gets the scheduled query with the provided id.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
    put:
      summary: Create a scheduled query
      tags: *ref_1
      description: Creates a new scheduled query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                sirpURL:
                  type: string
                query:
                  type: string
                  minLength: 1
                ttl:
                  type: integer
                  minimum: 0
                metadata:
                  type: object
                summary:
                  type: boolean
                cleanup:
                  type: boolean
                queryId:
                  type: string
                minutes:
                  type: integer
                  minimum: 0
                  maximum: 525600
              required:
                - query
        required: true
      responses:
        '200':
          description: Default Response
    delete:
      summary: Delete a scheduled query
      tags:
        - almanac
      description: Deletes the scheduled query with the provided id.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/almanac/{id}/disable:
    post:
      summary: Disable a scheduled query
      tags:
        - almanac
      description: Disables the scheduled query with the provided id.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/almanac/{id}/enable:
    post:
      summary: Enable a scheduled query
      tags:
        - almanac
      description: Enables the scheduled query with the provided id.
      parameters:
        - schema:
            type: string
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
  /v1/gonogo/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/gonogo/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/gonogo/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/gonogo/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/gonogo/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/gonogo/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
  /v1/krull/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/krull/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/krull/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/krull/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/krull/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/krull/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
  /v1/screenshot/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/screenshot/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/screenshot/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/screenshot/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/screenshot/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/screenshot/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
  /v1/secrets/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/secrets/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/secrets/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/secrets/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/secrets/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/secrets/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
  /v1/workers/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/workers/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/workers/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/workers/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/workers/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/workers/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
  /v1/licorice/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/licorice/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/licorice/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/licorice/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/licorice/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/licorice/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
  /v1/sirp/ping:
    get:
      operationId: ping
      description: Returns a response if service exists and is running.
      responses:
        '200':
          description: Default Response
  /v1/sirp/resources.md:
    get:
      operationId: resources-md
      description: >-
        All available REST endpoints and related JSON schemas in markdown
        format.
      responses:
        '200':
          description: Default Response
  /v1/sirp/resources:
    get:
      operationId: resources
      description: All available REST endpoints and related JSON schemas.
      responses:
        '200':
          description: Default Response
  /v1/sirp/auth/token:
    post:
      operationId: auth-token
      description: Access auth token
      responses:
        '200':
          description: Default Response
  /v1/sirp/auth/token/verify:
    post:
      operationId: auth-token-verify
      description: Verify auth token
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
              required:
                - token
        required: true
      responses:
        '200':
          description: Default Response
  /v1/sirp/auth/protected:
    get:
      operationId: auth-protected
      description: Protected by auth token
      responses:
        '200':
          description: Default Response
servers:
  - url: http://localhost:1968
tags:
  - name: sirp
    description: Query processor and support
    x-displayName: Query Processor (sirp)
  - name: sirp-internal
    description: Query processor and support
    x-displayName: Query Processor Internals (sirp)
  - name: sirp-scheduled
    description: Scheduled query management
    x-displayName: Scheduled Query Manager (sirp)
  - name: sirp-templates
    description: Query template management
    x-displayName: Query Template Manager (sirp)
  - name: cellar
    description: Manages files in the cellar
    x-displayName: Cellar File Manager (sirp)
  - name: krull
    description: Browser cluster management and browser job execution
    x-displayName: Browser Interaction (krull)
  - name: almanac
    description: General purpose scheduler
    x-displayName: Scheduler (almanac)
  - name: gonogo
    description: Domain policy management and enforcement
    x-displayName: Domain Policy Manager (gonogo)
  - name: jobs
    description: Jobs management and queue
    x-displayName: Job Queue (jobs)
  - name: licorice
    description: License management and enforcement
    x-displayName: License Manager (licorice)
  - name: mentos
    description: Manages the export of results to configured stores
    x-displayName: Results Export (mentos)
  - name: secrets
    description: General purpose secrets management
    x-displayName: Secrets Manager (secrets)
  - name: api_keys
    description: API keys management
    x-displayName: API Keys Manager (secrets)
  - name: checkpoints
    description: Checkpoints management
    x-displayName: Checkpoints Manager (secrets)
  - name: credentials
    description: Credentials management
    x-displayName: Credentials Manager (secrets)
  - name: prompts
    description: Prompts management
    x-displayName: Prompts Manager (secrets)
  - name: stores
    description: Stores management
    x-displayName: Stores Manager (secrets)
  - name: users
    description: Users management
    x-displayName: Users Manager (secrets)
  - name: screenshot
    description: Screenshot management
    x-displayName: Screenshots Manager (screenshot)
  - name: workers
    description: Worker management and execution
    x-displayName: Workers Manager (workers)
x-tagGroups:
  - name: Query Lifecycle
    tags:
      - sirp
  - name: Browser Cluster
    tags:
      - krull
      - screenshot
  - name: Resources
    tags:
      - gonogo
      - cellar
      - sirp-scheduled
      - sirp-templates
      - api_keys
      - checkpoints
      - credentials
      - prompts
      - stores
      - users
  - name: Internals
    tags:
      - jobs
      - almanac
      - workers
      - licorice
      - secrets
      - mentos
      - sirp-internal
