Skip to content

create_topic async

create_topic(
    cluster_arn: __string,
    *,
    config_overrides: Optional[AsyncKafkaClientConfig] = None,
    topic_name: Optional[__string] = None,
    partition_count: Optional[__integerMin1] = None,
    replication_factor: Optional[__integerMin1] = None,
    configs: Optional[__string] = None,
) -> CreateTopicResponse

Creates a topic in the specified MSK cluster.

Parameters:

  • cluster_arn (__string) –

    The Amazon Resource Name (ARN) that uniquely identifies the cluster.

  • topic_name (Optional[__string], default: None ) –

    The name of the topic to create.

  • partition_count (Optional[__integerMin1], default: None ) –

    The number of partitions for the topic.

  • replication_factor (Optional[__integerMin1], default: None ) –

    The replication factor for the topic.

  • configs (Optional[__string], default: None ) –

    Topic configurations encoded as a Base64 string.

Raises:

Source code in docs_src/capo_kafka/_services/async_kafka.py
async def create_topic(
    self,
    cluster_arn: "capo_kafka.types.__string.__string",
    *,
    config_overrides: Optional[AsyncKafkaClientConfig] = None,
    topic_name: Optional["capo_kafka.types.__string.__string"] = None,
    partition_count: Optional[
        "capo_kafka.types.__integer_min1.__integerMin1"
    ] = None,
    replication_factor: Optional[
        "capo_kafka.types.__integer_min1.__integerMin1"
    ] = None,
    configs: Optional["capo_kafka.types.__string.__string"] = None,
) -> "capo_kafka.types.create_topic_response.CreateTopicResponse":
    """<p>Creates a topic in the specified MSK cluster.</p>

    Args:
        cluster_arn: <p>The Amazon Resource Name (ARN) that uniquely identifies the cluster.</p>
        topic_name: <p>The name of the topic to create.</p>
        partition_count: <p>The number of partitions for the topic.</p>
        replication_factor: <p>The replication factor for the topic.</p>
        configs: <p>Topic configurations encoded as a Base64 string.</p>

    Raises:
        capo_kafka.errors.bad_request_exception.BadRequestException: <p>Returns information about an error.</p>
        capo_kafka.errors.cluster_connectivity_exception.ClusterConnectivityException: <p>Returns information about an error.</p>
        capo_kafka.errors.conflict_exception.ConflictException: <p>Returns information about an error.</p>
        capo_kafka.errors.controller_moved_exception.ControllerMovedException: <p>Returns information about an error.</p>
        capo_kafka.errors.forbidden_exception.ForbiddenException: <p>Returns information about an error.</p>
        capo_kafka.errors.group_subscribed_to_topic_exception.GroupSubscribedToTopicException: <p>Returns information about an error.</p>
        capo_kafka.errors.internal_server_error_exception.InternalServerErrorException: <p>Returns information about an error.</p>
        capo_kafka.errors.kafka_request_exception.KafkaRequestException: <p>Returns information about an error.</p>
        capo_kafka.errors.kafka_timeout_exception.KafkaTimeoutException: <p>Returns information about an error.</p>
        capo_kafka.errors.not_controller_exception.NotControllerException: <p>Returns information about an error.</p>
        capo_kafka.errors.reassignment_in_progress_exception.ReassignmentInProgressException: <p>Returns information about an error.</p>
        capo_kafka.errors.service_unavailable_exception.ServiceUnavailableException: <p>Returns information about an error.</p>
        capo_kafka.errors.too_many_requests_exception.TooManyRequestsException: <p>Returns information about an error.</p>
        capo_kafka.errors.topic_exists_exception.TopicExistsException: <p>Returns information about an error.</p>
        capo_kafka.errors.unauthorized_exception.UnauthorizedException: <p>Returns information about an error.</p>
        capo_kafka.errors.unknown_topic_or_partition_exception.UnknownTopicOrPartitionException: <p>Returns information about an error.</p>
        capo_kafka.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_kafka.types.create_topic_request.CreateTopicRequest]",
    ) -> AsyncOperationResponse[
        "capo_kafka.types.create_topic_response.CreateTopicResponse"
    ]:
        import capo_kafka._operations.kafka.create_topic

        (
            output,
            http_response,
        ) = await capo_kafka._operations.kafka.create_topic.async_create_topic(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateTopic")
    )
    input_: capo_kafka.types.create_topic_request.CreateTopicRequest = {
        "cluster_arn": cluster_arn
    }
    if topic_name is not None:
        input_["topic_name"] = topic_name
    if partition_count is not None:
        input_["partition_count"] = partition_count
    if replication_factor is not None:
        input_["replication_factor"] = replication_factor
    if configs is not None:
        input_["configs"] = configs

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output