---
swagger: "2.0"
info:
  description: "The Syndesis REST API connects to back-end services on the Syndesis\
    \ and provides a single\n                entry\n                point for the\
    \ Syndesis UI. For console developement it can run in off-line mode where it only\n\
    \                serves\n                responses from the response cache."
  version: "v1"
  title: "Syndesis API"
  contact:
    name: "The Syndesis Community"
    url: "https://syndesis.io/"
    email: "syndesis@googlegroups.com"
  license:
    name: "Apache 2.0"
    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "localhost:8080"
basePath: "/api/v1"
tags:
- name: "connections"
- name: "actions"
- name: "connectorgroups"
- name: "connectors"
- name: "credentials"
- name: "connector"
- name: "connector-icon"
- name: "custom-connector"
- name: "connector-template"
- name: "integrations"
- name: "integration-support"
- name: "permissions"
- name: "roles"
- name: "users"
schemes:
- "http"
- "https"
paths:
  /connections/{id}:
    get:
      tags:
      - "connections"
      operationId: "get_1"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/Connection"
          headers: {}
    put:
      tags:
      - "connections"
      operationId: "update"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Connection"
      responses:
        default:
          description: "successful operation"
    delete:
      tags:
      - "connections"
      operationId: "delete"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /connections:
    get:
      tags:
      - "connections"
      operationId: "list"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultWithIdObject"
          headers: {}
    post:
      tags:
      - "connections"
      operationId: "create"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Connection"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/Connection"
          headers: {}
  /connections/{id}/actions/{id}:
    post:
      tags:
      - "actions"
      - "connections"
      summary: "Retrieves enriched action definition, that is an action definition\
        \ that has input/output data shapes and property enums defined with respect\
        \ to the given action properties"
      description: ""
      operationId: "enrichWithMetadata"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
        x-example: "io.syndesis:salesforce-create-or-update:latest"
      - in: "body"
        name: "body"
        required: false
        schema:
          type: "object"
          additionalProperties:
            type: "string"
      - name: "id"
        in: "path"
        required: true
        type: "string"
        x-example: "my-connection"
      responses:
        200:
          description: "A map of zero or more action property suggestions keyed by\
            \ the property name"
          schema:
            $ref: "#/definitions/ConnectorDescriptor"
  /connections/validation:
    post:
      tags:
      - "connections"
      operationId: "validate"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Connection"
      responses:
        204:
          description: "All validations pass"
        400:
          description: "Found violations in validation"
          schema:
            type: "array"
            uniqueItems: true
            items:
              $ref: "#/definitions/Violation"
  /connectorgroups:
    get:
      tags:
      - "connectorgroups"
      operationId: "list_1"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultWithIdObject"
          headers: {}
  /connectorgroups/{id}:
    get:
      tags:
      - "connectorgroups"
      operationId: "get"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/WithIdObject"
          headers: {}
  /connectors/{id}:
    get:
      tags:
      - "connectors"
      operationId: "get_3"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/Connector"
          headers: {}
    put:
      tags:
      - "connectors"
      operationId: "update_1"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Connector"
      responses:
        default:
          description: "successful operation"
    delete:
      tags:
      - "connectors"
      operationId: "delete_1"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /connectors/{id}/actions/{id}:
    get:
      tags:
      - "actions"
      - "connectors"
      operationId: "get_4"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ConnectorAction"
          headers: {}
  /connectors/{id}/actions:
    get:
      tags:
      - "actions"
      - "connectors"
      operationId: "list_2"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultConnectorAction"
          headers: {}
  /connectors:
    get:
      tags:
      - "connectors"
      operationId: "list_3"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultConnector"
          headers: {}
  /connectors/{id}/credentials:
    get:
      tags:
      - "credentials"
      - "connectors"
      operationId: "get"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/AcquisitionMethod"
          headers: {}
    post:
      tags:
      - "credentials"
      - "connectors"
      operationId: "create"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/AcquisitionRequest"
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /connectors/{connectorId}/actions/{actionId}/filters/options:
    get:
      tags:
      - "connectors"
      operationId: "getFilterOptions"
      produces:
      - "application/json"
      parameters:
      - name: "connectorId"
        in: "path"
        required: true
        type: "string"
      - name: "actionId"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/FilterOptions"
          headers: {}
  /connectors/{id}/icon:
    get:
      tags:
      - "connector"
      - "connector-icon"
      - "connectors"
      operationId: "get"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
    post:
      tags:
      - "connector"
      - "connector-icon"
      - "connectors"
      summary: "Updates the connector icon for the specified connector and returns\
        \ the updated connector"
      description: ""
      operationId: "create"
      consumes:
      - "multipart/form-data"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/MultipartFormDataInput"
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Updated Connector icon"
          schema:
            $ref: "#/definitions/Connector"
  /connectors/custom:
    post:
      tags:
      - "custom-connector"
      - "connector-template"
      - "connectors"
      summary: "Creates a new Connector based on the ConnectorTemplate identified\
        \ by the provided `id`  and the data given in `connectorSettings`"
      description: ""
      operationId: "create"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/ConnectorSettings"
      responses:
        200:
          description: "Newly created Connector"
          schema:
            $ref: "#/definitions/Connector"
  /connectors/custom/info:
    post:
      tags:
      - "custom-connector"
      - "connector-template"
      - "connectors"
      summary: "Provides a summary of the connector as it would be built using a ConnectorTemplate\
        \ identified by the provided `connector-template-id` and the data given in\
        \ `connectorSettings`"
      description: ""
      operationId: "info"
      consumes:
      - "multipart/form-data"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/CustomConnectorFormData"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ConnectorSummary"
  /connectors/{id}/verifier:
    post:
      tags:
      - "connectors"
      operationId: "verifyConnectionParameters"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          type: "object"
          additionalProperties:
            type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Result"
          headers: {}
  /connector-templates/{id}:
    get:
      tags:
      - "connector-template"
      operationId: "get_5"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ConnectorTemplate"
          headers: {}
  /connector-templates:
    get:
      tags:
      - "connector-template"
      operationId: "list_4"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultConnectorTemplate"
          headers: {}
  /integrations/{id}:
    get:
      tags:
      - "integrations"
      operationId: "get_6"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/Integration"
          headers: {}
    put:
      tags:
      - "integrations"
      operationId: "update_2"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Integration"
      responses:
        default:
          description: "successful operation"
    delete:
      tags:
      - "integrations"
      operationId: "delete_2"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /integrations:
    get:
      tags:
      - "integrations"
      operationId: "list_5"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultIntegration"
          headers: {}
    post:
      tags:
      - "integrations"
      operationId: "create_1"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Integration"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/Integration"
          headers: {}
  /integrations/filters/options:
    get:
      tags:
      - "integrations"
      operationId: "getGlobalFilterOptions"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/FilterOptions"
          headers: {}
    post:
      tags:
      - "integrations"
      operationId: "getFilterOptions"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/DataShape"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/FilterOptions"
          headers: {}
  /integrations/{id}/export.zip:
    get:
      tags:
      - "integrations"
      operationId: "export"
      produces:
      - "application/octet-stream"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/StreamingOutput"
          headers: {}
  /integrations/validation:
    post:
      tags:
      - "integrations"
      operationId: "validate_1"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Integration"
      responses:
        204:
          description: "All validations pass"
        400:
          description: "Found violations in validation"
          schema:
            type: "array"
            uniqueItems: true
            items:
              $ref: "#/definitions/Violation"
  /integration-support/generate/pom.xml:
    post:
      tags:
      - "integration-support"
      operationId: "projectPom"
      consumes:
      - "application/json"
      produces:
      - "application/octet-stream"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/Integration"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "array"
            items:
              type: "string"
              format: "byte"
          headers: {}
  /integration-support/import:
    post:
      tags:
      - "integration-support"
      operationId: "importIntegration"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/InputStream"
      responses:
        default:
          description: "successful operation"
  /permissions:
    get:
      tags:
      - "permissions"
      operationId: "list_6"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultWithIdObject"
          headers: {}
  /permissions/{id}:
    get:
      tags:
      - "permissions"
      operationId: "get_2"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/WithIdObject"
          headers: {}
  /roles:
    get:
      tags:
      - "roles"
      operationId: "list_7"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultWithIdObject"
          headers: {}
  /roles/{id}:
    get:
      tags:
      - "roles"
      operationId: "get_7"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/WithIdObject"
          headers: {}
  /users/~:
    get:
      tags:
      - "users"
      operationId: "whoAmI"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/User"
          headers: {}
  /users:
    get:
      tags:
      - "users"
      operationId: "list_8"
      produces:
      - "application/json"
      parameters:
      - name: "sort"
        in: "query"
        description: "Sort the result list according to the given field value"
        required: false
        type: "string"
      - name: "direction"
        in: "query"
        description: "Sorting direction when a 'sort' field is provided. Can be 'asc'\
          \ (ascending) or 'desc' (descending)"
        required: false
        type: "string"
      - name: "page"
        in: "query"
        description: "Page number to return"
        required: false
        type: "integer"
        default: 1
      - name: "per_page"
        in: "query"
        description: "Number of records per page"
        required: false
        type: "integer"
        default: 20
      - name: "query"
        in: "query"
        description: "The search query to filter results on"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultWithIdObject"
          headers: {}
  /users/{id}:
    get:
      tags:
      - "users"
      operationId: "get_8"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/WithIdObject"
          headers: {}
