Skip to content

batch_update_attendee_capabilities_except

batch_update_attendee_capabilities_except(
    meeting_id: GuidString,
    excluded_attendee_ids: AttendeeIdsList,
    capabilities: AttendeeCapabilities,
    *,
    config_overrides: Optional[ChimeSDKMeetingsClientConfig] = None,
) -> None

Updates AttendeeCapabilities except the capabilities listed in an ExcludedAttendeeIds table.

You use the capabilities with a set of values that control what the capabilities can do, such as SendReceive data. For more information about those values, see .

When using capabilities, be aware of these corner cases:

  • If you specify MeetingFeatures:Video:MaxResolution:None when you create a meeting, all API requests that include SendReceive, Send, or Receive for AttendeeCapabilities:Video will be rejected with ValidationError 400.

  • If you specify MeetingFeatures:Content:MaxResolution:None when you create a meeting, all API requests that include SendReceive, Send, or Receive for AttendeeCapabilities:Content will be rejected with ValidationError 400.

  • You can't set content capabilities to SendReceive or Receive unless you also set video capabilities to SendReceive or Receive. If you don't set the video capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your video capability to receive and you set your content capability to not receive.

  • If meeting features is defined as Video:MaxResolution:None but Content:MaxResolution is defined as something other than None and attendee capabilities are not defined in the API request, then the default attendee video capability is set to Receive and attendee content capability is set to SendReceive. This is because content SendReceive requires video to be at least Receive.

  • When you change an audio capability from None or Receive to Send or SendReceive , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.

  • When you change a video or content capability from None or Receive to Send or SendReceive , and if the attendee turned on their video or content streams, remote attendees can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.

Parameters:

  • meeting_id (GuidString) –

    The ID of the meeting associated with the update request.

  • excluded_attendee_ids (AttendeeIdsList) –

    The AttendeeIDs that you want to exclude from one or more capabilities.

  • capabilities (AttendeeCapabilities) –

    The capabilities (audio, video, or content) that you want to update.

Raises:

Source code in docs_src/capo_chime_sdk_meetings/_services/chime_sdk_meetings.py
def batch_update_attendee_capabilities_except(
    self,
    meeting_id: "capo_chime_sdk_meetings.types.guid_string.GuidString",
    excluded_attendee_ids: "capo_chime_sdk_meetings.types.attendee_ids_list.AttendeeIdsList",
    capabilities: "capo_chime_sdk_meetings.types.attendee_capabilities.AttendeeCapabilities",
    *,
    config_overrides: Optional[ChimeSDKMeetingsClientConfig] = None,
) -> None:
    """<p>Updates <code>AttendeeCapabilities</code> except the capabilities listed in an <code>ExcludedAttendeeIds</code> table.</p> <note> <p>You use the capabilities with a set of values that control what the capabilities can do, such as <code>SendReceive</code> data. For more information about those values, see .</p> </note> <p>When using capabilities, be aware of these corner cases:</p> <ul> <li> <p>If you specify <code>MeetingFeatures:Video:MaxResolution:None</code> when you create a meeting, all API requests that include <code>SendReceive</code>, <code>Send</code>, or <code>Receive</code> for <code>AttendeeCapabilities:Video</code> will be rejected with <code>ValidationError 400</code>.</p> </li> <li> <p>If you specify <code>MeetingFeatures:Content:MaxResolution:None</code> when you create a meeting, all API requests that include <code>SendReceive</code>, <code>Send</code>, or <code>Receive</code> for <code>AttendeeCapabilities:Content</code> will be rejected with <code>ValidationError 400</code>.</p> </li> <li> <p>You can't set <code>content</code> capabilities to <code>SendReceive</code> or <code>Receive</code> unless you also set <code>video</code> capabilities to <code>SendReceive</code> or <code>Receive</code>. If you don't set the <code>video</code> capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your <code>video</code> capability to receive and you set your <code>content</code> capability to not receive.</p> </li> <li> <p>If meeting features is defined as <code>Video:MaxResolution:None</code> but <code>Content:MaxResolution</code> is defined as something other than <code>None</code> and attendee capabilities are not defined in the API request, then the default attendee video capability is set to <code>Receive</code> and attendee content capability is set to <code>SendReceive</code>. This is because content <code>SendReceive</code> requires video to be at least <code>Receive</code>.</p> </li> <li> <p>When you change an <code>audio</code> capability from <code>None</code> or <code>Receive</code> to <code>Send</code> or <code>SendReceive</code> , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.</p> </li> <li> <p>When you change a <code>video</code> or <code>content</code> capability from <code>None</code> or <code>Receive</code> to <code>Send</code> or <code>SendReceive</code> , and if the attendee turned on their video or content streams, remote attendees can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.</p> </li> </ul>

    Args:
        meeting_id: <p>The ID of the meeting associated with the update request.</p>
        excluded_attendee_ids: <p>The <code>AttendeeIDs</code> that you want to exclude from one or more capabilities.</p>
        capabilities: <p>The capabilities (<code>audio</code>, <code>video</code>, or <code>content</code>) that you want to update.</p>

    Raises:
        capo_chime_sdk_meetings.errors.bad_request_exception.BadRequestException: <p>The input parameters don't match the service's restrictions.</p>
        capo_chime_sdk_meetings.errors.conflict_exception.ConflictException: <p>Multiple instances of the same request have been made simultaneously.</p>
        capo_chime_sdk_meetings.errors.forbidden_exception.ForbiddenException: <p>The client is permanently forbidden from making the request.</p>
        capo_chime_sdk_meetings.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_meetings.errors.service_failure_exception.ServiceFailureException: <p>The service encountered an unexpected error.</p>
        capo_chime_sdk_meetings.errors.service_unavailable_exception.ServiceUnavailableException: <p>The service is currently unavailable.</p>
        capo_chime_sdk_meetings.errors.throttling_exception.ThrottlingException: <p>The number of customer requests exceeds the request rate limit.</p>
        capo_chime_sdk_meetings.errors.unauthorized_exception.UnauthorizedException: <p>The user isn't authorized to request a resource.</p>
        capo_chime_sdk_meetings.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_chime_sdk_meetings.types.batch_update_attendee_capabilities_except_request.BatchUpdateAttendeeCapabilitiesExceptRequest]",
    ) -> OperationResponse[None]:
        import capo_chime_sdk_meetings._operations.chime_meetings_sdk_service.batch_update_attendee_capabilities_except

        output, http_response = (
            capo_chime_sdk_meetings._operations.chime_meetings_sdk_service.batch_update_attendee_capabilities_except.batch_update_attendee_capabilities_except(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("BatchUpdateAttendeeCapabilitiesExcept")
    )
    input_: capo_chime_sdk_meetings.types.batch_update_attendee_capabilities_except_request.BatchUpdateAttendeeCapabilitiesExceptRequest = {
        "meeting_id": meeting_id,
        "excluded_attendee_ids": excluded_attendee_ids,
        "capabilities": capabilities,
    }

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output