Skip to main content

Create or Update a Connector Configuration

PUT 

/connect/v1/environments/:environment_id/clusters/:kafka_cluster_id/connectors/:connector_name/config

Create a new connector using the given configuration, or update the configuration for an existing connector. Returns information about the connector after the change has been made.

Request

Responses

Created

OpenAPI definition (YAML)
paths:
  /connect/v1/environments/{environment_id}/clusters/{kafka_cluster_id}/connectors/{connector_name}/config:
    put:
      x-lifecycle-stage: General Availability
      operationId: createOrUpdateConnectv1ConnectorConfig
      description: Create a new connector using the given configuration, or update the configuration for
        an existing connector. Returns information about the connector after the change has been made.
      tags:
      - Connectors (connect/v1)
      security:
      - cloud-api-key: []
      - confluent-sts-access-token: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: Configuration parameters for the connector.
              required:
              - connector.class
              - name
              - kafka.api.key
              - kafka.api.secret
              properties:
                connector.class:
                  type: string
                  description: \[Required for Managed Connector, Ignored for Custom Connector\] The connector
                    class name. E.g. BigQuerySink, GcsSink, etc.
                name:
                  type: string
                  description: Name or alias of the class (plugin) for this connector.
                kafka.api.key:
                  type: string
                  description: The kafka cluster api key.
                kafka.api.secret:
                  type: string
                  description: The kafka cluster api secret key.
                  x-redact: true
                confluent.connector.type:
                  type: string
                  description: '\[Required for Custom Connector\] The connector type.

                    '
                  example: CUSTOM
                  default: MANAGED
                  enum:
                  - CUSTOM
                  - MANAGED
                confluent.custom.plugin.id:
                  type: string
                  example: ccp-lq5m06
                  description: '\[Required for Custom Connector\] The custom plugin id of custom connector,
                    e.g., `ccp-lq5m06`

                    '
                confluent.custom.connection.endpoints:
                  type: string
                  description: '\[Optional for Custom Connector\] Egress endpoint(s) for the connector
                    to use when attaching to the sink or source data system.

                    '
                confluent.custom.schema.registry.auto:
                  type: string
                  description: '\[Optional for Custom Connector\] Automatically add the required schema
                    registry properties in a custom connector config if schema registry is enabled.

                    '
                  example: 'FALSE'
                  default: 'FALSE'
                  enum:
                  - 'TRUE'
                  - 'FALSE'
                confluent.custom.connect.plugin.runtime:
                  type: string
                  description: '\[Optional for Custom Connector\] The runtime of the custom connector
                    plugin. By default this is the latest version available. If not provided this config
                    is updated internally to reflect the version used.

                    '
                  example: 3.9.0
                confluent.custom.connect.java.version:
                  type: string
                  description: '\[Optional for Custom Connector\] The Java version of the custom connector
                    plugin. By default this is the latest version supported by the latest runtime. If
                    not provided this config is updated internally to reflect the version used.

                    '
                  example: '17'
              additionalProperties:
                type: string
                description: Other configuration parameters for the connector. All values should be strings.
                  See the connector's docs for details.
            example:
              connector.class: GcsSink
              data.format: BYTES
              flush.size: '1000'
              gcs.bucket.name: APILogsBucket
              gcs.credentials.config: '****************'
              kafka.api.key: '****************'
              kafka.api.secret: '****************'
              name: MyGcsLogsBucketConnector
              tasks.max: '2'
              time.interval: DAILY
              topics: APILogsTopic
        description: Configuration parameters for the connector. All values should be strings.
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    description: Name of the connector
                  config:
                    type: object
                    description: 'Configuration parameters for the connector. These configurations

                      are the minimum set of key-value pairs (KVP) which can be used to

                      define how the connector connects Kafka to the external system.

                      Some of these KVPs are common to all the connectors, such as

                      connection parameters to Kafka, connector metadata, etc. The list

                      of common connector configurations is as follows


                      - cloud.environment

                      - cloud.provider

                      - connector.class

                      - kafka.api.key

                      - kafka.api.secret

                      - kafka.endpoint

                      - kafka.region

                      - name


                      A specific connector such as `GcsSink` would have additional

                      parameters such as `gcs.bucket.name`, `flush.size`, etc.'
                    required:
                    - cloud.environment
                    - cloud.provider
                    - connector.class
                    - name
                    - kafka.endpoint
                    - kafka.region
                    - kafka.api.key
                    - kafka.api.secret
                    properties:
                      cloud.environment:
                        type: string
                        description: The cloud environment type.
                      cloud.provider:
                        type: string
                        description: The cloud service provider, e.g. aws, azure, etc.
                        enum:
                        - aws
                        - azure
                        - gcp
                      connector.class:
                        type: string
                        description: The connector class name. E.g. BigQuerySink, GcsSink, etc.
                      name:
                        type: string
                        description: Name or alias of the class (plugin) for this connector.
                      kafka.endpoint:
                        type: string
                        description: The kafka cluster endpoint.
                      kafka.region:
                        type: string
                        description: The kafka cluster region.
                      kafka.api.key:
                        type: string
                        description: The kafka cluster api key.
                      kafka.api.secret:
                        type: string
                        description: The kafka cluster api secret key.
                        x-redact: true
                    additionalProperties:
                      type: string
                  tasks:
                    type: array
                    description: List of active tasks generated by the connector
                    items:
                      type: object
                      properties:
                        connector:
                          type: string
                          description: The name of the connector the task belongs to
                        task:
                          type: integer
                          description: Task ID within the connector
                      required:
                      - connector
                      - task
                  type:
                    type: string
                    description: Type of connector, sink or source
                    enum:
                    - sink
                    - source
                required:
                - name
                - config
                title: connect.v1.Connector
              example:
                name: MyGcsLogsBucketConnector
                config:
                  cloud.environment: prod
                  cloud.provider: aws
                  connector.class: GcsSink
                  data.format: BYTES
                  flush.size: '1000'
                  gcs.bucket.name: APILogsBucket
                  gcs.credentials.config: '****************'
                  kafka.api.key: '****************'
                  kafka.api.secret: '****************'
                  kafka.endpoint: SASL_SSL://pkc-xxxxx.us-west-2.aws.confluent.cloud:9092
                  kafka.region: us-west-2
                  name: MyGcsLogsBucketConnector
                  tasks.max: '2'
                  time.interval: DAILY
                  topics: APILogsTopic
                tasks:
                - connector: MyGcsLogsBucketConnector
                  task: 0
                - connector: MyGcsLogsBucketConnector
                  task: 1
                type: sink
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    description: Connector Error with error code and message.
                    properties:
                      code:
                        type: integer
                        description: Error code for the type of error
                      message:
                        type: string
                        description: Human readable error message
                title: connect.v1.ConnectorError
              example:
                error:
                  code: 400
                  message: Bad Request
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    description: Connector Error with error code and message.
                    properties:
                      code:
                        type: integer
                        description: Error code for the type of error
                      message:
                        type: string
                        description: Human readable error message
                title: connect.v1.ConnectorError
              example:
                error:
                  code: 401
                  message: Unauthorized
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    description: Connector Error with error code and message.
                    properties:
                      code:
                        type: integer
                        description: Error code for the type of error
                      message:
                        type: string
                        description: Human readable error message
                title: connect.v1.ConnectorError
              example:
                error:
                  code: 404
                  message: account not found
        '429':
          description: Rate Limit Exceeded
          headers:
            X-Request-Id:
              schema:
                type: string
              description: The unique identifier for the API request.
            X-RateLimit-Limit:
              schema:
                type: integer
              description: The maximum number of requests you're permitted to make per time period.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: The number of requests remaining in the current rate limit window.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: "The relative time in seconds until the current rate-limit window resets. \
                \ \n  \n**Important:** This differs from Github and Twitter's same-named header which\
                \ uses UTC epoch seconds. We use relative time to avoid client/server time synchronization\
                \ issues."
            Retry-After:
              schema:
                type: integer
              description: The number of seconds to wait until the rate limit window resets. Only sent
                when the rate limit is reached.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_code:
                    type: integer
                  message:
                    type: string
              example:
                error_code: 500
                message: Failed to find any class that implements Connector and which name matches io.confluent.connect.<connector-class>...
      parameters:
      - name: connector_name
        in: path
        schema:
          type: string
        required: true
        description: The unique name of the connector.
      - name: environment_id
        in: path
        schema:
          type: string
        required: true
        description: The unique identifier of the environment this resource belongs to.
      - name: kafka_cluster_id
        in: path
        schema:
          type: string
        required: true
        description: The unique identifier for the Kafka cluster.
      servers:
      - url: https://api.confluent.cloud
        description: Confluent Cloud API
      jsonRequestBodyExample:
        connector.class: string
        name: string
        kafka.api.key: string
        kafka.api.secret: string
        confluent.connector.type: CUSTOM
        confluent.custom.plugin.id: ccp-lq5m06
        confluent.custom.connection.endpoints: string
        confluent.custom.schema.registry.auto: 'FALSE'
        confluent.custom.connect.plugin.runtime: 3.9.0
        confluent.custom.connect.java.version: '17'