/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ChimeSDKMeetings { namespace Model { /** *

The media capabilities of an attendee: audio, video, or content.

*

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:

  • 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.

  • 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.

See Also:

AWS * API Reference

*/ class AttendeeCapabilities { public: AWS_CHIMESDKMEETINGS_API AttendeeCapabilities(); AWS_CHIMESDKMEETINGS_API AttendeeCapabilities(Aws::Utils::Json::JsonView jsonValue); AWS_CHIMESDKMEETINGS_API AttendeeCapabilities& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CHIMESDKMEETINGS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The audio capability assigned to an attendee.

*/ inline const MediaCapabilities& GetAudio() const{ return m_audio; } /** *

The audio capability assigned to an attendee.

*/ inline bool AudioHasBeenSet() const { return m_audioHasBeenSet; } /** *

The audio capability assigned to an attendee.

*/ inline void SetAudio(const MediaCapabilities& value) { m_audioHasBeenSet = true; m_audio = value; } /** *

The audio capability assigned to an attendee.

*/ inline void SetAudio(MediaCapabilities&& value) { m_audioHasBeenSet = true; m_audio = std::move(value); } /** *

The audio capability assigned to an attendee.

*/ inline AttendeeCapabilities& WithAudio(const MediaCapabilities& value) { SetAudio(value); return *this;} /** *

The audio capability assigned to an attendee.

*/ inline AttendeeCapabilities& WithAudio(MediaCapabilities&& value) { SetAudio(std::move(value)); return *this;} /** *

The video capability assigned to an attendee.

*/ inline const MediaCapabilities& GetVideo() const{ return m_video; } /** *

The video capability assigned to an attendee.

*/ inline bool VideoHasBeenSet() const { return m_videoHasBeenSet; } /** *

The video capability assigned to an attendee.

*/ inline void SetVideo(const MediaCapabilities& value) { m_videoHasBeenSet = true; m_video = value; } /** *

The video capability assigned to an attendee.

*/ inline void SetVideo(MediaCapabilities&& value) { m_videoHasBeenSet = true; m_video = std::move(value); } /** *

The video capability assigned to an attendee.

*/ inline AttendeeCapabilities& WithVideo(const MediaCapabilities& value) { SetVideo(value); return *this;} /** *

The video capability assigned to an attendee.

*/ inline AttendeeCapabilities& WithVideo(MediaCapabilities&& value) { SetVideo(std::move(value)); return *this;} /** *

The content capability assigned to an attendee.

*/ inline const MediaCapabilities& GetContent() const{ return m_content; } /** *

The content capability assigned to an attendee.

*/ inline bool ContentHasBeenSet() const { return m_contentHasBeenSet; } /** *

The content capability assigned to an attendee.

*/ inline void SetContent(const MediaCapabilities& value) { m_contentHasBeenSet = true; m_content = value; } /** *

The content capability assigned to an attendee.

*/ inline void SetContent(MediaCapabilities&& value) { m_contentHasBeenSet = true; m_content = std::move(value); } /** *

The content capability assigned to an attendee.

*/ inline AttendeeCapabilities& WithContent(const MediaCapabilities& value) { SetContent(value); return *this;} /** *

The content capability assigned to an attendee.

*/ inline AttendeeCapabilities& WithContent(MediaCapabilities&& value) { SetContent(std::move(value)); return *this;} private: MediaCapabilities m_audio; bool m_audioHasBeenSet = false; MediaCapabilities m_video; bool m_videoHasBeenSet = false; MediaCapabilities m_content; bool m_contentHasBeenSet = false; }; } // namespace Model } // namespace ChimeSDKMeetings } // namespace Aws