---
swagger: "2.0"
info:
  description: "The Syndesis Supported REST API connects to back-end services on the\
    \ Syndesis and\n                      provides a single entry point for the 3rd\n\
    \                      party clients."
  version: "v1"
  title: "Syndesis Supported 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"
basePath: "/api/v1"
tags:
- name: "extensions"
- name: "integration-support"
- name: "public-api"
schemes:
- "https"
paths:
  /extensions:
    get:
      tags:
      - "extensions"
      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/ListResultExtension"
    post:
      tags:
      - "extensions"
      operationId: "upload"
      consumes:
      - "multipart/form-data"
      produces:
      - "application/json"
      parameters:
      - name: "updatedId"
        in: "query"
        required: false
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/Extension"
  /extensions/validation:
    post:
      tags:
      - "extensions"
      operationId: "validate"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "All blocking validations pass"
          schema:
            $ref: "#/definitions/Violation"
        400:
          description: "Found violations in validation"
          schema:
            $ref: "#/definitions/Violation"
  /extensions/{id}:
    get:
      tags:
      - "extensions"
      operationId: "get"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/WithIdObject"
    delete:
      tags:
      - "extensions"
      operationId: "delete"
      consumes:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /extensions/{id}/install:
    post:
      tags:
      - "extensions"
      operationId: "install"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Installed"
        400:
          description: "Found violations in validation"
          schema:
            $ref: "#/definitions/Violation"
  /extensions/{id}/integrations:
    get:
      tags:
      - "extensions"
      operationId: "integrations"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/ResourceIdentifier"
            uniqueItems: true
  /extensions/{id}/validation:
    post:
      tags:
      - "extensions"
      operationId: "validate"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "All blocking validations pass"
          schema:
            $ref: "#/definitions/Violation"
        400:
          description: "Found violations in validation"
          schema:
            $ref: "#/definitions/Violation"
  /integration-support/export.zip:
    get:
      tags:
      - "integration-support"
      operationId: "export"
      produces:
      - "application/octet-stream"
      parameters:
      - name: "id"
        in: "query"
        required: true
        type: "array"
        items:
          type: "string"
        collectionFormat: "multi"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/StreamingOutput"
  /integration-support/generate/pom.xml:
    post:
      tags:
      - "integration-support"
      operationId: "projectPom"
      consumes:
      - "application/json"
      produces:
      - "application/octet-stream"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            type: "array"
            items:
              type: "string"
              format: "byte"
  /integration-support/import:
    post:
      tags:
      - "integration-support"
      operationId: "importIntegration"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              type: "array"
              items:
                $ref: "#/definitions/WithResourceId"
  /integration-support/overviews:
    get:
      tags:
      - "integration-support"
      operationId: "getOverviews"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ListResultIntegrationOverview"
  /public/connections/{id}/properties:
    post:
      tags:
      - "public-api"
      operationId: "configureConnection"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: true
        schema:
          type: "object"
          additionalProperties:
            type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ConnectionOverview"
  /public/environments:
    get:
      tags:
      - "public-api"
      operationId: "getReleaseEnvironments"
      produces:
      - "application/json"
      parameters:
      - name: "withUses"
        in: "query"
        required: false
        type: "boolean"
      responses:
        default:
          description: "successful operation"
  /public/environments/{env}:
    post:
      tags:
      - "public-api"
      operationId: "addNewEnvironment"
      parameters:
      - name: "env"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
    put:
      tags:
      - "public-api"
      operationId: "renameEnvironment"
      consumes:
      - "application/json"
      parameters:
      - name: "env"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: true
        schema:
          type: "string"
      responses:
        default:
          description: "successful operation"
    delete:
      tags:
      - "public-api"
      operationId: "deleteEnvironment"
      parameters:
      - name: "env"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /public/integrations:
    post:
      tags:
      - "public-api"
      operationId: "importResources"
      consumes:
      - "multipart/form-data"
      produces:
      - "application/json"
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/ImportFormDataInput"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/ContinuousDeliveryImportResults"
  /public/integrations/{env}/export.zip:
    get:
      tags:
      - "public-api"
      operationId: "exportResources"
      produces:
      - "application/octet-stream"
      parameters:
      - name: "env"
        in: "path"
        required: true
        type: "string"
      - name: "all"
        in: "query"
        required: false
        type: "boolean"
      responses:
        default:
          description: "successful operation"
  /public/integrations/{id}/deployments:
    post:
      tags:
      - "public-api"
      operationId: "publishIntegration"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/IntegrationDeployment"
  /public/integrations/{id}/deployments/stop:
    put:
      tags:
      - "public-api"
      operationId: "stopIntegration"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
  /public/integrations/{id}/state:
    get:
      tags:
      - "public-api"
      operationId: "getIntegrationState"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/IntegrationState"
  /public/integrations/{id}/tags:
    get:
      tags:
      - "public-api"
      operationId: "getReleaseTags"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              $ref: "#/definitions/ContinuousDeliveryEnvironment"
    put:
      tags:
      - "public-api"
      operationId: "putTagsForRelease"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: true
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              $ref: "#/definitions/ContinuousDeliveryEnvironment"
    patch:
      tags:
      - "public-api"
      operationId: "patchTagsForRelease"
      consumes:
      - "application/json"
      produces:
      - "application/json"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: true
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              $ref: "#/definitions/ContinuousDeliveryEnvironment"
  /public/integrations/{id}/tags/{env}:
    delete:
      tags:
      - "public-api"
      operationId: "deleteReleaseTag"
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
      - name: "env"
        in: "path"
        required: true
        type: "string"
      responses:
        default:
          description: "successful operation"
