/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace AppStream { namespace Model { /** *

Describes a streaming session.

See Also:

AWS * API Reference

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the streaming session.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

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

The identifier of the user for whom the session was created.

*/ inline Session& WithUserId(const char* value) { SetUserId(value); return *this;} /** *

The name of the stack for the streaming session.

*/ inline const Aws::String& GetStackName() const{ return m_stackName; } /** *

The name of the stack for the streaming session.

*/ inline bool StackNameHasBeenSet() const { return m_stackNameHasBeenSet; } /** *

The name of the stack for the streaming session.

*/ inline void SetStackName(const Aws::String& value) { m_stackNameHasBeenSet = true; m_stackName = value; } /** *

The name of the stack for the streaming session.

*/ inline void SetStackName(Aws::String&& value) { m_stackNameHasBeenSet = true; m_stackName = std::move(value); } /** *

The name of the stack for the streaming session.

*/ inline void SetStackName(const char* value) { m_stackNameHasBeenSet = true; m_stackName.assign(value); } /** *

The name of the stack for the streaming session.

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

The name of the stack for the streaming session.

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

The name of the stack for the streaming session.

*/ inline Session& WithStackName(const char* value) { SetStackName(value); return *this;} /** *

The name of the fleet for the streaming session.

*/ inline const Aws::String& GetFleetName() const{ return m_fleetName; } /** *

The name of the fleet for the streaming session.

*/ inline bool FleetNameHasBeenSet() const { return m_fleetNameHasBeenSet; } /** *

The name of the fleet for the streaming session.

*/ inline void SetFleetName(const Aws::String& value) { m_fleetNameHasBeenSet = true; m_fleetName = value; } /** *

The name of the fleet for the streaming session.

*/ inline void SetFleetName(Aws::String&& value) { m_fleetNameHasBeenSet = true; m_fleetName = std::move(value); } /** *

The name of the fleet for the streaming session.

*/ inline void SetFleetName(const char* value) { m_fleetNameHasBeenSet = true; m_fleetName.assign(value); } /** *

The name of the fleet for the streaming session.

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

The name of the fleet for the streaming session.

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

The name of the fleet for the streaming session.

*/ inline Session& WithFleetName(const char* value) { SetFleetName(value); return *this;} /** *

The current state of the streaming session.

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

The current state of the streaming session.

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

The current state of the streaming session.

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

The current state of the streaming session.

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

The current state of the streaming session.

*/ inline Session& WithState(const SessionState& value) { SetState(value); return *this;} /** *

The current state of the streaming session.

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

Specifies whether a user is connected to the streaming session.

*/ inline const SessionConnectionState& GetConnectionState() const{ return m_connectionState; } /** *

Specifies whether a user is connected to the streaming session.

*/ inline bool ConnectionStateHasBeenSet() const { return m_connectionStateHasBeenSet; } /** *

Specifies whether a user is connected to the streaming session.

*/ inline void SetConnectionState(const SessionConnectionState& value) { m_connectionStateHasBeenSet = true; m_connectionState = value; } /** *

Specifies whether a user is connected to the streaming session.

*/ inline void SetConnectionState(SessionConnectionState&& value) { m_connectionStateHasBeenSet = true; m_connectionState = std::move(value); } /** *

Specifies whether a user is connected to the streaming session.

*/ inline Session& WithConnectionState(const SessionConnectionState& value) { SetConnectionState(value); return *this;} /** *

Specifies whether a user is connected to the streaming session.

*/ inline Session& WithConnectionState(SessionConnectionState&& value) { SetConnectionState(std::move(value)); return *this;} /** *

The time when a streaming instance is dedicated for the user.

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

The time when a streaming instance is dedicated for the user.

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

The time when a streaming instance is dedicated for the user.

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

The time when a streaming instance is dedicated for the user.

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

The time when a streaming instance is dedicated for the user.

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

The time when a streaming instance is dedicated for the user.

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

The time when the streaming session is set to expire. This time is based on * the MaxUserDurationinSeconds value, which determines the maximum * length of time that a streaming session can run. A streaming session might end * earlier than the time specified in SessionMaxExpirationTime, when * the DisconnectTimeOutInSeconds elapses or the user chooses to end * his or her session. If the DisconnectTimeOutInSeconds elapses, or * the user chooses to end his or her session, the streaming instance is terminated * and the streaming session ends.

*/ inline const Aws::Utils::DateTime& GetMaxExpirationTime() const{ return m_maxExpirationTime; } /** *

The time when the streaming session is set to expire. This time is based on * the MaxUserDurationinSeconds value, which determines the maximum * length of time that a streaming session can run. A streaming session might end * earlier than the time specified in SessionMaxExpirationTime, when * the DisconnectTimeOutInSeconds elapses or the user chooses to end * his or her session. If the DisconnectTimeOutInSeconds elapses, or * the user chooses to end his or her session, the streaming instance is terminated * and the streaming session ends.

*/ inline bool MaxExpirationTimeHasBeenSet() const { return m_maxExpirationTimeHasBeenSet; } /** *

The time when the streaming session is set to expire. This time is based on * the MaxUserDurationinSeconds value, which determines the maximum * length of time that a streaming session can run. A streaming session might end * earlier than the time specified in SessionMaxExpirationTime, when * the DisconnectTimeOutInSeconds elapses or the user chooses to end * his or her session. If the DisconnectTimeOutInSeconds elapses, or * the user chooses to end his or her session, the streaming instance is terminated * and the streaming session ends.

*/ inline void SetMaxExpirationTime(const Aws::Utils::DateTime& value) { m_maxExpirationTimeHasBeenSet = true; m_maxExpirationTime = value; } /** *

The time when the streaming session is set to expire. This time is based on * the MaxUserDurationinSeconds value, which determines the maximum * length of time that a streaming session can run. A streaming session might end * earlier than the time specified in SessionMaxExpirationTime, when * the DisconnectTimeOutInSeconds elapses or the user chooses to end * his or her session. If the DisconnectTimeOutInSeconds elapses, or * the user chooses to end his or her session, the streaming instance is terminated * and the streaming session ends.

*/ inline void SetMaxExpirationTime(Aws::Utils::DateTime&& value) { m_maxExpirationTimeHasBeenSet = true; m_maxExpirationTime = std::move(value); } /** *

The time when the streaming session is set to expire. This time is based on * the MaxUserDurationinSeconds value, which determines the maximum * length of time that a streaming session can run. A streaming session might end * earlier than the time specified in SessionMaxExpirationTime, when * the DisconnectTimeOutInSeconds elapses or the user chooses to end * his or her session. If the DisconnectTimeOutInSeconds elapses, or * the user chooses to end his or her session, the streaming instance is terminated * and the streaming session ends.

*/ inline Session& WithMaxExpirationTime(const Aws::Utils::DateTime& value) { SetMaxExpirationTime(value); return *this;} /** *

The time when the streaming session is set to expire. This time is based on * the MaxUserDurationinSeconds value, which determines the maximum * length of time that a streaming session can run. A streaming session might end * earlier than the time specified in SessionMaxExpirationTime, when * the DisconnectTimeOutInSeconds elapses or the user chooses to end * his or her session. If the DisconnectTimeOutInSeconds elapses, or * the user chooses to end his or her session, the streaming instance is terminated * and the streaming session ends.

*/ inline Session& WithMaxExpirationTime(Aws::Utils::DateTime&& value) { SetMaxExpirationTime(std::move(value)); return *this;} /** *

The authentication method. The user is authenticated using a streaming URL * (API) or SAML 2.0 federation (SAML).

*/ inline const AuthenticationType& GetAuthenticationType() const{ return m_authenticationType; } /** *

The authentication method. The user is authenticated using a streaming URL * (API) or SAML 2.0 federation (SAML).

*/ inline bool AuthenticationTypeHasBeenSet() const { return m_authenticationTypeHasBeenSet; } /** *

The authentication method. The user is authenticated using a streaming URL * (API) or SAML 2.0 federation (SAML).

*/ inline void SetAuthenticationType(const AuthenticationType& value) { m_authenticationTypeHasBeenSet = true; m_authenticationType = value; } /** *

The authentication method. The user is authenticated using a streaming URL * (API) or SAML 2.0 federation (SAML).

*/ inline void SetAuthenticationType(AuthenticationType&& value) { m_authenticationTypeHasBeenSet = true; m_authenticationType = std::move(value); } /** *

The authentication method. The user is authenticated using a streaming URL * (API) or SAML 2.0 federation (SAML).

*/ inline Session& WithAuthenticationType(const AuthenticationType& value) { SetAuthenticationType(value); return *this;} /** *

The authentication method. The user is authenticated using a streaming URL * (API) or SAML 2.0 federation (SAML).

*/ inline Session& WithAuthenticationType(AuthenticationType&& value) { SetAuthenticationType(std::move(value)); return *this;} /** *

The network details for the streaming session.

*/ inline const NetworkAccessConfiguration& GetNetworkAccessConfiguration() const{ return m_networkAccessConfiguration; } /** *

The network details for the streaming session.

*/ inline bool NetworkAccessConfigurationHasBeenSet() const { return m_networkAccessConfigurationHasBeenSet; } /** *

The network details for the streaming session.

*/ inline void SetNetworkAccessConfiguration(const NetworkAccessConfiguration& value) { m_networkAccessConfigurationHasBeenSet = true; m_networkAccessConfiguration = value; } /** *

The network details for the streaming session.

*/ inline void SetNetworkAccessConfiguration(NetworkAccessConfiguration&& value) { m_networkAccessConfigurationHasBeenSet = true; m_networkAccessConfiguration = std::move(value); } /** *

The network details for the streaming session.

*/ inline Session& WithNetworkAccessConfiguration(const NetworkAccessConfiguration& value) { SetNetworkAccessConfiguration(value); return *this;} /** *

The network details for the streaming session.

*/ inline Session& WithNetworkAccessConfiguration(NetworkAccessConfiguration&& value) { SetNetworkAccessConfiguration(std::move(value)); return *this;} private: Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_userId; bool m_userIdHasBeenSet = false; Aws::String m_stackName; bool m_stackNameHasBeenSet = false; Aws::String m_fleetName; bool m_fleetNameHasBeenSet = false; SessionState m_state; bool m_stateHasBeenSet = false; SessionConnectionState m_connectionState; bool m_connectionStateHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; Aws::Utils::DateTime m_maxExpirationTime; bool m_maxExpirationTimeHasBeenSet = false; AuthenticationType m_authenticationType; bool m_authenticationTypeHasBeenSet = false; NetworkAccessConfiguration m_networkAccessConfiguration; bool m_networkAccessConfigurationHasBeenSet = false; }; } // namespace Model } // namespace AppStream } // namespace Aws