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

Object describing a participant that has joined a stage.

See * Also:

AWS * API Reference

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

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

Application-provided attributes to encode into the token and attach to a * stage. Map keys and values can contain UTF-8 encoded text. The maximum length of * this field is 1 KB total. This field is exposed to all stage participants and * should not be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

ISO 8601 timestamp (returned as a string) when the participant first joined * the stage session.

*/ inline const Aws::Utils::DateTime& GetFirstJoinTime() const{ return m_firstJoinTime; } /** *

ISO 8601 timestamp (returned as a string) when the participant first joined * the stage session.

*/ inline bool FirstJoinTimeHasBeenSet() const { return m_firstJoinTimeHasBeenSet; } /** *

ISO 8601 timestamp (returned as a string) when the participant first joined * the stage session.

*/ inline void SetFirstJoinTime(const Aws::Utils::DateTime& value) { m_firstJoinTimeHasBeenSet = true; m_firstJoinTime = value; } /** *

ISO 8601 timestamp (returned as a string) when the participant first joined * the stage session.

*/ inline void SetFirstJoinTime(Aws::Utils::DateTime&& value) { m_firstJoinTimeHasBeenSet = true; m_firstJoinTime = std::move(value); } /** *

ISO 8601 timestamp (returned as a string) when the participant first joined * the stage session.

*/ inline Participant& WithFirstJoinTime(const Aws::Utils::DateTime& value) { SetFirstJoinTime(value); return *this;} /** *

ISO 8601 timestamp (returned as a string) when the participant first joined * the stage session.

*/ inline Participant& WithFirstJoinTime(Aws::Utils::DateTime&& value) { SetFirstJoinTime(std::move(value)); return *this;} /** *

Unique identifier for this participant, assigned by IVS.

*/ inline const Aws::String& GetParticipantId() const{ return m_participantId; } /** *

Unique identifier for this participant, assigned by IVS.

*/ inline bool ParticipantIdHasBeenSet() const { return m_participantIdHasBeenSet; } /** *

Unique identifier for this participant, assigned by IVS.

*/ inline void SetParticipantId(const Aws::String& value) { m_participantIdHasBeenSet = true; m_participantId = value; } /** *

Unique identifier for this participant, assigned by IVS.

*/ inline void SetParticipantId(Aws::String&& value) { m_participantIdHasBeenSet = true; m_participantId = std::move(value); } /** *

Unique identifier for this participant, assigned by IVS.

*/ inline void SetParticipantId(const char* value) { m_participantIdHasBeenSet = true; m_participantId.assign(value); } /** *

Unique identifier for this participant, assigned by IVS.

*/ inline Participant& WithParticipantId(const Aws::String& value) { SetParticipantId(value); return *this;} /** *

Unique identifier for this participant, assigned by IVS.

*/ inline Participant& WithParticipantId(Aws::String&& value) { SetParticipantId(std::move(value)); return *this;} /** *

Unique identifier for this participant, assigned by IVS.

*/ inline Participant& WithParticipantId(const char* value) { SetParticipantId(value); return *this;} /** *

Whether the participant ever published to the stage session.

*/ inline bool GetPublished() const{ return m_published; } /** *

Whether the participant ever published to the stage session.

*/ inline bool PublishedHasBeenSet() const { return m_publishedHasBeenSet; } /** *

Whether the participant ever published to the stage session.

*/ inline void SetPublished(bool value) { m_publishedHasBeenSet = true; m_published = value; } /** *

Whether the participant ever published to the stage session.

*/ inline Participant& WithPublished(bool value) { SetPublished(value); return *this;} /** *

Whether the participant is connected to or disconnected from the stage.

*/ inline const ParticipantState& GetState() const{ return m_state; } /** *

Whether the participant is connected to or disconnected from the stage.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

Whether the participant is connected to or disconnected from the stage.

*/ inline void SetState(const ParticipantState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

Whether the participant is connected to or disconnected from the stage.

*/ inline void SetState(ParticipantState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

Whether the participant is connected to or disconnected from the stage.

*/ inline Participant& WithState(const ParticipantState& value) { SetState(value); return *this;} /** *

Whether the participant is connected to or disconnected from the stage.

*/ inline Participant& WithState(ParticipantState&& value) { SetState(std::move(value)); return *this;} /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline const Aws::String& GetUserId() const{ return m_userId; } /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; } /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline void SetUserId(const Aws::String& value) { m_userIdHasBeenSet = true; m_userId = value; } /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline void SetUserId(Aws::String&& value) { m_userIdHasBeenSet = true; m_userId = std::move(value); } /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline void SetUserId(const char* value) { m_userIdHasBeenSet = true; m_userId.assign(value); } /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& WithUserId(const Aws::String& value) { SetUserId(value); return *this;} /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& WithUserId(Aws::String&& value) { SetUserId(std::move(value)); return *this;} /** *

Customer-assigned name to help identify the token; this can be used to link a * participant to a user in the customer’s own systems. This can be any UTF-8 * encoded text. This field is exposed to all stage participants and should not * be used for personally identifying, confidential, or sensitive * information.

*/ inline Participant& WithUserId(const char* value) { SetUserId(value); return *this;} private: Aws::Map m_attributes; bool m_attributesHasBeenSet = false; Aws::Utils::DateTime m_firstJoinTime; bool m_firstJoinTimeHasBeenSet = false; Aws::String m_participantId; bool m_participantIdHasBeenSet = false; bool m_published; bool m_publishedHasBeenSet = false; ParticipantState m_state; bool m_stateHasBeenSet = false; Aws::String m_userId; bool m_userIdHasBeenSet = false; }; } // namespace Model } // namespace ivsrealtime } // namespace Aws