mmv1/products/managedkafka/ConnectCluster.yaml (137 lines of code) (raw):
# Copyright 2025 Google Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
name: 'ConnectCluster'
description: A Managed Service for Kafka Connect cluster.
min_version: 'beta'
docs:
id_format: 'projects/{{project}}/locations/{{location}}/connectClusters/{{connect_cluster_id}}'
base_url: 'projects/{{project}}/locations/{{location}}/connectClusters'
self_link: 'projects/{{project}}/locations/{{location}}/connectClusters/{{connect_cluster_id}}'
create_url: 'projects/{{project}}/locations/{{location}}/connectClusters?connectClusterId={{connect_cluster_id}}'
update_verb: 'PATCH'
update_mask: true
import_format:
- 'projects/{{project}}/locations/{{location}}/connectClusters/{{connect_cluster_id}}'
timeouts:
insert_minutes: 60
update_minutes: 30
delete_minutes: 30
autogen_async: true
async:
actions: ['create', 'delete', 'update']
type: 'OpAsync'
operation:
base_url: '{{op_id}}'
timeouts:
result:
resource_inside_response: true
custom_code:
examples:
- name: 'managedkafka_connect_cluster_basic'
primary_resource_id: 'example'
min_version: 'beta'
vars:
connect_cluster_id: 'my-connect-cluster'
cluster_id: 'my-cluster'
secondary_subnet_id: 'my-secondary-subnetwork'
test_env_vars:
org_id: 'ORG_ID'
billing_account: 'BILLING_ACCT'
external_providers: ["time"]
parameters:
- name: 'location'
type: String
description: "ID of the location of the Kafka Connect resource. See
https://cloud.google.com/managed-kafka/docs/locations for a list of
supported locations."
required: true
immutable: true
url_param_only: true
- name: 'connectClusterId'
type: String
description: "The ID to use for the Connect Cluster, which will become the final
component of the connect cluster's name. This value is structured like: `my-connect-cluster-id`."
url_param_only: true
required: true
immutable: true
properties:
- name: 'name'
type: String
description: "The name of the connect cluster. Structured like: `projects/PROJECT_ID/locations/LOCATION/connectClusters/CONNECT_CLUSTER_ID`."
output: true
- name: 'kafkaCluster'
type: String
description: "The name of the Kafka cluster this Kafka Connect cluster is attached to. Structured like: `projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID`."
required: true
- name: 'createTime'
type: String
description: "The time when the cluster was created."
output: true
- name: 'updateTime'
type: String
description: "The time when the cluster was last updated."
output: true
- name: 'labels'
type: KeyValueLabels
description: "List of label KEY=VALUE pairs to add. Keys must start with a lowercase
character and contain only hyphens (-), underscores (\_), lowercase
characters, and numbers. Values must contain only hyphens (-),
underscores (\_), lowercase characters, and numbers."
- name: 'capacityConfig'
type: NestedObject
description: "A capacity configuration of a Kafka cluster."
required: true
properties:
- name: vcpuCount
type: String
description: "The number of vCPUs to provision for the cluster. The minimum is 3."
required: true
- name: memoryBytes
type: String
description: "The memory to provision for the cluster in bytes. The CPU:memory ratio (vCPU:GiB) must be between 1:1 and 1:8. Minimum: 3221225472 (3 GiB)."
required: true
- name: 'gcpConfig'
type: NestedObject
description: "Configuration properties for a Kafka Connect cluster deployed to Google Cloud Platform."
required: true
properties:
- name: 'accessConfig'
type: NestedObject
description: "The configuration of access to the Kafka Connect cluster."
required: true
properties:
- name: 'networkConfigs'
type: Array
description: "Virtual Private Cloud (VPC) subnets where IP addresses for the Kafka Connect
cluster are allocated. To make the connect cluster available in a VPC, you must specify at least
one subnet per network. You must specify between 1 and 10 subnets.
Additional subnets may be specified with additional `network_configs` blocks."
required: true
item_type:
type: NestedObject
properties:
- name: 'primarySubnet'
type: String
description: "VPC subnet to make available to the Kafka Connect cluster. Structured like: projects/{project}/regions/{region}/subnetworks/{subnet_id}.
It is used to create a Private Service Connect (PSC) interface for the Kafka Connect workers. It must be located in the same region as the
Kafka Connect cluster. The CIDR range of the subnet must be within the IPv4 address ranges for private networks, as specified in RFC 1918.
The primary subnet CIDR range must have a minimum size of /22 (1024 addresses)."
required: true
diff_suppress_func: 'tpgresource.ProjectNumberDiffSuppress'
- name: 'additionalSubnets'
type: Array
description: "Additional subnets may be specified. They may be in another region, but must be in the
same VPC network. The Connect workers can communicate with
network endpoints in either the primary or additional subnets."
item_type:
type: String
- name: 'dnsDomainNames'
type: Array
description: "Additional DNS domain names from the subnet's network to be made visible to the Connect Cluster. When using
MirrorMaker2, it's necessary to add the bootstrap address's dns domain name of the target cluster to make it visible to
the connector. For example: my-kafka-cluster.us-central1.managedkafka.my-project.cloud.goog"
item_type:
type: String
- name: 'state'
type: String
description: "The current state of the connect cluster. Possible values: `STATE_UNSPECIFIED`, `CREATING`, `ACTIVE`, `DELETING`."
output: true