Skip to content

create_subscriber async

create_subscriber(
    name: SubscriberName,
    event_bus_arn: EventBusArn,
    invoke_configuration: InvokeConfiguration,
    *,
    config_overrides: Optional[AsyncEventBridgeV2ClientConfig] = None,
    description: Optional[Description] = None,
    filter_configuration: Optional[FilterConfiguration] = None,
    type: Optional[OrderingType] = None,
    starting_position: Optional[StartingPosition] = None,
    point_in_time_configuration: Optional[PointInTimeConfiguration] = None,
    batch_configuration: Optional[BatchConfiguration] = None,
    transformer: Optional[Transformer] = None,
    retry_policy: Optional[RetryPolicy] = None,
    on_failure_configuration: Optional[OnFailureConfiguration] = None,
    log_configuration: Optional[LogConfiguration] = None,
    state: Optional[SubscriberState] = None,
    tags: Optional[TagMap] = None,
    client_token: Optional[ClientToken] = None,
) -> CreateSubscriberResponse

Creates a subscriber on an event bus, which delivers matching events to the configured target. The bus must be ACTIVE. Retries carrying the same ClientToken are idempotent.

Parameters:

  • transformer (Optional[Transformer], default: None ) –

    Not applicable to universal (aws-sdk) targets, whose input transformation is UniversalTargetParameters.Input; a Transformer on such a target is rejected.

Raises:

Source code in docs_src/capo_eventbridgev2/_services/async_event_bridge_v2.py
async def create_subscriber(
    self,
    name: "capo_eventbridgev2.types.subscriber_name.SubscriberName",
    event_bus_arn: "capo_eventbridgev2.types.event_bus_arn.EventBusArn",
    invoke_configuration: "capo_eventbridgev2.types.invoke_configuration.InvokeConfiguration",
    *,
    config_overrides: Optional[AsyncEventBridgeV2ClientConfig] = None,
    description: Optional[
        "capo_eventbridgev2.types.description.Description"
    ] = None,
    filter_configuration: Optional[
        "capo_eventbridgev2.types.filter_configuration.FilterConfiguration"
    ] = None,
    type: Optional["capo_eventbridgev2.types.ordering_type.OrderingType"] = None,
    starting_position: Optional[
        "capo_eventbridgev2.types.starting_position.StartingPosition"
    ] = None,
    point_in_time_configuration: Optional[
        "capo_eventbridgev2.types.point_in_time_configuration.PointInTimeConfiguration"
    ] = None,
    batch_configuration: Optional[
        "capo_eventbridgev2.types.batch_configuration.BatchConfiguration"
    ] = None,
    transformer: Optional[
        "capo_eventbridgev2.types.transformer.Transformer"
    ] = None,
    retry_policy: Optional[
        "capo_eventbridgev2.types.retry_policy.RetryPolicy"
    ] = None,
    on_failure_configuration: Optional[
        "capo_eventbridgev2.types.on_failure_configuration.OnFailureConfiguration"
    ] = None,
    log_configuration: Optional[
        "capo_eventbridgev2.types.log_configuration.LogConfiguration"
    ] = None,
    state: Optional[
        "capo_eventbridgev2.types.subscriber_state.SubscriberState"
    ] = None,
    tags: Optional["capo_eventbridgev2.types.tag_map.TagMap"] = None,
    client_token: Optional[
        "capo_eventbridgev2.types.client_token.ClientToken"
    ] = None,
) -> "capo_eventbridgev2.types.create_subscriber_response.CreateSubscriberResponse":
    """Creates a subscriber on an event bus, which delivers matching events to the configured target. The bus must be ACTIVE. Retries carrying the same ClientToken are idempotent.

    Args:
        transformer: Not applicable to universal (aws-sdk) targets, whose input transformation is UniversalTargetParameters.Input; a Transformer on such a target is rejected.

    Raises:
        capo_eventbridgev2.errors.access_denied_exception.AccessDeniedException: The caller does not have the permissions required to perform the operation. This error is also returned when the operation cannot use the AWS KMS key for the event bus.
        capo_eventbridgev2.errors.internal_exception.InternalException: The request failed because of an internal service error. Retry the request.
        capo_eventbridgev2.errors.invalid_input_exception.InvalidInputException: A request parameter is missing or not valid.
        capo_eventbridgev2.errors.throttling_exception.ThrottlingException: The request was throttled because it exceeds a request rate limit. Retry the request with backoff.
        capo_eventbridgev2.errors.concurrent_modification_exception.ConcurrentModificationException: Another change to the resource is already in progress. Retry the request.
        capo_eventbridgev2.errors.idempotent_parameter_mismatch_exception.IdempotentParameterMismatchException: The request reuses the client token of an earlier request with different parameters. Use a new client token, or resend the earlier request unchanged.
        capo_eventbridgev2.errors.invalid_state_exception.InvalidStateException: The resource is not in a state that allows the operation. For example, an event bus that is still being created cannot accept events.
        capo_eventbridgev2.errors.limit_exceeded_exception.LimitExceededException: The request would exceed a service quota for the account.
        capo_eventbridgev2.errors.resource_already_exists_exception.ResourceAlreadyExistsException: A resource with the same name already exists.
        capo_eventbridgev2.errors.resource_not_found_exception.ResourceNotFoundException: The resource does not exist.
        capo_eventbridgev2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_eventbridgev2.types.create_subscriber_request.CreateSubscriberRequest]",
    ) -> AsyncOperationResponse[
        "capo_eventbridgev2.types.create_subscriber_response.CreateSubscriberResponse"
    ]:
        import capo_eventbridgev2._operations.aws_events_v2.create_subscriber

        (
            output,
            http_response,
        ) = await capo_eventbridgev2._operations.aws_events_v2.create_subscriber.async_create_subscriber(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_eventbridgev2.types.create_subscriber_request.CreateSubscriberRequest",
    ) -> dict[str, Any]:
        import capo_eventbridgev2.types.create_subscriber_request

        return capo_eventbridgev2.types.create_subscriber_request.redact_sensitive(
            input_
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("CreateSubscriber", redact_input=_redact_input),
    )
    input_: capo_eventbridgev2.types.create_subscriber_request.CreateSubscriberRequest = {
        "name": name,
        "event_bus_arn": event_bus_arn,
        "invoke_configuration": invoke_configuration,
    }
    if description is not None:
        input_["description"] = description
    if filter_configuration is not None:
        input_["filter_configuration"] = filter_configuration
    if type is not None:
        input_["type"] = type
    if starting_position is not None:
        input_["starting_position"] = starting_position
    if point_in_time_configuration is not None:
        input_["point_in_time_configuration"] = point_in_time_configuration
    if batch_configuration is not None:
        input_["batch_configuration"] = batch_configuration
    if transformer is not None:
        input_["transformer"] = transformer
    if retry_policy is not None:
        input_["retry_policy"] = retry_policy
    if on_failure_configuration is not None:
        input_["on_failure_configuration"] = on_failure_configuration
    if log_configuration is not None:
        input_["log_configuration"] = log_configuration
    if state is not None:
        input_["state"] = state
    if tags is not None:
        input_["tags"] = tags
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

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