definitions:
  Action:
    type: "object"
    required:
    - "name"
    discriminator: "actionType"
    properties:
      name:
        type: "string"
      description:
        type: "string"
      descriptor:
        $ref: "#/definitions/ActionDescriptor"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      actionType:
        type: "string"
      pattern:
        type: "string"
        enum:
        - "From"
        - "To"
  ActionDescriptor:
    type: "object"
    properties:
      inputDataShape:
        $ref: "#/definitions/DataShape"
      outputDataShape:
        $ref: "#/definitions/DataShape"
      propertyDefinitionSteps:
        type: "array"
        items:
          $ref: "#/definitions/ActionDescriptorStep"
  ActionDescriptorStep:
    type: "object"
    required:
    - "name"
    properties:
      description:
        type: "string"
      name:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
  ActionObject:
    type: "object"
    required:
    - "name"
    properties:
      name:
        type: "string"
      description:
        type: "string"
      descriptor:
        type: "object"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      actionType:
        type: "string"
      pattern:
        type: "string"
        enum:
        - "From"
        - "To"
  ActionsSummary:
    type: "object"
    properties:
      actionCountByTags:
        type: "object"
        additionalProperties:
          type: "integer"
          format: "int32"
      totalActions:
        type: "integer"
        format: "int32"
  ConfigurationProperty:
    type: "object"
    properties:
      type:
        type: "string"
      defaultValue:
        type: "string"
      displayName:
        type: "string"
      label:
        type: "string"
      deprecated:
        type: "boolean"
      group:
        type: "string"
      description:
        type: "string"
      javaType:
        type: "string"
      enum:
        type: "array"
        items:
          $ref: "#/definitions/PropertyValue"
      kind:
        type: "string"
      required:
        type: "boolean"
      connectorValue:
        type: "string"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
  Connection:
    type: "object"
    required:
    - "name"
    properties:
      options:
        type: "object"
        additionalProperties:
          type: "string"
      organization:
        $ref: "#/definitions/Organization"
      description:
        type: "string"
      lastUpdated:
        type: "string"
        format: "date-time"
      userId:
        type: "string"
      icon:
        type: "string"
      createdDate:
        type: "string"
        format: "date-time"
      connectorId:
        type: "string"
      organizationId:
        type: "string"
      connector:
        $ref: "#/definitions/Connector"
      derived:
        type: "boolean"
      id:
        type: "string"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
  Connector:
    type: "object"
    required:
    - "actions"
    - "name"
    properties:
      description:
        type: "string"
      icon:
        type: "string"
      uses:
        $ref: "#/definitions/OptionalInt"
      connectorGroup:
        $ref: "#/definitions/ConnectorGroup"
      connectorGroupId:
        type: "string"
      componentScheme:
        type: "string"
      connectorFactory:
        type: "string"
      actionsSummary:
        $ref: "#/definitions/ActionsSummary"
      id:
        type: "string"
      actions:
        type: "array"
        items:
          $ref: "#/definitions/ConnectorAction"
      name:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
  ConnectorAction:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      name:
        type: "string"
      description:
        type: "string"
      descriptor:
        $ref: "#/definitions/ConnectorDescriptor"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      actionType:
        type: "string"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
      pattern:
        type: "string"
        enum:
        - "From"
        - "To"
  ConnectorDescriptor:
    type: "object"
    properties:
      componentScheme:
        type: "string"
      connectorFactory:
        type: "string"
      camelConnectorGAV:
        type: "string"
      camelConnectorPrefix:
        type: "string"
      split:
        $ref: "#/definitions/Split"
      connectorId:
        type: "string"
      connectorCustomizers:
        type: "array"
        items:
          type: "string"
      inputDataShape:
        $ref: "#/definitions/DataShape"
      outputDataShape:
        $ref: "#/definitions/DataShape"
      propertyDefinitionSteps:
        type: "array"
        items:
          $ref: "#/definitions/ActionDescriptorStep"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
  ConnectorGroup:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      name:
        type: "string"
  DataShape:
    type: "object"
    properties:
      type:
        type: "string"
      kind:
        type: "string"
      exemplar:
        type: "array"
        items:
          type: "string"
          format: "byte"
      specification:
        type: "string"
  Dependency:
    type: "object"
    properties:
      id:
        type: "string"
      type:
        type: "string"
        enum:
        - "MAVEN"
        - "EXTENSION"
  Environment:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      name:
        type: "string"
  Extension:
    type: "object"
    required:
    - "actions"
    - "name"
    properties:
      name:
        type: "string"
      description:
        type: "string"
      icon:
        type: "string"
      extensionId:
        type: "string"
      version:
        type: "string"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      actions:
        type: "array"
        items:
          $ref: "#/definitions/ExtensionAction"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
      status:
        type: "string"
        enum:
        - "Draft"
        - "Installed"
        - "Deleted"
      lastUpdated:
        type: "string"
        format: "date-time"
      userId:
        type: "string"
      createdDate:
        type: "string"
        format: "date-time"
      uses:
        $ref: "#/definitions/OptionalInt"
      id:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
  ExtensionAction:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      name:
        type: "string"
      description:
        type: "string"
      descriptor:
        $ref: "#/definitions/ExtensionDescriptor"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      actionType:
        type: "string"
      pattern:
        type: "string"
        enum:
        - "From"
        - "To"
  ExtensionDescriptor:
    type: "object"
    properties:
      kind:
        type: "string"
        enum:
        - "STEP"
        - "BEAN"
        - "ENDPOINT"
      entrypoint:
        type: "string"
      inputDataShape:
        $ref: "#/definitions/DataShape"
      outputDataShape:
        $ref: "#/definitions/DataShape"
      propertyDefinitionSteps:
        type: "array"
        items:
          $ref: "#/definitions/ActionDescriptorStep"
  ImmutableConnectorAction:
    allOf:
    - $ref: "#/definitions/Action"
    - type: "object"
      required:
      - "name"
      properties:
        id:
          type: "string"
          readOnly: true
        name:
          type: "string"
          readOnly: true
        description:
          type: "string"
          readOnly: true
        descriptor:
          readOnly: true
          $ref: "#/definitions/ConnectorDescriptor"
        tags:
          type: "array"
          readOnly: true
          uniqueItems: true
          items:
            type: "string"
        actionType:
          type: "string"
          readOnly: true
        dependencies:
          type: "array"
          items:
            $ref: "#/definitions/Dependency"
        pattern:
          type: "string"
          readOnly: true
          enum:
          - "From"
          - "To"
  ImmutableExtensionAction:
    allOf:
    - $ref: "#/definitions/Action"
    - type: "object"
      required:
      - "name"
      properties:
        id:
          type: "string"
          readOnly: true
        name:
          type: "string"
          readOnly: true
        description:
          type: "string"
          readOnly: true
        descriptor:
          readOnly: true
          $ref: "#/definitions/ExtensionDescriptor"
        tags:
          type: "array"
          readOnly: true
          uniqueItems: true
          items:
            type: "string"
        actionType:
          type: "string"
          readOnly: true
        pattern:
          type: "string"
          readOnly: true
          enum:
          - "From"
          - "To"
  Integration:
    type: "object"
    required:
    - "name"
    properties:
      resources:
        type: "array"
        items:
          $ref: "#/definitions/ResourceIdentifier"
      configuration:
        type: "string"
      description:
        type: "string"
      lastUpdated:
        type: "string"
        format: "date-time"
      userId:
        type: "string"
      createdDate:
        type: "string"
        format: "date-time"
      revisions:
        type: "array"
        uniqueItems: true
        items:
          $ref: "#/definitions/IntegrationRevision"
      steps:
        type: "array"
        items:
          $ref: "#/definitions/Step"
      users:
        type: "array"
        items:
          $ref: "#/definitions/User"
      draftRevision:
        $ref: "#/definitions/IntegrationRevision"
      deployedRevisionId:
        type: "integer"
        format: "int32"
      integrationTemplateId:
        type: "string"
      connections:
        type: "array"
        items:
          $ref: "#/definitions/Connection"
      desiredStatus:
        type: "string"
        enum:
        - "Draft"
        - "Pending"
        - "Activated"
        - "Deactivated"
        - "Deleted"
      currentStatus:
        type: "string"
        enum:
        - "Draft"
        - "Pending"
        - "Activated"
        - "Deactivated"
        - "Deleted"
      stepsDone:
        type: "array"
        items:
          type: "string"
      statusMessage:
        type: "string"
      timesUsed:
        type: "integer"
      inactive:
        type: "boolean"
      usedConnectorIds:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      id:
        type: "string"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
  IntegrationRevision:
    type: "object"
    properties:
      spec:
        $ref: "#/definitions/IntegrationRevisionSpec"
      targetState:
        type: "string"
        enum:
        - "Draft"
        - "Active"
        - "Inactive"
        - "Undeployed"
        - "Error"
        - "Pending"
      parentVersion:
        type: "integer"
        format: "int32"
      currentMessage:
        type: "string"
      targetMessage:
        type: "string"
      lastUpdated:
        type: "string"
        format: "date-time"
      version:
        type: "integer"
        format: "int32"
      createdDate:
        type: "string"
        format: "date-time"
      currentState:
        type: "string"
        enum:
        - "Draft"
        - "Active"
        - "Inactive"
        - "Undeployed"
        - "Error"
        - "Pending"
      timesUsed:
        type: "integer"
  IntegrationRevisionSpec:
    type: "object"
    properties:
      configuration:
        type: "string"
      steps:
        type: "array"
        items:
          $ref: "#/definitions/Step"
      connections:
        type: "array"
        items:
          $ref: "#/definitions/Connection"
  OptionalInt:
    type: "object"
    properties:
      present:
        type: "boolean"
      asInt:
        type: "integer"
        format: "int32"
  Organization:
    type: "object"
    required:
    - "name"
    properties:
      environments:
        type: "array"
        items:
          $ref: "#/definitions/Environment"
      users:
        type: "array"
        items:
          $ref: "#/definitions/User"
      id:
        type: "string"
      name:
        type: "string"
  PropertyValue:
    type: "object"
    properties:
      value:
        type: "string"
      label:
        type: "string"
  ResourceIdentifier:
    type: "object"
    properties:
      id:
        type: "string"
  Split:
    type: "object"
    properties:
      language:
        type: "string"
      expression:
        type: "string"
  Step:
    type: "object"
    properties:
      name:
        type: "string"
      extension:
        $ref: "#/definitions/Extension"
      action:
        $ref: "#/definitions/ActionObject"
      connection:
        $ref: "#/definitions/Connection"
      stepKind:
        type: "string"
      id:
        type: "string"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
  User:
    type: "object"
    properties:
      name:
        type: "string"
      username:
        type: "string"
      fullName:
        type: "string"
      roleId:
        type: "string"
      firstName:
        type: "string"
      lastName:
        type: "string"
      integrations:
        type: "array"
        items:
          $ref: "#/definitions/Integration"
      organizationId:
        type: "string"
      id:
        type: "string"
  ListResult:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          type: "object"
      totalCount:
        type: "integer"
        format: "int32"
  ListResultWithIdObject:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/WithIdObject"
      totalCount:
        type: "integer"
        format: "int32"
  WithId:
    type: "object"
    properties:
      id:
        type: "string"
  WithIdObject:
    type: "object"
    properties:
      id:
        type: "string"
  Violation:
    type: "object"
  ConnectorFormData:
    type: "object"
    properties:
      connector:
        $ref: "#/definitions/Connector"
      iconInputStream:
        $ref: "#/definitions/InputStream"
  InputStream:
    type: "object"
  ListResultConnectorAction:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/ConnectorAction"
      totalCount:
        type: "integer"
        format: "int32"
  ListResultConnector:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/Connector"
      totalCount:
        type: "integer"
        format: "int32"
  AcquisitionMethod:
    type: "object"
    properties:
      type:
        type: "string"
        enum:
        - "OAUTH1"
        - "OAUTH2"
      label:
        type: "string"
      description:
        type: "string"
      icon:
        type: "string"
  AcquisitionRequest:
    type: "object"
    properties:
      returnUrl:
        type: "string"
        format: "uri"
  FilterOptions:
    type: "object"
    properties:
      ops:
        type: "array"
        items:
          $ref: "#/definitions/Op"
      paths:
        type: "array"
        items:
          type: "string"
  Op:
    type: "object"
    properties:
      operator:
        type: "string"
      label:
        type: "string"
  InputPart:
    type: "object"
    properties:
      bodyAsString:
        type: "string"
      contentTypeFromMessage:
        type: "boolean"
      mediaType:
        $ref: "#/definitions/MediaType"
      headers:
        type: "object"
        additionalProperties:
          type: "array"
          items:
            type: "string"
  MediaType:
    type: "object"
    properties:
      type:
        type: "string"
      subtype:
        type: "string"
      parameters:
        type: "object"
        additionalProperties:
          type: "string"
      wildcardType:
        type: "boolean"
      wildcardSubtype:
        type: "boolean"
  MultipartFormDataInput:
    type: "object"
    properties:
      formDataMap:
        type: "object"
        additionalProperties:
          type: "array"
          items:
            $ref: "#/definitions/InputPart"
      formData:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/InputPart"
      preamble:
        type: "string"
      parts:
        type: "array"
        items:
          $ref: "#/definitions/InputPart"
  ConnectorSettings:
    type: "object"
    required:
    - "name"
    properties:
      connectorTemplateId:
        type: "string"
      description:
        type: "string"
      icon:
        type: "string"
      name:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
  CustomConnectorFormData:
    type: "object"
    properties:
      connectorSettings:
        $ref: "#/definitions/ConnectorSettings"
      iconInputStream:
        $ref: "#/definitions/InputStream"
      specification:
        $ref: "#/definitions/InputStream"
  ConnectorSummary:
    type: "object"
    required:
    - "name"
    properties:
      description:
        type: "string"
      errors:
        type: "array"
        items:
          $ref: "#/definitions/Violation"
      warnings:
        type: "array"
        items:
          $ref: "#/definitions/Violation"
      icon:
        type: "string"
      actionsSummary:
        $ref: "#/definitions/ActionsSummary"
      name:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
  Result:
    type: "object"
    properties:
      errors:
        type: "array"
        items:
          $ref: "#/definitions/VerifierError"
      scope:
        type: "string"
        enum:
        - "PARAMETERS"
        - "CONNECTIVITY"
      status:
        type: "string"
        enum:
        - "OK"
        - "ERROR"
        - "UNSUPPORTED"
  VerifierError:
    type: "object"
    properties:
      parameters:
        type: "array"
        items:
          type: "string"
      attributes:
        type: "object"
        additionalProperties:
          type: "object"
      description:
        type: "string"
      code:
        type: "string"
  ConnectorTemplate:
    type: "object"
    required:
    - "name"
    properties:
      description:
        type: "string"
      icon:
        type: "string"
      connectorGroup:
        $ref: "#/definitions/ConnectorGroup"
      camelConnectorGAV:
        type: "string"
      camelConnectorPrefix:
        type: "string"
      connectorProperties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      id:
        type: "string"
      name:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
  ListResultConnectorTemplate:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/ConnectorTemplate"
      totalCount:
        type: "integer"
        format: "int32"
  ListResultIntegration:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/Integration"
      totalCount:
        type: "integer"
        format: "int32"
  StreamingOutput:
    type: "object"