definitions:
  Action:
    type: "object"
    required:
    - "name"
    discriminator: "actionType"
    properties:
      id:
        type: "string"
      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"
        - "Pipe"
        - "To"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
  ActionDescriptor:
    type: "object"
    properties:
      propertyDefinitionSteps:
        type: "array"
        items:
          $ref: "#/definitions/ActionDescriptorStep"
      inputDataShape:
        $ref: "#/definitions/DataShape"
      outputDataShape:
        $ref: "#/definitions/DataShape"
  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"
  ActionsSummary:
    type: "object"
    properties:
      actionCountByTags:
        type: "object"
        additionalProperties:
          type: "integer"
          format: "int32"
      totalActions:
        type: "integer"
        format: "int32"
  ConfigurationProperty:
    type: "object"
    properties:
      raw:
        type: "boolean"
      javaType:
        type: "string"
      required:
        type: "boolean"
      componentProperty:
        type: "boolean"
      connectorValue:
        type: "string"
      controlHint:
        type: "string"
      dataList:
        type: "array"
        items:
          type: "string"
      labelHint:
        type: "string"
      placeholder:
        type: "string"
      relation:
        type: "array"
        items:
          $ref: "#/definitions/PropertyRelation"
      multiple:
        type: "boolean"
      extendedProperties:
        type: "string"
      label:
        type: "string"
      description:
        type: "string"
      deprecated:
        type: "boolean"
      group:
        type: "string"
      generator:
        type: "string"
      secret:
        type: "boolean"
      enum:
        type: "array"
        items:
          $ref: "#/definitions/PropertyValue"
      kind:
        type: "string"
      type:
        type: "string"
      defaultValue:
        type: "string"
      displayName:
        type: "string"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      order:
        $ref: "#/definitions/OptionalInt"
  Connection:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      icon:
        type: "string"
      connector:
        $ref: "#/definitions/Connector"
      organizationId:
        type: "string"
      connectorId:
        type: "string"
      derived:
        type: "boolean"
      options:
        type: "object"
        additionalProperties:
          type: "string"
      description:
        type: "string"
      lastUpdated:
        type: "string"
        format: "date-time"
      organization:
        $ref: "#/definitions/Organization"
      userId:
        type: "string"
      createdDate:
        type: "string"
        format: "date-time"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
      uses:
        type: "integer"
        format: "int32"
        readOnly: true
  ConnectionBulletinBoard:
    type: "object"
    properties:
      id:
        type: "string"
      targetResourceId:
        type: "string"
      notices:
        $ref: "#/definitions/OptionalInt"
      errors:
        $ref: "#/definitions/OptionalInt"
      warnings:
        $ref: "#/definitions/OptionalInt"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
      messages:
        type: "array"
        items:
          $ref: "#/definitions/LeveledMessage"
      updatedAt:
        type: "integer"
        format: "int64"
      createdAt:
        type: "integer"
        format: "int64"
  ConnectionOverview:
    type: "object"
    required:
    - "name"
    properties:
      board:
        $ref: "#/definitions/ConnectionBulletinBoard"
      id:
        type: "string"
      icon:
        type: "string"
      connector:
        $ref: "#/definitions/Connector"
      organizationId:
        type: "string"
      connectorId:
        type: "string"
      derived:
        type: "boolean"
      options:
        type: "object"
        additionalProperties:
          type: "string"
      description:
        type: "string"
      lastUpdated:
        type: "string"
        format: "date-time"
      organization:
        $ref: "#/definitions/Organization"
      userId:
        type: "string"
      createdDate:
        type: "string"
        format: "date-time"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
      uses:
        type: "integer"
        format: "int32"
        readOnly: true
  Connector:
    type: "object"
    required:
    - "actions"
    - "name"
    properties:
      icon:
        type: "string"
      connectorGroup:
        $ref: "#/definitions/ConnectorGroup"
      connectorGroupId:
        type: "string"
      componentScheme:
        type: "string"
      connectorFactory:
        type: "string"
      connectorCustomizers:
        type: "array"
        items:
          type: "string"
      actionsSummary:
        $ref: "#/definitions/ActionsSummary"
      description:
        type: "string"
      uses:
        readOnly: true
        $ref: "#/definitions/OptionalInt"
      id:
        type: "string"
      version:
        type: "integer"
        format: "int32"
      actions:
        type: "array"
        items:
          $ref: "#/definitions/ConnectorAction"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
  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"
        - "Pipe"
        - "To"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
  ConnectorDescriptor:
    type: "object"
    properties:
      componentScheme:
        type: "string"
      connectorFactory:
        type: "string"
      connectorCustomizers:
        type: "array"
        items:
          type: "string"
      camelConnectorPrefix:
        type: "string"
      connectorId:
        type: "string"
      camelConnectorGAV:
        type: "string"
      standardizedErrors:
        type: "array"
        items:
          $ref: "#/definitions/StandardizedError"
      propertyDefinitionSteps:
        type: "array"
        items:
          $ref: "#/definitions/ActionDescriptorStep"
      inputDataShape:
        $ref: "#/definitions/DataShape"
      outputDataShape:
        $ref: "#/definitions/DataShape"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
  ConnectorGroup:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      name:
        type: "string"
  ContinuousDeliveryEnvironment:
    type: "object"
    properties:
      environmentId:
        type: "string"
      releaseTag:
        type: "string"
      lastTaggedAt:
        type: "string"
        format: "date-time"
      lastExportedAt:
        type: "string"
        format: "date-time"
      lastImportedAt:
        type: "string"
        format: "date-time"
  ContinuousDeliveryImportResults:
    type: "object"
    properties:
      lastImportedAt:
        type: "string"
        format: "date-time"
      results:
        type: "array"
        items:
          $ref: "#/definitions/WithResourceId"
  DataManager:
    type: "object"
  DataShape:
    type: "object"
    required:
    - "name"
    properties:
      collectionType:
        type: "string"
      collectionClassName:
        type: "string"
      exemplar:
        type: "array"
        items:
          type: "string"
          format: "byte"
      description:
        type: "string"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
      specification:
        type: "string"
      kind:
        type: "string"
        enum:
        - "ANY"
        - "JAVA"
        - "JSON_SCHEMA"
        - "JSON_INSTANCE"
        - "XML_SCHEMA"
        - "XML_SCHEMA_INSPECTED"
        - "XML_INSTANCE"
        - "NONE"
      name:
        type: "string"
      type:
        type: "string"
      variants:
        type: "array"
        items:
          $ref: "#/definitions/DataShape"
  Dependency:
    type: "object"
    properties:
      id:
        type: "string"
      type:
        type: "string"
        enum:
        - "MAVEN"
        - "EXTENSION"
        - "EXTENSION_TAG"
        - "ICON"
  Environment:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      name:
        type: "string"
  Extension:
    type: "object"
    required:
    - "actions"
    - "extensionType"
    - "name"
    - "schemaVersion"
    properties:
      schemaVersion:
        type: "string"
      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/Action"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
      extensionType:
        type: "string"
        enum:
        - "Steps"
        - "Connectors"
        - "Libraries"
      lastUpdated:
        type: "string"
        format: "date-time"
      status:
        type: "string"
        enum:
        - "Draft"
        - "Installed"
        - "Deleted"
      userId:
        type: "string"
      createdDate:
        type: "string"
        format: "date-time"
      id:
        type: "string"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
      uses:
        type: "integer"
        format: "int32"
        readOnly: true
  Flow:
    type: "object"
    required:
    - "name"
    properties:
      scheduler:
        $ref: "#/definitions/Scheduler"
      connections:
        type: "array"
        items:
          $ref: "#/definitions/Connection"
      description:
        type: "string"
      type:
        type: "string"
        enum:
        - "PRIMARY"
        - "API_PROVIDER"
        - "ALTERNATE"
      name:
        type: "string"
      id:
        type: "string"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      steps:
        type: "array"
        items:
          $ref: "#/definitions/Step"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
  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"
        metadata:
          type: "object"
          readOnly: true
          additionalProperties:
            type: "string"
        pattern:
          type: "string"
          readOnly: true
          enum:
          - "From"
          - "Pipe"
          - "To"
  ImmutableStepAction:
    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/StepDescriptor"
        tags:
          type: "array"
          readOnly: true
          uniqueItems: true
          items:
            type: "string"
        actionType:
          type: "string"
          readOnly: true
        metadata:
          type: "object"
          readOnly: true
          additionalProperties:
            type: "string"
        pattern:
          type: "string"
          readOnly: true
          enum:
          - "From"
          - "Pipe"
          - "To"
  ImportFormDataInput:
    type: "object"
    properties:
      data:
        $ref: "#/definitions/InputStream"
      properties:
        $ref: "#/definitions/InputStream"
      environment:
        type: "string"
      deploy:
        type: "boolean"
  InputStream:
    type: "object"
  Integration:
    type: "object"
    required:
    - "name"
    properties:
      id:
        type: "string"
      deleted:
        type: "boolean"
      flows:
        type: "array"
        items:
          $ref: "#/definitions/Flow"
      connections:
        type: "array"
        items:
          $ref: "#/definitions/Connection"
      continuousDeliveryState:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ContinuousDeliveryEnvironment"
      exposure:
        type: "string"
      description:
        type: "string"
      steps:
        type: "array"
        items:
          $ref: "#/definitions/Step"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      version:
        type: "integer"
        format: "int32"
      updatedAt:
        type: "integer"
        format: "int64"
      createdAt:
        type: "integer"
        format: "int64"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
      resources:
        type: "array"
        items:
          $ref: "#/definitions/ResourceIdentifier"
  IntegrationBulletinBoard:
    type: "object"
    properties:
      targetResourceId:
        type: "string"
      notices:
        $ref: "#/definitions/OptionalInt"
      errors:
        $ref: "#/definitions/OptionalInt"
      warnings:
        $ref: "#/definitions/OptionalInt"
      id:
        type: "string"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
      messages:
        type: "array"
        items:
          $ref: "#/definitions/LeveledMessage"
      updatedAt:
        type: "integer"
        format: "int64"
      createdAt:
        type: "integer"
        format: "int64"
  IntegrationDeployment:
    type: "object"
    properties:
      integrationId:
        type: "string"
      spec:
        $ref: "#/definitions/Integration"
      stepsDone:
        type: "object"
        additionalProperties:
          type: "string"
      currentState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      targetState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      statusMessage:
        type: "string"
      error:
        $ref: "#/definitions/IntegrationDeploymentError"
      userId:
        type: "string"
      id:
        type: "string"
      version:
        type: "integer"
        format: "int32"
      updatedAt:
        type: "integer"
        format: "int64"
      createdAt:
        type: "integer"
        format: "int64"
  IntegrationDeploymentError:
    type: "object"
    properties:
      message:
        type: "string"
      type:
        type: "string"
  IntegrationDeploymentOverview:
    type: "object"
    properties:
      stepsDone:
        type: "object"
        additionalProperties:
          type: "string"
      currentState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      targetState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      statusMessage:
        type: "string"
      error:
        $ref: "#/definitions/IntegrationDeploymentError"
      userId:
        type: "string"
      id:
        type: "string"
      version:
        type: "integer"
        format: "int32"
      updatedAt:
        type: "integer"
        format: "int64"
      createdAt:
        type: "integer"
        format: "int64"
  IntegrationDeploymentStateDetails:
    type: "object"
    properties:
      integrationId:
        type: "string"
      deploymentVersion:
        type: "integer"
        format: "int32"
      detailedState:
        type: "string"
        enum:
        - "ASSEMBLING"
        - "BUILDING"
        - "DEPLOYING"
        - "STARTING"
      podName:
        type: "string"
      linkType:
        type: "string"
        enum:
        - "EVENTS"
        - "LOGS"
      namespace:
        type: "string"
      id:
        type: "string"
  IntegrationOverview:
    type: "object"
    required:
    - "name"
    properties:
      board:
        $ref: "#/definitions/IntegrationBulletinBoard"
      currentState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      targetState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      draft:
        type: "boolean"
      deploymentVersion:
        type: "integer"
        format: "int32"
      managementUrl:
        type: "string"
      exposureMeans:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      deployments:
        type: "array"
        items:
          $ref: "#/definitions/IntegrationDeploymentOverview"
      url:
        type: "string"
      id:
        type: "string"
      deleted:
        type: "boolean"
      flows:
        type: "array"
        items:
          $ref: "#/definitions/Flow"
      connections:
        type: "array"
        items:
          $ref: "#/definitions/Connection"
      continuousDeliveryState:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ContinuousDeliveryEnvironment"
      exposure:
        type: "string"
      description:
        type: "string"
      steps:
        type: "array"
        items:
          $ref: "#/definitions/Step"
      properties:
        type: "object"
        additionalProperties:
          $ref: "#/definitions/ConfigurationProperty"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      version:
        type: "integer"
        format: "int32"
      updatedAt:
        type: "integer"
        format: "int64"
      createdAt:
        type: "integer"
        format: "int64"
      tags:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      name:
        type: "string"
      resources:
        type: "array"
        items:
          $ref: "#/definitions/ResourceIdentifier"
  IntegrationState:
    type: "object"
    properties:
      currentState:
        type: "string"
        enum:
        - "Published"
        - "Unpublished"
        - "Error"
        - "Pending"
      stateDetails:
        $ref: "#/definitions/IntegrationDeploymentStateDetails"
  LeveledMessage:
    type: "object"
    properties:
      level:
        type: "string"
        enum:
        - "INFO"
        - "WARN"
        - "ERROR"
      detail:
        type: "string"
      code:
        type: "string"
        enum:
        - "SYNDESIS000"
        - "SYNDESIS001"
        - "SYNDESIS002"
        - "SYNDESIS003"
        - "SYNDESIS004"
        - "SYNDESIS005"
        - "SYNDESIS006"
        - "SYNDESIS007"
        - "SYNDESIS008"
        - "SYNDESIS009"
        - "SYNDESIS010"
        - "SYNDESIS011"
        - "SYNDESIS012"
      message:
        type: "string"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
  ListResult:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          type: "object"
      totalCount:
        type: "integer"
        format: "int32"
  ListResultExtension:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/Extension"
      totalCount:
        type: "integer"
        format: "int32"
  ListResultIntegrationOverview:
    type: "object"
    properties:
      items:
        type: "array"
        items:
          $ref: "#/definitions/IntegrationOverview"
      totalCount:
        type: "integer"
        format: "int32"
  OptionalInt:
    type: "object"
    properties:
      asInt:
        type: "integer"
        format: "int32"
      present:
        type: "boolean"
  Organization:
    type: "object"
    required:
    - "name"
    properties:
      users:
        type: "array"
        items:
          $ref: "#/definitions/User"
      environments:
        type: "array"
        items:
          $ref: "#/definitions/Environment"
      id:
        type: "string"
      name:
        type: "string"
  PropertyRelation:
    type: "object"
    properties:
      action:
        type: "string"
      when:
        type: "array"
        items:
          $ref: "#/definitions/When"
  PropertyValue:
    type: "object"
    properties:
      label:
        type: "string"
      value:
        type: "string"
  ResourceIdentifier:
    type: "object"
    properties:
      version:
        type: "integer"
        format: "int32"
      kind:
        type: "string"
        enum:
        - "action"
        - "connection"
        - "connection-overview"
        - "connector"
        - "connector-action"
        - "connector-group"
        - "connector-template"
        - "icon"
        - "environment"
        - "environment-type"
        - "extension"
        - "step-action"
        - "organization"
        - "integration"
        - "integration-overview"
        - "integration-deployment"
        - "integration-deployment-state-details"
        - "integration-metrics-summary"
        - "integration-runtime"
        - "integration-endpoint"
        - "step"
        - "permission"
        - "role"
        - "user"
        - "connection-bulletin-board"
        - "integration-bulletin-board"
        - "open-api"
      id:
        type: "string"
  Scheduler:
    type: "object"
    properties:
      expression:
        type: "string"
      type:
        type: "string"
        enum:
        - "timer"
        - "cron"
  StandardizedError:
    type: "object"
  Step:
    type: "object"
    properties:
      connection:
        $ref: "#/definitions/Connection"
      stepKind:
        type: "string"
        enum:
        - "endpoint"
        - "connector"
        - "expressionFilter"
        - "ruleFilter"
        - "extension"
        - "mapper"
        - "choice"
        - "split"
        - "aggregate"
        - "log"
        - "headers"
        - "template"
      action:
        $ref: "#/definitions/Action"
      name:
        type: "string"
      extension:
        $ref: "#/definitions/Extension"
      id:
        type: "string"
      configuredProperties:
        type: "object"
        additionalProperties:
          type: "string"
      dependencies:
        type: "array"
        items:
          $ref: "#/definitions/Dependency"
      metadata:
        type: "object"
        additionalProperties:
          type: "string"
  StepDescriptor:
    type: "object"
    properties:
      entrypoint:
        type: "string"
      kind:
        type: "string"
        enum:
        - "STEP"
        - "BEAN"
        - "ENDPOINT"
      resource:
        type: "string"
      propertyDefinitionSteps:
        type: "array"
        items:
          $ref: "#/definitions/ActionDescriptorStep"
      inputDataShape:
        $ref: "#/definitions/DataShape"
      outputDataShape:
        $ref: "#/definitions/DataShape"
  StreamingOutput:
    type: "object"
  User:
    type: "object"
    properties:
      fullName:
        type: "string"
      organizationId:
        type: "string"
      integrations:
        type: "array"
        items:
          $ref: "#/definitions/Integration"
      username:
        type: "string"
      firstName:
        type: "string"
      lastName:
        type: "string"
      roleId:
        type: "string"
      name:
        type: "string"
      id:
        type: "string"
  Validator:
    type: "object"
  Violation:
    type: "object"
  When:
    type: "object"
    properties:
      value:
        type: "string"
      id:
        type: "string"
  WithId:
    type: "object"
    properties:
      id:
        type: "string"
  WithIdObject:
    type: "object"
    properties:
      id:
        type: "string"
  WithResourceId:
    type: "object"
    properties:
      id:
        type: "string"
