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

Object that captures the Amazon IVS configuration that the customer * provisioned, the ingest configurations that the broadcaster used, and the most * recent Amazon IVS stream events it encountered.

See Also:

AWS * API Reference

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

The properties of the channel at the time of going live.

*/ inline const Channel& GetChannel() const{ return m_channel; } /** *

The properties of the channel at the time of going live.

*/ inline bool ChannelHasBeenSet() const { return m_channelHasBeenSet; } /** *

The properties of the channel at the time of going live.

*/ inline void SetChannel(const Channel& value) { m_channelHasBeenSet = true; m_channel = value; } /** *

The properties of the channel at the time of going live.

*/ inline void SetChannel(Channel&& value) { m_channelHasBeenSet = true; m_channel = std::move(value); } /** *

The properties of the channel at the time of going live.

*/ inline StreamSession& WithChannel(const Channel& value) { SetChannel(value); return *this;} /** *

The properties of the channel at the time of going live.

*/ inline StreamSession& WithChannel(Channel&& value) { SetChannel(std::move(value)); return *this;} /** *

Time when the channel went offline. This is an ISO 8601 timestamp; note * that this is returned as a string. For live streams, this is * NULL.

*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } /** *

Time when the channel went offline. This is an ISO 8601 timestamp; note * that this is returned as a string. For live streams, this is * NULL.

*/ inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *

Time when the channel went offline. This is an ISO 8601 timestamp; note * that this is returned as a string. For live streams, this is * NULL.

*/ inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *

Time when the channel went offline. This is an ISO 8601 timestamp; note * that this is returned as a string. For live streams, this is * NULL.

*/ inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *

Time when the channel went offline. This is an ISO 8601 timestamp; note * that this is returned as a string. For live streams, this is * NULL.

*/ inline StreamSession& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

Time when the channel went offline. This is an ISO 8601 timestamp; note * that this is returned as a string. For live streams, this is * NULL.

*/ inline StreamSession& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} /** *

The properties of the incoming RTMP stream for the stream.

*/ inline const IngestConfiguration& GetIngestConfiguration() const{ return m_ingestConfiguration; } /** *

The properties of the incoming RTMP stream for the stream.

*/ inline bool IngestConfigurationHasBeenSet() const { return m_ingestConfigurationHasBeenSet; } /** *

The properties of the incoming RTMP stream for the stream.

*/ inline void SetIngestConfiguration(const IngestConfiguration& value) { m_ingestConfigurationHasBeenSet = true; m_ingestConfiguration = value; } /** *

The properties of the incoming RTMP stream for the stream.

*/ inline void SetIngestConfiguration(IngestConfiguration&& value) { m_ingestConfigurationHasBeenSet = true; m_ingestConfiguration = std::move(value); } /** *

The properties of the incoming RTMP stream for the stream.

*/ inline StreamSession& WithIngestConfiguration(const IngestConfiguration& value) { SetIngestConfiguration(value); return *this;} /** *

The properties of the incoming RTMP stream for the stream.

*/ inline StreamSession& WithIngestConfiguration(IngestConfiguration&& value) { SetIngestConfiguration(std::move(value)); return *this;} /** *

The properties of recording the live stream.

*/ inline const RecordingConfiguration& GetRecordingConfiguration() const{ return m_recordingConfiguration; } /** *

The properties of recording the live stream.

*/ inline bool RecordingConfigurationHasBeenSet() const { return m_recordingConfigurationHasBeenSet; } /** *

The properties of recording the live stream.

*/ inline void SetRecordingConfiguration(const RecordingConfiguration& value) { m_recordingConfigurationHasBeenSet = true; m_recordingConfiguration = value; } /** *

The properties of recording the live stream.

*/ inline void SetRecordingConfiguration(RecordingConfiguration&& value) { m_recordingConfigurationHasBeenSet = true; m_recordingConfiguration = std::move(value); } /** *

The properties of recording the live stream.

*/ inline StreamSession& WithRecordingConfiguration(const RecordingConfiguration& value) { SetRecordingConfiguration(value); return *this;} /** *

The properties of recording the live stream.

*/ inline StreamSession& WithRecordingConfiguration(RecordingConfiguration&& value) { SetRecordingConfiguration(std::move(value)); return *this;} /** *

Time when the channel went live. This is an ISO 8601 timestamp; note that * this is returned as a string.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

Time when the channel went live. This is an ISO 8601 timestamp; note that * this is returned as a string.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

Time when the channel went live. This is an ISO 8601 timestamp; note that * this is returned as a string.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

Time when the channel went live. This is an ISO 8601 timestamp; note that * this is returned as a string.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

Time when the channel went live. This is an ISO 8601 timestamp; note that * this is returned as a string.

*/ inline StreamSession& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

Time when the channel went live. This is an ISO 8601 timestamp; note that * this is returned as a string.

*/ inline StreamSession& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline const Aws::String& GetStreamId() const{ return m_streamId; } /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline bool StreamIdHasBeenSet() const { return m_streamIdHasBeenSet; } /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline void SetStreamId(const Aws::String& value) { m_streamIdHasBeenSet = true; m_streamId = value; } /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline void SetStreamId(Aws::String&& value) { m_streamIdHasBeenSet = true; m_streamId = std::move(value); } /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline void SetStreamId(const char* value) { m_streamIdHasBeenSet = true; m_streamId.assign(value); } /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline StreamSession& WithStreamId(const Aws::String& value) { SetStreamId(value); return *this;} /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline StreamSession& WithStreamId(Aws::String&& value) { SetStreamId(std::move(value)); return *this;} /** *

Unique identifier for a live or previously live stream in the specified * channel.

*/ inline StreamSession& WithStreamId(const char* value) { SetStreamId(value); return *this;} /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline const Aws::Vector& GetTruncatedEvents() const{ return m_truncatedEvents; } /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline bool TruncatedEventsHasBeenSet() const { return m_truncatedEventsHasBeenSet; } /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline void SetTruncatedEvents(const Aws::Vector& value) { m_truncatedEventsHasBeenSet = true; m_truncatedEvents = value; } /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline void SetTruncatedEvents(Aws::Vector&& value) { m_truncatedEventsHasBeenSet = true; m_truncatedEvents = std::move(value); } /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline StreamSession& WithTruncatedEvents(const Aws::Vector& value) { SetTruncatedEvents(value); return *this;} /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline StreamSession& WithTruncatedEvents(Aws::Vector&& value) { SetTruncatedEvents(std::move(value)); return *this;} /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline StreamSession& AddTruncatedEvents(const StreamEvent& value) { m_truncatedEventsHasBeenSet = true; m_truncatedEvents.push_back(value); return *this; } /** *

List of Amazon IVS events that the stream encountered. The list is sorted by * most recent events and contains up to 500 events. For Amazon IVS events, see Using * Amazon EventBridge with Amazon IVS.

*/ inline StreamSession& AddTruncatedEvents(StreamEvent&& value) { m_truncatedEventsHasBeenSet = true; m_truncatedEvents.push_back(std::move(value)); return *this; } private: Channel m_channel; bool m_channelHasBeenSet = false; Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet = false; IngestConfiguration m_ingestConfiguration; bool m_ingestConfigurationHasBeenSet = false; RecordingConfiguration m_recordingConfiguration; bool m_recordingConfigurationHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; Aws::String m_streamId; bool m_streamIdHasBeenSet = false; Aws::Vector m_truncatedEvents; bool m_truncatedEventsHasBeenSet = false; }; } // namespace Model } // namespace IVS } // namespace Aws