Skip to content

batch_create_channel_membership async

batch_create_channel_membership(
    channel_arn: ChimeArn,
    member_arns: MemberArns,
    chime_bearer: ChimeArn,
    *,
    config_overrides: Optional[AsyncChimeSDKMessagingClientConfig] = None,
    type: Optional[ChannelMembershipType] = None,
    sub_channel_id: Optional[SubChannelId] = None,
) -> BatchCreateChannelMembershipResponse

Adds a specified number of users and bots to a channel.

Parameters:

  • channel_arn (ChimeArn) –

    The ARN of the channel to which you're adding users or bots.

  • type (Optional[ChannelMembershipType], default: None ) –

    The membership type of a user, DEFAULT or HIDDEN. Default members are always returned as part of ListChannelMemberships. Hidden members are only returned if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden members are not returned. This is only supported by moderators.

  • member_arns (MemberArns) –

    The ARNs of the members you want to add to the channel. Only AppInstanceUsers and AppInstanceBots can be added as a channel member.

  • chime_bearer (ChimeArn) –

    The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

  • sub_channel_id (Optional[SubChannelId], default: None ) –

    The ID of the SubChannel in the request.

    Only required when creating membership in a SubChannel for a moderator in an elastic channel.

Raises:

Source code in docs_src/capo_chime_sdk_messaging/_services/async_chime_sdk_messaging.py
async def batch_create_channel_membership(
    self,
    channel_arn: "capo_chime_sdk_messaging.types.chime_arn.ChimeArn",
    member_arns: "capo_chime_sdk_messaging.types.member_arns.MemberArns",
    chime_bearer: "capo_chime_sdk_messaging.types.chime_arn.ChimeArn",
    *,
    config_overrides: Optional[AsyncChimeSDKMessagingClientConfig] = None,
    type: Optional[
        "capo_chime_sdk_messaging.types.channel_membership_type.ChannelMembershipType"
    ] = None,
    sub_channel_id: Optional[
        "capo_chime_sdk_messaging.types.sub_channel_id.SubChannelId"
    ] = None,
) -> "capo_chime_sdk_messaging.types.batch_create_channel_membership_response.BatchCreateChannelMembershipResponse":
    """<p>Adds a specified number of users and bots to a channel. </p>

    Args:
        channel_arn: <p>The ARN of the channel to which you're adding users or bots.</p>
        type: <p>The membership type of a user, <code>DEFAULT</code> or <code>HIDDEN</code>. Default members are always returned as part of <code>ListChannelMemberships</code>. Hidden members are only returned if the type filter in <code>ListChannelMemberships</code> equals <code>HIDDEN</code>. Otherwise hidden members are not returned. This is only supported by moderators.</p>
        member_arns: <p>The ARNs of the members you want to add to the channel. Only <code>AppInstanceUsers</code> and <code>AppInstanceBots</code> can be added as a channel member.</p>
        chime_bearer: <p>The ARN of the <code>AppInstanceUser</code> or <code>AppInstanceBot</code> that makes the API call.</p>
        sub_channel_id: <p>The ID of the SubChannel in the request. </p> <note> <p>Only required when creating membership in a SubChannel for a moderator in an elastic channel.</p> </note>

    Raises:
        capo_chime_sdk_messaging.errors.bad_request_exception.BadRequestException: <p>The input parameters don't match the service's restrictions.</p>
        capo_chime_sdk_messaging.errors.forbidden_exception.ForbiddenException: <p>The client is permanently forbidden from making the request.</p>
        capo_chime_sdk_messaging.errors.not_found_exception.NotFoundException: <p>One or more of the resources in the request does not exist in the system.</p>
        capo_chime_sdk_messaging.errors.resource_limit_exceeded_exception.ResourceLimitExceededException: <p>The request exceeds the resource limit.</p>
        capo_chime_sdk_messaging.errors.service_failure_exception.ServiceFailureException: <p>The service encountered an unexpected error.</p>
        capo_chime_sdk_messaging.errors.service_unavailable_exception.ServiceUnavailableException: <p>The service is currently unavailable.</p>
        capo_chime_sdk_messaging.errors.throttled_client_exception.ThrottledClientException: <p>The client exceeded its request rate limit.</p>
        capo_chime_sdk_messaging.errors.unauthorized_client_exception.UnauthorizedClientException: <p>The client is not currently authorized to make the request.</p>
        capo_chime_sdk_messaging.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_chime_sdk_messaging.types.batch_create_channel_membership_request.BatchCreateChannelMembershipRequest]",
    ) -> AsyncOperationResponse[
        "capo_chime_sdk_messaging.types.batch_create_channel_membership_response.BatchCreateChannelMembershipResponse"
    ]:
        import capo_chime_sdk_messaging._operations.chime_messaging_service.batch_create_channel_membership

        (
            output,
            http_response,
        ) = await capo_chime_sdk_messaging._operations.chime_messaging_service.batch_create_channel_membership.async_batch_create_channel_membership(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_output(
        output: "capo_chime_sdk_messaging.types.batch_create_channel_membership_response.BatchCreateChannelMembershipResponse",
    ) -> dict[str, Any]:
        import capo_chime_sdk_messaging.types.batch_create_channel_membership_response

        return capo_chime_sdk_messaging.types.batch_create_channel_membership_response.redact_sensitive(
            output
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "BatchCreateChannelMembership", redact_output=_redact_output
        ),
    )
    input_: capo_chime_sdk_messaging.types.batch_create_channel_membership_request.BatchCreateChannelMembershipRequest = {
        "channel_arn": channel_arn,
        "member_arns": member_arns,
        "chime_bearer": chime_bearer,
    }
    if type is not None:
        input_["type"] = type
    if sub_channel_id is not None:
        input_["sub_channel_id"] = sub_channel_id

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