/** * 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 MobileAnalytics { namespace Model { /** *

Describes the session. Session information is required on ALL events.

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

A unique identifier for the session

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

A unique identifier for the session

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

A unique identifier for the session

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

A unique identifier for the session

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

A unique identifier for the session

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

A unique identifier for the session

*/ inline Session& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

A unique identifier for the session

*/ inline Session& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

A unique identifier for the session

*/ inline Session& WithId(const char* value) { SetId(value); return *this;} /** *

The duration of the session.

*/ inline long long GetDuration() const{ return m_duration; } /** *

The duration of the session.

*/ inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; } /** *

The duration of the session.

*/ inline void SetDuration(long long value) { m_durationHasBeenSet = true; m_duration = value; } /** *

The duration of the session.

*/ inline Session& WithDuration(long long value) { SetDuration(value); return *this;} /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline const Aws::String& GetStartTimestamp() const{ return m_startTimestamp; } /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline bool StartTimestampHasBeenSet() const { return m_startTimestampHasBeenSet; } /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline void SetStartTimestamp(const Aws::String& value) { m_startTimestampHasBeenSet = true; m_startTimestamp = value; } /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline void SetStartTimestamp(Aws::String&& value) { m_startTimestampHasBeenSet = true; m_startTimestamp = std::move(value); } /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline void SetStartTimestamp(const char* value) { m_startTimestampHasBeenSet = true; m_startTimestamp.assign(value); } /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline Session& WithStartTimestamp(const Aws::String& value) { SetStartTimestamp(value); return *this;} /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline Session& WithStartTimestamp(Aws::String&& value) { SetStartTimestamp(std::move(value)); return *this;} /** *

The time the event started in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline Session& WithStartTimestamp(const char* value) { SetStartTimestamp(value); return *this;} /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline const Aws::String& GetStopTimestamp() const{ return m_stopTimestamp; } /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline bool StopTimestampHasBeenSet() const { return m_stopTimestampHasBeenSet; } /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline void SetStopTimestamp(const Aws::String& value) { m_stopTimestampHasBeenSet = true; m_stopTimestamp = value; } /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline void SetStopTimestamp(Aws::String&& value) { m_stopTimestampHasBeenSet = true; m_stopTimestamp = std::move(value); } /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline void SetStopTimestamp(const char* value) { m_stopTimestampHasBeenSet = true; m_stopTimestamp.assign(value); } /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline Session& WithStopTimestamp(const Aws::String& value) { SetStopTimestamp(value); return *this;} /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline Session& WithStopTimestamp(Aws::String&& value) { SetStopTimestamp(std::move(value)); return *this;} /** *

The time the event terminated in ISO 8601 standard date time format. For * example, 2014-06-30T19:07:47.885Z

*/ inline Session& WithStopTimestamp(const char* value) { SetStopTimestamp(value); return *this;} private: Aws::String m_id; bool m_idHasBeenSet; long long m_duration; bool m_durationHasBeenSet; Aws::String m_startTimestamp; bool m_startTimestampHasBeenSet; Aws::String m_stopTimestamp; bool m_stopTimestampHasBeenSet; }; } // namespace Model } // namespace MobileAnalytics } // namespace Aws