openapi: 3.2.0 info: title: Confluent Cloud Managed Connector Plugins (connect/v1) API version: '' x-api-id: 46234552-5833-42eb-ba0f-883ad3f70d2b x-audience: external-public x-logo: url: https://assets.confluent.io/m/1661ef5e4ff82d3d/ description: '# Introduction Note This documents the collection of Confluent Cloud APIs.' servers: - url: https://api.confluent.cloud description: Confluent Cloud API tags: - name: Managed Connector Plugins (connect/v1) description: '![General Availability](#section/Versioning/API-Lifecycle-Policy) API for Managed connectors in Confluent Cloud.' paths: /connect/v1/environments/{environment_id}/clusters/{kafka_cluster_id}/connector-plugins: x-lifecycle-stage: General Availability parameters: - 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. get: x-lifecycle-stage: General Availability operationId: listConnectv1ConnectorPlugins description: '![General Availability](#section/Versioning/API-Lifecycle-Policy) Return a list of Managed Connector plugins installed in the Kafka Connect cluster.' summary: List of Managed Connector plugins tags: - Managed Connector Plugins (connect/v1) security: - cloud-api-key: [] - confluent-sts-access-token: [] responses: '200': description: Connector Plugin. content: application/json: schema: type: array items: type: object properties: class: type: string description: The connector class name. E.g. BigQuerySink. type: type: string description: Type of connector, sink or source. enum: - sink - source version: type: string description: The version string for the connector available. required: - class - type example: - class: BigQuerySink type: sink - class: KinesisSource type: source version: 0.1.0 - class: PostgresSource type: source version: 0.1.0 - class: S3_SINK type: sink - class: GcsSink type: sink version: 0.2.0 '401': $ref: '#/components/responses/connect.v1.UnauthenticatedError' '404': $ref: '#/components/responses/connect.v1.ResourceNotFoundError' '429': $ref: '#/components/responses/RateLimitError' '500': $ref: '#/components/responses/connect.v1.DefaultSystemError' parameters: [] /connect/v1/environments/{environment_id}/clusters/{kafka_cluster_id}/connector-plugins/{plugin_name}/config/validate: x-lifecycle-stage: General Availability parameters: - name: plugin_name in: path schema: type: string required: true description: The unique name of the connector plugin. - 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. put: x-lifecycle-stage: General Availability operationId: validateConnectv1ConnectorPlugin description: '![General Availability](#section/Versioning/API-Lifecycle-Policy) Validate the provided configuration values against the configuration definition. This API performs per config validation and returns suggested values and validation error messages.' summary: Validate a Managed Connector Plugin tags: - Managed Connector Plugins (connect/v1) security: - cloud-api-key: [] - confluent-sts-access-token: [] responses: '200': description: Connector Plugin. content: application/json: schema: type: object properties: name: type: string description: The class name of the connector plugin. groups: type: array description: The list of groups used in configuration definitions. items: type: string error_count: type: integer description: The total number of errors encountered during configuration validation. configs: type: array items: type: object properties: definition: type: object description: The definition for a config in the connector plugin, which includes the name, type, importance, etc. properties: name: type: string description: The name of the configuration type: type: string enum: - NONE - BOOLEAN - INT - SHORT - LONG - DOUBLE - STRING - LIST - ENUM - PASSWORD description: The config types required: type: boolean description: Whether this configuration is required default_value: type: string description: Default value for this configuration importance: type: string enum: - NONE - HIGH - MEDIUM - LOW description: The importance level for a configuration documentation: type: string description: The documentation for the configuration group: type: string description: The UI group to which the configuration belongs to width: type: string enum: - NONE - SHORT - MEDIUM - LONG description: The width of a configuration value display_name: type: string dependents: type: array description: Other configurations on which this configuration is dependent items: type: string order: type: integer description: The order of configuration in specified group alias: type: string value: type: object description: The current value for a config, which includes the name, value, recommended values, etc. properties: name: type: string description: The name of the configuration value: type: string description: The value for the configuration recommended_values: type: array description: The list of valid values for the configuration items: type: string errors: type: array description: Errors, if any, in the configuration value items: type: string visible: type: boolean description: 'The visibility of the configuration. Based on the values of other configuration fields, this visibility boolean value points out if the current field should be visible or not.' metadata: type: object description: 'Map of metadata details about the connector configuration, such as type of input, etc.' example: name: io.confluent.connect.gcs.GcsSinkConnector groups: - Organize my data by... - Which topics do you want to get data from? - Messages - How should we connect to your data? - Google Cloud Storage details - Kafka Cluster credentials - Number of tasks for this connector error_count: 1 configs: - definition: name: name type: STRING required: true default_value: '' importance: HIGH documentation: Sets a name for your connector. group: How should we connect to your data? width: NONE display_name: Connector name dependents: [] order: 2 alias: '' value: name: name value: '{{.logicalClusterId}}' recommended_values: [] errors: [] visible: true metadata: {} - definition: name: connector.class type: STRING required: true default_value: '' importance: HIGH documentation: '' group: How should we connect to your data? width: NONE display_name: Connector class dependents: [] order: 1 alias: '' value: name: connector.class value: io.confluent.connect.gcs.GcsSinkConnector recommended_values: [] errors: [] visible: true metadata: {} - definition: name: kafka.api.key type: PASSWORD required: true default_value: '' importance: HIGH documentation: '' group: Kafka Cluster credentials width: NONE display_name: Kafka API Key dependents: [] order: 1 alias: '' value: name: kafka.api.key value: '' recommended_values: [] errors: [] visible: true metadata: {} - definition: name: kafka.api.secret type: PASSWORD required: true default_value: '' importance: HIGH documentation: '' group: Kafka Cluster credentials width: NONE display_name: Kafka API Secret dependents: - kafka.api.key order: 2 alias: '' value: name: kafka.api.secret value: '' recommended_values: [] errors: [] visible: true metadata: {} - definition: name: topics type: LIST required: true default_value: '' importance: HIGH documentation: Identifies the topic name or a comma-separated list of topic names. group: Which topics do you want to get data from? width: NONE display_name: Topic names dependents: [] order: 1 alias: '' value: name: topics value: test1 recommended_values: [] errors: [] visible: true metadata: {} - definition: name: data.format type: STRING required: true default_value: '' importance: HIGH documentation: Sets the input/output message format. Valid entries are AVRO, JSON, or BYTES group: Messages width: NONE display_name: Message format dependents: [] order: 1 alias: '' value: name: data.format value: BYTES recommended_values: - BYTES - JSON - AVRO errors: [] visible: true metadata: {} - definition: name: gcs.credentials.config type: PASSWORD required: true default_value: '' importance: HIGH documentation: Contents of the downloaded GCP service account JSON file. group: Google Cloud Storage details width: NONE display_name: Google Cloud Storage credentials. dependents: [] order: 1 alias: '' value: name: gcs.credentials.config value: '' recommended_values: [] errors: [] visible: true metadata: {} - definition: name: gcs.bucket.name type: STRING required: true default_value: '' importance: HIGH documentation: A Google Cloud Storage bucket must be in the same region as your Confluent Cloud cluster. group: Google Cloud Storage details width: NONE display_name: Bucket name. dependents: [] order: 2 alias: '' value: name: gcs.bucket.name value: gmagare recommended_values: [] errors: [] visible: true metadata: {} - definition: name: time.interval type: STRING required: true default_value: '' importance: HIGH documentation: Sets how your messages grouped in storage. Valid entries are DAILY or HOURLY. group: Organize my data by... width: NONE display_name: Time interval dependents: [] order: 1 alias: '' value: name: time.interval value: DAILY recommended_values: - DAILY - HOURLY errors: [] visible: true metadata: {} - definition: name: tasks.max type: INT required: true default_value: '' importance: HIGH documentation: '' group: Number of tasks for this connector width: NONE display_name: Tasks dependents: [] order: 1 alias: '' value: name: tasks.max value: '1' recommended_values: [] errors: [] visible: true metadata: {} - definition: name: flush.size type: INT required: true default_value: '1000' importance: HIGH documentation: This value defaults to 1000. For example, if you use the default setting of 1000 and your topic has six partitions, files start to be created in the storage bucket after more than 1000 records exist in each partition. Note that the default value of 1000 can be increased if needed. group: Organize my data by... width: NONE display_name: Flush size dependents: [] order: 2 alias: '' value: name: flush.size value: '1' recommended_values: [] errors: - '"flush.size" should be greater than or equal to 1000' visible: true metadata: {} '401': $ref: '#/components/responses/connect.v1.UnauthenticatedError' '404': $ref: '#/components/responses/connect.v1.ResourceNotFoundError' '429': $ref: '#/components/responses/RateLimitError' '500': $ref: '#/components/responses/connect.v1.DefaultSystemError' requestBody: content: application/json: schema: type: object description: Configuration parameters for the connector. All values should be strings. additionalProperties: type: string description: Other configuration parameters for the connector. All values should be strings. See the connector's docs for the list of options. example: cloud.environment: prod cloud.provider: aws connector.class: GcsSink data.format: BYTES flush.size: '500' 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 description: Configuration parameters for the connector. All values should be strings. ? /connect/v1/environments/{environment_id}/clusters/{kafka_cluster_id}/connector-plugins/{plugin_name}/config/translate?mask_sensitive=true : x-lifecycle-stage: General Availability parameters: - name: plugin_name in: path schema: type: string required: true description: The unique name of the connector plugin. - 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. - name: mask_sensitive in: query required: false schema: type: string maxLength: 255 description: Indicates whether to redact sensitive config values in response. put: x-lifecycle-stage: General Availability operationId: translateConnectv1ConnectorPlugin description: '![General Availability](#section/Versioning/API-Lifecycle-Policy) Translate the provided Self Managed configuration values. This API performs configuration translation and returns the translated fully managed configuration along with any errors or warnings. Query Parameter `mask_sensitive=true` redacts sensitive config values in response.' summary: Translate Self Managed Connector Plugin Configurations to Fully Managed… tags: - Managed Connector Plugins (connect/v1) security: - cloud-api-key: [] - confluent-sts-access-token: [] requestBody: content: application/json: schema: type: object description: Configuration parameters for the self managed connector. All values should be strings. additionalProperties: type: string description: Configuration parameters for the self managed connector. All values should be strings. See the self managed connector's docs for the list of options. example: topics: nidhi_topic input.data.format: JSON connector.class: io.confluent.connect.datadog.metrics.DatadogMetricsSinkConnector name: DatadogMetricsSinkConnector_87 datadog.api.key: 535069c094cdfd1a55fb3e80eba09241 datadog.domain: COM max.retry.time.ms: '5000' behavior.on.error: log tasks.max: '1' errors.tolerance: all errors.deadletterqueue.context.headers.enable: 'true' errors.log.include.messages: 'true' errors.log.enable: 'true' reporter.bootstrap.servers: localhost:9092 reporter.error.topic.replication.factor: '1' confluent.topic.bootstrap.servers: localhost:9092 confluent.topic.replication.factor: '1' description: Configuration parameters for the connector. All values should be strings. responses: '200': description: Connector Plugin translation result. content: application/json: schema: type: object properties: config: type: object description: The translated configuration additionalProperties: type: string errors: type: array description: List of configuration errors items: type: object properties: field: type: string description: The field name that has an error message: type: string description: The error message required: - field - message warnings: type: array description: List of configuration warnings items: type: object properties: field: type: string description: The field name that has a warning message: type: string description: The warning message required: - field - message example: config: connector.class: DatadogMetricsSink name: DatadogMetricsSinkConnector_87 topics: nidhi_topic datadog.api.key: '****************' datadog.domain: COM max.retry.time.ms: '5000' behavior.on.error: log tasks.max: '1' errors.tolerance: all errors.deadletterqueue.context.headers.enable: 'true' errors.log.include.messages: 'true' errors.log.enable: 'true' confluent.topic.bootstrap.servers: localhost:9092 input.data.format: JSON max.poll.interval.ms: '300000' max.poll.records: '500' errors: - field: datadog.site message: Required config is missing. warnings: - field: confluent.topic.bootstrap.servers message: Customer given value is ignored. Default value is used. - field: reporter.error.topic.replication.factor message: Customer given value is ignored. Default value is used. - field: confluent.topic.replication.factor message: Customer given value is ignored. Default value is used. '400': $ref: '#/components/responses/connect.v1.BadRequestError' '401': $ref: '#/components/responses/connect.v1.UnauthenticatedError' '403': $ref: '#/components/responses/connect.v1.ForbiddenError' '404': $ref: '#/components/responses/connect.v1.ResourceNotFoundError' '429': $ref: '#/components/responses/RateLimitError' '500': $ref: '#/components/responses/connect.v1.DefaultSystemError' components: responses: connect.v1.DefaultSystemError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/connect.v1.ConnectorError' example: error: code: 500 message: Oops, something went wrong connect.v1.ForbiddenError: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/connect.v1.ConnectorError' example: error: code: 403 message: Forbidden connect.v1.BadRequestError: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/connect.v1.ConnectorError' example: error: code: 400 message: Bad Request connect.v1.ResourceNotFoundError: description: Not Found content: application/json: schema: $ref: '#/components/schemas/connect.v1.ConnectorError' example: error: code: 404 message: resource not found connect.v1.UnauthenticatedError: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/connect.v1.ConnectorError' example: error: code: 401 message: Unauthorized RateLimitError: 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. schemas: connect.v1.ConnectorError: 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 securitySchemes: cloud-api-key: type: http scheme: basic description: Authenticate with Cloud API Keys using HTTP Basic Auth. Treat the Cloud API Key ID as the username and Cloud API Key Secret as the password. confluent-sts-access-token: type: oauth2 description: Authenticate with Confluent API using this credentials (JSON Web Tokens) following OAuth 2.0. flows: clientCredentials: tokenUrl: https://api.confluent.cloud/sts/v1/oauth2/token scopes: {} global-api-key: type: http scheme: basic description: Authenticate with Global API Keys using HTTP Basic Auth. Treat the Global API Key ID as the username and Global API Key Secret as the password. resource-api-key: type: http scheme: basic description: Authenticate with resource-specific API Keys using HTTP Basic Auth. Treat the resource-specific API Key ID as the username and resource-specific API Key Secret as the password. external-access-token: type: oauth2 description: Authenticate with Confluent API using this credentials (JSON Web Tokens) following OAuth 2.0. flows: clientCredentials: tokenUrl: https://api.confluent.cloud/sts/v1/oauth2/token scopes: {} oauth: type: oauth2 description: Authenticate with OAuth 2.0. Currently this is only supported for partner APIs. flows: clientCredentials: tokenUrl: /oauth2/token scopes: partner:alter: enables partners to alter entitlements partner:create: enables partners to create entitlements and signup on behalf of customers partner:delete: enables partners to delete entitlements and organizations partner:describe: enables partners to read and list entitlements and organizations x-tagGroups: - name: Identity Access Management (v2) tags: - API Keys (iam/v2) - Users (iam/v2) - Service Accounts (iam/v2) - Invitations (iam/v2) - IP Groups (iam/v2) - IP Filters (iam/v2) - IP Filter Summaries (iam/v2) - Role Bindings (iam/v2) - Identity Providers (iam/v2) - Jwks (iam/v2) - Identity Pools (iam/v2) - Group Mappings (iam/v2/sso) - Certificate Authorities (iam/v2) - Certificate Identity Pools (iam/v2) - name: Org API (v2) tags: - Environments (org/v2) - Organizations (org/v2) - name: Notifications API (v1) tags: - Subscriptions (notifications/v1) - Integrations (notifications/v1) - Notification Types (notifications/v1) - Resource Preferences (notifications/v1) - Resource Subscriptions (notifications/v1) - User Notifications (notifications/v1) - name: Cluster Mgmt for Kafka (v2) tags: - Clusters (cmk/v2) - name: Cluster Mgmt for ksqlDB (v2) tags: - Clusters (ksqldbcm/v2) - name: Connect API (v1) tags: - Connectors (connect/v1) - Lifecycle (connect/v1) - Status (connect/v1) - Managed Connector Plugins (connect/v1) - Offsets (connect/v1) - Custom Connector Plugins (connect/v1) - Presigned Urls (connect/v1) - Custom Connector Runtimes (connect/v1) - name: Connect Artifact Management (v1) tags: - Connect Artifacts (cam/v1) - Presigned Urls (cam/v1) - name: Kafka API (v3) tags: - Cluster (v3) - Configs (v3) - ACL (v3) - Consumer Group (v3) - Partition (v3) - Topic (v3) - Records (v3) - Cluster Linking (v3) - Share Group (v3) - Streams Group (v3) - name: Service Quota API (v1) tags: - Applied Quotas (service-quota/v1) - Scopes (service-quota/v1) - name: Partner API (v2) tags: - Entitlements (partner/v2) - Organizations (partner/v2) - Signup (partner/v2) - name: Cluster Mgmt for Schema Registry (v2) tags: - Regions (srcm/v2) - Clusters (srcm/v2) - name: Cluster Mgmt for Schema Registry (v3) tags: - Clusters (srcm/v3) - name: Schema Registry API (v1) tags: - Compatibility (v1) - Config (v1) - Contexts (v1) - Exporters (v1) - Modes (v1) - Schemas (v1) - Subjects (v1) - Key Encryption Keys (v1) - Data Encryption Keys (v1) - name: Catalog API (v1) tags: - Entity (v1) - Search (v1) - Types (v1) - name: Stream Sharing API (v1) tags: - Provider Shared Resources (cdx/v1) - Provider Shares (cdx/v1) - Consumer Shared Resources (cdx/v1) - Consumer Shares (cdx/v1) - Shared Tokens (cdx/v1) - Opt Ins (cdx/v1) - name: Networking (v1) tags: - Networks (networking/v1) - Peerings (networking/v1) - Transit Gateway Attachments (networking/v1) - Private Link Accesses (networking/v1) - Network Link Services (networking/v1) - Network Link Endpoints (networking/v1) - Network Link Service Associations (networking/v1) - IP Addresses (networking/v1) - Private Link Attachments (networking/v1) - Private Link Attachment Connections (networking/v1) - DNS Forwarders (networking/v1) - Access Points (networking/v1) - DNS Records (networking/v1) - Gateways (networking/v1) - name: Security Token Service (v1) tags: - OAuth Tokens (sts/v1) - name: Kafka Quota (v1) tags: - Client Quotas (kafka-quotas/v1) - name: Bring Your Own Key (BYOK) Management (v1) tags: - Keys (byok/v1) - name: Billing API (v1) tags: - Costs (billing/v1) - name: Compute Pool Mgmt for Flink (v2) tags: - Compute Pools (fcpm/v2) - Regions (fcpm/v2) - Org Compute Pool Configs (fcpm/v2) - name: SQL API (v1) tags: - Statements (sql/v1) - Statement Results (sql/v1) - Statement Exceptions (sql/v1) - Connections (sql/v1) - Agents (sql/v1) - Tools (sql/v1) - Materialized Tables (sql/v1) - Materialized Table Versions (sql/v1) - name: Provider Integration Management (v1) tags: - Integrations (pim/v1) - name: Provider Integration Management (v2) tags: - Integrations (pim/v2) - name: Artifact API (v1) tags: - Flink Artifacts (artifact/v1) - Presigned Urls (artifact/v1) - Flink Artifact Versions (artifact/v1) - name: Custom Code Logging API (v1) tags: - Custom Code Loggings (ccl/v1) - name: Tableflow (v1) tags: - Regions (tableflow/v1) - Tableflow Topics (tableflow/v1) - Catalog Integrations (tableflow/v1) - name: Custom Connect Plugin Management (v1) tags: - Custom Connect Plugins (ccpm/v1) - Presigned Urls (ccpm/v1) - Custom Connect Plugin Versions (ccpm/v1) - name: Unified Stream Manager (v1) tags: - Kafka Clusters (usm/v1) - Connect Clusters (usm/v1) - name: Endpoint (v1) tags: - Endpoints (endpoint/v1) - name: Real Time Context Engine (v1) tags: - Rtce Topics (rtce/v1) - Regions (rtce/v1) - name: Analytics (v1alpha1) tags: - Statements (query/v1alpha1)