mirror_topics
Creates, updates, deletes, gets or lists a mirror_topics resource.
Overview
| Name | mirror_topics |
| Type | Resource |
| Id | confluent.kafka.mirror_topics |
Fields
The following fields are returned by SELECT queries:
- read_kafka_mirror_topic
- list_kafka_mirror_topics_under_link
- list_kafka_mirror_topics
Metadata of the mirror topic
| Name | Datatype | Description |
|---|---|---|
link_name | string | |
mirror_topic_name | string | |
source_topic_name | string | |
kind | string | |
metadata | object | |
mirror_lags | array | |
mirror_state_transition_errors | array | |
mirror_status | string | (ACTIVE, FAILED, LINK_FAILED, LINK_PAUSED, PAUSED, PENDING_STOPPED, SOURCE_UNAVAILABLE, STOPPED, PENDING_MIRROR, PENDING_SYNCHRONIZE, PENDING_SETUP_FOR_RESTORE, PENDING_RESTORE) |
mirror_topic_error | string | |
num_partitions | integer | |
state_time_ms | integer (int64) |
Metadata of mirror topics
| Name | Datatype | Description |
|---|---|---|
link_name | string | |
mirror_topic_name | string | |
source_topic_name | string | |
kind | string | |
metadata | object | |
mirror_lags | array | |
mirror_state_transition_errors | array | |
mirror_status | string | (ACTIVE, FAILED, LINK_FAILED, LINK_PAUSED, PAUSED, PENDING_STOPPED, SOURCE_UNAVAILABLE, STOPPED, PENDING_MIRROR, PENDING_SYNCHRONIZE, PENDING_SETUP_FOR_RESTORE, PENDING_RESTORE) |
mirror_topic_error | string | |
num_partitions | integer | |
state_time_ms | integer (int64) |
Metadata of mirror topics
| Name | Datatype | Description |
|---|---|---|
link_name | string | |
mirror_topic_name | string | |
source_topic_name | string | |
kind | string | |
metadata | object | |
mirror_lags | array | |
mirror_state_transition_errors | array | |
mirror_status | string | (ACTIVE, FAILED, LINK_FAILED, LINK_PAUSED, PAUSED, PENDING_STOPPED, SOURCE_UNAVAILABLE, STOPPED, PENDING_MIRROR, PENDING_SYNCHRONIZE, PENDING_SETUP_FOR_RESTORE, PENDING_RESTORE) |
mirror_topic_error | string | |
num_partitions | integer | |
state_time_ms | integer (int64) |
Methods
The following methods are available for this resource:
Parameters
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
cloud_provider | string | Cloud provider, lowercase: aws, gcp, or azure (from the cluster spec.cloud). (default: cloud) |
cluster_id | string | The Kafka cluster ID. (example: cluster-1) |
kafka_endpoint_id | string | Per-cluster Kafka REST endpoint ID (the pkc-* host prefix from the Confluent UI Cluster -> Overview -> REST endpoint, or extract from confluent.managed_kafka_clusters.clusters spec.http_endpoint). (default: pkc-00000) |
link_name | string | The link name (example: link-sb1) |
mirror_topic_name | string | Cluster Linking mirror topic name (example: topic-1) |
region | string | Cloud region the cluster runs in, e.g. ap-southeast-2 (from the cluster spec.region). (default: region) |
include_partition_level_truncation_data | boolean | Whether to include partition level truncation information when truncating and restoring a topic in the response. Default: false (example: false) |
include_state_transition_errors | boolean | Whether to include mirror state transition errors in the response. Default: false (example: false) |
mirror_status | string | The status of the mirror topic. If not specified, all mirror topics will be returned. (example: ACTIVE) |
validate_only | boolean | To validate the action can be performed successfully or not. Default: false (example: false) |
SELECT examples
- read_kafka_mirror_topic
- list_kafka_mirror_topics_under_link
- list_kafka_mirror_topics
SELECT
link_name,
mirror_topic_name,
source_topic_name,
kind,
metadata,
mirror_lags,
mirror_state_transition_errors,
mirror_status,
mirror_topic_error,
num_partitions,
state_time_ms
FROM confluent.kafka.mirror_topics
WHERE cluster_id = '{{ cluster_id }}' -- required
AND link_name = '{{ link_name }}' -- required
AND mirror_topic_name = '{{ mirror_topic_name }}' -- required
AND kafka_endpoint_id = '{{ kafka_endpoint_id }}' -- required
AND region = '{{ region }}' -- required
AND cloud_provider = '{{ cloud_provider }}' -- required
AND include_state_transition_errors = '{{ include_state_transition_errors }}'
;
List all mirror topics under the link
SELECT
link_name,
mirror_topic_name,
source_topic_name,
kind,
metadata,
mirror_lags,
mirror_state_transition_errors,
mirror_status,
mirror_topic_error,
num_partitions,
state_time_ms
FROM confluent.kafka.mirror_topics
WHERE cluster_id = '{{ cluster_id }}' -- required
AND link_name = '{{ link_name }}' -- required
AND kafka_endpoint_id = '{{ kafka_endpoint_id }}' -- required
AND region = '{{ region }}' -- required
AND cloud_provider = '{{ cloud_provider }}' -- required
AND mirror_status = '{{ mirror_status }}'
;
List all mirror topics in the cluster
SELECT
link_name,
mirror_topic_name,
source_topic_name,
kind,
metadata,
mirror_lags,
mirror_state_transition_errors,
mirror_status,
mirror_topic_error,
num_partitions,
state_time_ms
FROM confluent.kafka.mirror_topics
WHERE cluster_id = '{{ cluster_id }}' -- required
AND kafka_endpoint_id = '{{ kafka_endpoint_id }}' -- required
AND region = '{{ region }}' -- required
AND cloud_provider = '{{ cloud_provider }}' -- required
AND mirror_status = '{{ mirror_status }}'
;
INSERT examples
- create_kafka_mirror_topic
- Manifest
Create a topic in the destination cluster mirroring a topic in
the source cluster
INSERT INTO confluent.kafka.mirror_topics (
source_topic_name,
mirror_topic_name,
replication_factor,
configs,
cluster_id,
link_name,
kafka_endpoint_id,
region,
cloud_provider
)
SELECT
'{{ source_topic_name }}' /* required */,
'{{ mirror_topic_name }}',
{{ replication_factor }},
'{{ configs }}',
'{{ cluster_id }}',
'{{ link_name }}',
'{{ kafka_endpoint_id }}',
'{{ region }}',
'{{ cloud_provider }}'
;
# Description fields are for documentation purposes
- name: mirror_topics
props:
- name: cluster_id
value: "{{ cluster_id }}"
description: Required parameter for the mirror_topics resource.
- name: link_name
value: "{{ link_name }}"
description: Required parameter for the mirror_topics resource.
- name: kafka_endpoint_id
value: "{{ kafka_endpoint_id }}"
description: Required parameter for the mirror_topics resource.
- name: region
value: "{{ region }}"
description: Required parameter for the mirror_topics resource.
- name: cloud_provider
value: "{{ cloud_provider }}"
description: Required parameter for the mirror_topics resource.
- name: source_topic_name
value: "{{ source_topic_name }}"
- name: mirror_topic_name
value: "{{ mirror_topic_name }}"
- name: replication_factor
value: {{ replication_factor }}
- name: configs
value:
- name: "{{ name }}"
value: "{{ value }}"
Lifecycle Methods
- update_kafka_mirror_topics_promote
- update_kafka_mirror_topics_failover
- update_kafka_mirror_topics_pause
- update_kafka_mirror_topics_resume
- update_kafka_mirror_topics_reverse_and_start_mirror
- update_kafka_mirror_topics_reverse_and_pause_mirror
- update_kafka_mirror_topics_truncate_and_restore_mirror
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_promote
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_failover
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_pause
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_resume
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_reverse_and_start_mirror
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_reverse_and_pause_mirror
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;
EXEC confluent.kafka.mirror_topics.update_kafka_mirror_topics_truncate_and_restore_mirror
@cluster_id='{{ cluster_id }}' --required,
@link_name='{{ link_name }}' --required,
@kafka_endpoint_id='{{ kafka_endpoint_id }}' --required,
@region='{{ region }}' --required,
@cloud_provider='{{ cloud_provider }}' --required,
@include_partition_level_truncation_data={{ include_partition_level_truncation_data }},
@validate_only={{ validate_only }}
@@json=
'{
"mirror_topic_names": "{{ mirror_topic_names }}",
"mirror_topic_name_pattern": "{{ mirror_topic_name_pattern }}"
}'
;