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

A streaming session is a virtual workstation created using a particular * launch profile.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline StreamingSession& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline StreamingSession& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.

*/ inline StreamingSession& WithArn(const char* value) { SetArn(value); return *this;} /** *

Indicates if a streaming session created from this launch profile should be * terminated automatically or retained without termination after being in a * STOPPED state.

  • When ACTIVATED, the * streaming session is scheduled for termination after being in the * STOPPED state for the time specified in * maxStoppedSessionLengthInMinutes.

  • When * DEACTIVATED, the streaming session can remain in the * STOPPED state indefinitely.

This parameter is * only allowed when sessionPersistenceMode is ACTIVATED. * When allowed, the default value for this parameter is * DEACTIVATED.

*/ inline const AutomaticTerminationMode& GetAutomaticTerminationMode() const{ return m_automaticTerminationMode; } /** *

Indicates if a streaming session created from this launch profile should be * terminated automatically or retained without termination after being in a * STOPPED state.

  • When ACTIVATED, the * streaming session is scheduled for termination after being in the * STOPPED state for the time specified in * maxStoppedSessionLengthInMinutes.

  • When * DEACTIVATED, the streaming session can remain in the * STOPPED state indefinitely.

This parameter is * only allowed when sessionPersistenceMode is ACTIVATED. * When allowed, the default value for this parameter is * DEACTIVATED.

*/ inline bool AutomaticTerminationModeHasBeenSet() const { return m_automaticTerminationModeHasBeenSet; } /** *

Indicates if a streaming session created from this launch profile should be * terminated automatically or retained without termination after being in a * STOPPED state.

  • When ACTIVATED, the * streaming session is scheduled for termination after being in the * STOPPED state for the time specified in * maxStoppedSessionLengthInMinutes.

  • When * DEACTIVATED, the streaming session can remain in the * STOPPED state indefinitely.

This parameter is * only allowed when sessionPersistenceMode is ACTIVATED. * When allowed, the default value for this parameter is * DEACTIVATED.

*/ inline void SetAutomaticTerminationMode(const AutomaticTerminationMode& value) { m_automaticTerminationModeHasBeenSet = true; m_automaticTerminationMode = value; } /** *

Indicates if a streaming session created from this launch profile should be * terminated automatically or retained without termination after being in a * STOPPED state.

  • When ACTIVATED, the * streaming session is scheduled for termination after being in the * STOPPED state for the time specified in * maxStoppedSessionLengthInMinutes.

  • When * DEACTIVATED, the streaming session can remain in the * STOPPED state indefinitely.

This parameter is * only allowed when sessionPersistenceMode is ACTIVATED. * When allowed, the default value for this parameter is * DEACTIVATED.

*/ inline void SetAutomaticTerminationMode(AutomaticTerminationMode&& value) { m_automaticTerminationModeHasBeenSet = true; m_automaticTerminationMode = std::move(value); } /** *

Indicates if a streaming session created from this launch profile should be * terminated automatically or retained without termination after being in a * STOPPED state.

  • When ACTIVATED, the * streaming session is scheduled for termination after being in the * STOPPED state for the time specified in * maxStoppedSessionLengthInMinutes.

  • When * DEACTIVATED, the streaming session can remain in the * STOPPED state indefinitely.

This parameter is * only allowed when sessionPersistenceMode is ACTIVATED. * When allowed, the default value for this parameter is * DEACTIVATED.

*/ inline StreamingSession& WithAutomaticTerminationMode(const AutomaticTerminationMode& value) { SetAutomaticTerminationMode(value); return *this;} /** *

Indicates if a streaming session created from this launch profile should be * terminated automatically or retained without termination after being in a * STOPPED state.

  • When ACTIVATED, the * streaming session is scheduled for termination after being in the * STOPPED state for the time specified in * maxStoppedSessionLengthInMinutes.

  • When * DEACTIVATED, the streaming session can remain in the * STOPPED state indefinitely.

This parameter is * only allowed when sessionPersistenceMode is ACTIVATED. * When allowed, the default value for this parameter is * DEACTIVATED.

*/ inline StreamingSession& WithAutomaticTerminationMode(AutomaticTerminationMode&& value) { SetAutomaticTerminationMode(std::move(value)); return *this;} /** *

Shows the current backup setting of the session.

*/ inline const SessionBackupMode& GetBackupMode() const{ return m_backupMode; } /** *

Shows the current backup setting of the session.

*/ inline bool BackupModeHasBeenSet() const { return m_backupModeHasBeenSet; } /** *

Shows the current backup setting of the session.

*/ inline void SetBackupMode(const SessionBackupMode& value) { m_backupModeHasBeenSet = true; m_backupMode = value; } /** *

Shows the current backup setting of the session.

*/ inline void SetBackupMode(SessionBackupMode&& value) { m_backupModeHasBeenSet = true; m_backupMode = std::move(value); } /** *

Shows the current backup setting of the session.

*/ inline StreamingSession& WithBackupMode(const SessionBackupMode& value) { SetBackupMode(value); return *this;} /** *

Shows the current backup setting of the session.

*/ inline StreamingSession& WithBackupMode(SessionBackupMode&& value) { SetBackupMode(std::move(value)); return *this;} /** *

The ISO timestamp in seconds for when the resource was created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The ISO timestamp in seconds for when the resource was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The ISO timestamp in seconds for when the resource was created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The ISO timestamp in seconds for when the resource was created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The ISO timestamp in seconds for when the resource was created.

*/ inline StreamingSession& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The ISO timestamp in seconds for when the resource was created.

*/ inline StreamingSession& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

The user ID of the user that created the streaming session.

*/ inline const Aws::String& GetCreatedBy() const{ return m_createdBy; } /** *

The user ID of the user that created the streaming session.

*/ inline bool CreatedByHasBeenSet() const { return m_createdByHasBeenSet; } /** *

The user ID of the user that created the streaming session.

*/ inline void SetCreatedBy(const Aws::String& value) { m_createdByHasBeenSet = true; m_createdBy = value; } /** *

The user ID of the user that created the streaming session.

*/ inline void SetCreatedBy(Aws::String&& value) { m_createdByHasBeenSet = true; m_createdBy = std::move(value); } /** *

The user ID of the user that created the streaming session.

*/ inline void SetCreatedBy(const char* value) { m_createdByHasBeenSet = true; m_createdBy.assign(value); } /** *

The user ID of the user that created the streaming session.

*/ inline StreamingSession& WithCreatedBy(const Aws::String& value) { SetCreatedBy(value); return *this;} /** *

The user ID of the user that created the streaming session.

*/ inline StreamingSession& WithCreatedBy(Aws::String&& value) { SetCreatedBy(std::move(value)); return *this;} /** *

The user ID of the user that created the streaming session.

*/ inline StreamingSession& WithCreatedBy(const char* value) { SetCreatedBy(value); return *this;} /** *

The EC2 Instance type used for the streaming session.

*/ inline const Aws::String& GetEc2InstanceType() const{ return m_ec2InstanceType; } /** *

The EC2 Instance type used for the streaming session.

*/ inline bool Ec2InstanceTypeHasBeenSet() const { return m_ec2InstanceTypeHasBeenSet; } /** *

The EC2 Instance type used for the streaming session.

*/ inline void SetEc2InstanceType(const Aws::String& value) { m_ec2InstanceTypeHasBeenSet = true; m_ec2InstanceType = value; } /** *

The EC2 Instance type used for the streaming session.

*/ inline void SetEc2InstanceType(Aws::String&& value) { m_ec2InstanceTypeHasBeenSet = true; m_ec2InstanceType = std::move(value); } /** *

The EC2 Instance type used for the streaming session.

*/ inline void SetEc2InstanceType(const char* value) { m_ec2InstanceTypeHasBeenSet = true; m_ec2InstanceType.assign(value); } /** *

The EC2 Instance type used for the streaming session.

*/ inline StreamingSession& WithEc2InstanceType(const Aws::String& value) { SetEc2InstanceType(value); return *this;} /** *

The EC2 Instance type used for the streaming session.

*/ inline StreamingSession& WithEc2InstanceType(Aws::String&& value) { SetEc2InstanceType(std::move(value)); return *this;} /** *

The EC2 Instance type used for the streaming session.

*/ inline StreamingSession& WithEc2InstanceType(const char* value) { SetEc2InstanceType(value); return *this;} /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline const Aws::String& GetLaunchProfileId() const{ return m_launchProfileId; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline bool LaunchProfileIdHasBeenSet() const { return m_launchProfileIdHasBeenSet; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline void SetLaunchProfileId(const Aws::String& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = value; } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline void SetLaunchProfileId(Aws::String&& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = std::move(value); } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline void SetLaunchProfileId(const char* value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId.assign(value); } /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline StreamingSession& WithLaunchProfileId(const Aws::String& value) { SetLaunchProfileId(value); return *this;} /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline StreamingSession& WithLaunchProfileId(Aws::String&& value) { SetLaunchProfileId(std::move(value)); return *this;} /** *

The ID of the launch profile used to control access from the streaming * session.

*/ inline StreamingSession& WithLaunchProfileId(const char* value) { SetLaunchProfileId(value); return *this;} /** *

The maximum number of backups of a streaming session that you can have. When * the maximum number of backups is reached, the oldest backup is deleted.

*/ inline int GetMaxBackupsToRetain() const{ return m_maxBackupsToRetain; } /** *

The maximum number of backups of a streaming session that you can have. When * the maximum number of backups is reached, the oldest backup is deleted.

*/ inline bool MaxBackupsToRetainHasBeenSet() const { return m_maxBackupsToRetainHasBeenSet; } /** *

The maximum number of backups of a streaming session that you can have. When * the maximum number of backups is reached, the oldest backup is deleted.

*/ inline void SetMaxBackupsToRetain(int value) { m_maxBackupsToRetainHasBeenSet = true; m_maxBackupsToRetain = value; } /** *

The maximum number of backups of a streaming session that you can have. When * the maximum number of backups is reached, the oldest backup is deleted.

*/ inline StreamingSession& WithMaxBackupsToRetain(int value) { SetMaxBackupsToRetain(value); return *this;} /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline const Aws::String& GetOwnedBy() const{ return m_ownedBy; } /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline bool OwnedByHasBeenSet() const { return m_ownedByHasBeenSet; } /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline void SetOwnedBy(const Aws::String& value) { m_ownedByHasBeenSet = true; m_ownedBy = value; } /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline void SetOwnedBy(Aws::String&& value) { m_ownedByHasBeenSet = true; m_ownedBy = std::move(value); } /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline void SetOwnedBy(const char* value) { m_ownedByHasBeenSet = true; m_ownedBy.assign(value); } /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline StreamingSession& WithOwnedBy(const Aws::String& value) { SetOwnedBy(value); return *this;} /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline StreamingSession& WithOwnedBy(Aws::String&& value) { SetOwnedBy(std::move(value)); return *this;} /** *

The user ID of the user that owns the streaming session. The user that owns * the session will be logging into the session and interacting with the virtual * workstation.

*/ inline StreamingSession& WithOwnedBy(const char* value) { SetOwnedBy(value); return *this;} /** *

The session ID.

*/ inline const Aws::String& GetSessionId() const{ return m_sessionId; } /** *

The session ID.

*/ inline bool SessionIdHasBeenSet() const { return m_sessionIdHasBeenSet; } /** *

The session ID.

*/ inline void SetSessionId(const Aws::String& value) { m_sessionIdHasBeenSet = true; m_sessionId = value; } /** *

The session ID.

*/ inline void SetSessionId(Aws::String&& value) { m_sessionIdHasBeenSet = true; m_sessionId = std::move(value); } /** *

The session ID.

*/ inline void SetSessionId(const char* value) { m_sessionIdHasBeenSet = true; m_sessionId.assign(value); } /** *

The session ID.

*/ inline StreamingSession& WithSessionId(const Aws::String& value) { SetSessionId(value); return *this;} /** *

The session ID.

*/ inline StreamingSession& WithSessionId(Aws::String&& value) { SetSessionId(std::move(value)); return *this;} /** *

The session ID.

*/ inline StreamingSession& WithSessionId(const char* value) { SetSessionId(value); return *this;} /** *

Determine if a streaming session created from this launch profile can * configure persistent storage. This means that volumeConfiguration * and automaticTerminationMode are configured.

*/ inline const SessionPersistenceMode& GetSessionPersistenceMode() const{ return m_sessionPersistenceMode; } /** *

Determine if a streaming session created from this launch profile can * configure persistent storage. This means that volumeConfiguration * and automaticTerminationMode are configured.

*/ inline bool SessionPersistenceModeHasBeenSet() const { return m_sessionPersistenceModeHasBeenSet; } /** *

Determine if a streaming session created from this launch profile can * configure persistent storage. This means that volumeConfiguration * and automaticTerminationMode are configured.

*/ inline void SetSessionPersistenceMode(const SessionPersistenceMode& value) { m_sessionPersistenceModeHasBeenSet = true; m_sessionPersistenceMode = value; } /** *

Determine if a streaming session created from this launch profile can * configure persistent storage. This means that volumeConfiguration * and automaticTerminationMode are configured.

*/ inline void SetSessionPersistenceMode(SessionPersistenceMode&& value) { m_sessionPersistenceModeHasBeenSet = true; m_sessionPersistenceMode = std::move(value); } /** *

Determine if a streaming session created from this launch profile can * configure persistent storage. This means that volumeConfiguration * and automaticTerminationMode are configured.

*/ inline StreamingSession& WithSessionPersistenceMode(const SessionPersistenceMode& value) { SetSessionPersistenceMode(value); return *this;} /** *

Determine if a streaming session created from this launch profile can * configure persistent storage. This means that volumeConfiguration * and automaticTerminationMode are configured.

*/ inline StreamingSession& WithSessionPersistenceMode(SessionPersistenceMode&& value) { SetSessionPersistenceMode(std::move(value)); return *this;} /** *

The time the session entered START_IN_PROGRESS state.

*/ inline const Aws::Utils::DateTime& GetStartedAt() const{ return m_startedAt; } /** *

The time the session entered START_IN_PROGRESS state.

*/ inline bool StartedAtHasBeenSet() const { return m_startedAtHasBeenSet; } /** *

The time the session entered START_IN_PROGRESS state.

*/ inline void SetStartedAt(const Aws::Utils::DateTime& value) { m_startedAtHasBeenSet = true; m_startedAt = value; } /** *

The time the session entered START_IN_PROGRESS state.

*/ inline void SetStartedAt(Aws::Utils::DateTime&& value) { m_startedAtHasBeenSet = true; m_startedAt = std::move(value); } /** *

The time the session entered START_IN_PROGRESS state.

*/ inline StreamingSession& WithStartedAt(const Aws::Utils::DateTime& value) { SetStartedAt(value); return *this;} /** *

The time the session entered START_IN_PROGRESS state.

*/ inline StreamingSession& WithStartedAt(Aws::Utils::DateTime&& value) { SetStartedAt(std::move(value)); return *this;} /** *

The user ID of the user that started the streaming session.

*/ inline const Aws::String& GetStartedBy() const{ return m_startedBy; } /** *

The user ID of the user that started the streaming session.

*/ inline bool StartedByHasBeenSet() const { return m_startedByHasBeenSet; } /** *

The user ID of the user that started the streaming session.

*/ inline void SetStartedBy(const Aws::String& value) { m_startedByHasBeenSet = true; m_startedBy = value; } /** *

The user ID of the user that started the streaming session.

*/ inline void SetStartedBy(Aws::String&& value) { m_startedByHasBeenSet = true; m_startedBy = std::move(value); } /** *

The user ID of the user that started the streaming session.

*/ inline void SetStartedBy(const char* value) { m_startedByHasBeenSet = true; m_startedBy.assign(value); } /** *

The user ID of the user that started the streaming session.

*/ inline StreamingSession& WithStartedBy(const Aws::String& value) { SetStartedBy(value); return *this;} /** *

The user ID of the user that started the streaming session.

*/ inline StreamingSession& WithStartedBy(Aws::String&& value) { SetStartedBy(std::move(value)); return *this;} /** *

The user ID of the user that started the streaming session.

*/ inline StreamingSession& WithStartedBy(const char* value) { SetStartedBy(value); return *this;} /** *

The backup ID used to restore a streaming session.

*/ inline const Aws::String& GetStartedFromBackupId() const{ return m_startedFromBackupId; } /** *

The backup ID used to restore a streaming session.

*/ inline bool StartedFromBackupIdHasBeenSet() const { return m_startedFromBackupIdHasBeenSet; } /** *

The backup ID used to restore a streaming session.

*/ inline void SetStartedFromBackupId(const Aws::String& value) { m_startedFromBackupIdHasBeenSet = true; m_startedFromBackupId = value; } /** *

The backup ID used to restore a streaming session.

*/ inline void SetStartedFromBackupId(Aws::String&& value) { m_startedFromBackupIdHasBeenSet = true; m_startedFromBackupId = std::move(value); } /** *

The backup ID used to restore a streaming session.

*/ inline void SetStartedFromBackupId(const char* value) { m_startedFromBackupIdHasBeenSet = true; m_startedFromBackupId.assign(value); } /** *

The backup ID used to restore a streaming session.

*/ inline StreamingSession& WithStartedFromBackupId(const Aws::String& value) { SetStartedFromBackupId(value); return *this;} /** *

The backup ID used to restore a streaming session.

*/ inline StreamingSession& WithStartedFromBackupId(Aws::String&& value) { SetStartedFromBackupId(std::move(value)); return *this;} /** *

The backup ID used to restore a streaming session.

*/ inline StreamingSession& WithStartedFromBackupId(const char* value) { SetStartedFromBackupId(value); return *this;} /** *

The current state.

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

The current state.

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

The current state.

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

The current state.

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

The current state.

*/ inline StreamingSession& WithState(const StreamingSessionState& value) { SetState(value); return *this;} /** *

The current state.

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

The status code.

*/ inline const StreamingSessionStatusCode& GetStatusCode() const{ return m_statusCode; } /** *

The status code.

*/ inline bool StatusCodeHasBeenSet() const { return m_statusCodeHasBeenSet; } /** *

The status code.

*/ inline void SetStatusCode(const StreamingSessionStatusCode& value) { m_statusCodeHasBeenSet = true; m_statusCode = value; } /** *

The status code.

*/ inline void SetStatusCode(StreamingSessionStatusCode&& value) { m_statusCodeHasBeenSet = true; m_statusCode = std::move(value); } /** *

The status code.

*/ inline StreamingSession& WithStatusCode(const StreamingSessionStatusCode& value) { SetStatusCode(value); return *this;} /** *

The status code.

*/ inline StreamingSession& WithStatusCode(StreamingSessionStatusCode&& value) { SetStatusCode(std::move(value)); return *this;} /** *

The status message for the streaming session.

*/ inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } /** *

The status message for the streaming session.

*/ inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } /** *

The status message for the streaming session.

*/ inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } /** *

The status message for the streaming session.

*/ inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } /** *

The status message for the streaming session.

*/ inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } /** *

The status message for the streaming session.

*/ inline StreamingSession& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} /** *

The status message for the streaming session.

*/ inline StreamingSession& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} /** *

The status message for the streaming session.

*/ inline StreamingSession& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} /** *

The time the streaming session will automatically be stopped if the user * doesn’t stop the session themselves.

*/ inline const Aws::Utils::DateTime& GetStopAt() const{ return m_stopAt; } /** *

The time the streaming session will automatically be stopped if the user * doesn’t stop the session themselves.

*/ inline bool StopAtHasBeenSet() const { return m_stopAtHasBeenSet; } /** *

The time the streaming session will automatically be stopped if the user * doesn’t stop the session themselves.

*/ inline void SetStopAt(const Aws::Utils::DateTime& value) { m_stopAtHasBeenSet = true; m_stopAt = value; } /** *

The time the streaming session will automatically be stopped if the user * doesn’t stop the session themselves.

*/ inline void SetStopAt(Aws::Utils::DateTime&& value) { m_stopAtHasBeenSet = true; m_stopAt = std::move(value); } /** *

The time the streaming session will automatically be stopped if the user * doesn’t stop the session themselves.

*/ inline StreamingSession& WithStopAt(const Aws::Utils::DateTime& value) { SetStopAt(value); return *this;} /** *

The time the streaming session will automatically be stopped if the user * doesn’t stop the session themselves.

*/ inline StreamingSession& WithStopAt(Aws::Utils::DateTime&& value) { SetStopAt(std::move(value)); return *this;} /** *

The time the session entered STOP_IN_PROGRESS state.

*/ inline const Aws::Utils::DateTime& GetStoppedAt() const{ return m_stoppedAt; } /** *

The time the session entered STOP_IN_PROGRESS state.

*/ inline bool StoppedAtHasBeenSet() const { return m_stoppedAtHasBeenSet; } /** *

The time the session entered STOP_IN_PROGRESS state.

*/ inline void SetStoppedAt(const Aws::Utils::DateTime& value) { m_stoppedAtHasBeenSet = true; m_stoppedAt = value; } /** *

The time the session entered STOP_IN_PROGRESS state.

*/ inline void SetStoppedAt(Aws::Utils::DateTime&& value) { m_stoppedAtHasBeenSet = true; m_stoppedAt = std::move(value); } /** *

The time the session entered STOP_IN_PROGRESS state.

*/ inline StreamingSession& WithStoppedAt(const Aws::Utils::DateTime& value) { SetStoppedAt(value); return *this;} /** *

The time the session entered STOP_IN_PROGRESS state.

*/ inline StreamingSession& WithStoppedAt(Aws::Utils::DateTime&& value) { SetStoppedAt(std::move(value)); return *this;} /** *

The user ID of the user that stopped the streaming session.

*/ inline const Aws::String& GetStoppedBy() const{ return m_stoppedBy; } /** *

The user ID of the user that stopped the streaming session.

*/ inline bool StoppedByHasBeenSet() const { return m_stoppedByHasBeenSet; } /** *

The user ID of the user that stopped the streaming session.

*/ inline void SetStoppedBy(const Aws::String& value) { m_stoppedByHasBeenSet = true; m_stoppedBy = value; } /** *

The user ID of the user that stopped the streaming session.

*/ inline void SetStoppedBy(Aws::String&& value) { m_stoppedByHasBeenSet = true; m_stoppedBy = std::move(value); } /** *

The user ID of the user that stopped the streaming session.

*/ inline void SetStoppedBy(const char* value) { m_stoppedByHasBeenSet = true; m_stoppedBy.assign(value); } /** *

The user ID of the user that stopped the streaming session.

*/ inline StreamingSession& WithStoppedBy(const Aws::String& value) { SetStoppedBy(value); return *this;} /** *

The user ID of the user that stopped the streaming session.

*/ inline StreamingSession& WithStoppedBy(Aws::String&& value) { SetStoppedBy(std::move(value)); return *this;} /** *

The user ID of the user that stopped the streaming session.

*/ inline StreamingSession& WithStoppedBy(const char* value) { SetStoppedBy(value); return *this;} /** *

The ID of the streaming image.

*/ inline const Aws::String& GetStreamingImageId() const{ return m_streamingImageId; } /** *

The ID of the streaming image.

*/ inline bool StreamingImageIdHasBeenSet() const { return m_streamingImageIdHasBeenSet; } /** *

The ID of the streaming image.

*/ inline void SetStreamingImageId(const Aws::String& value) { m_streamingImageIdHasBeenSet = true; m_streamingImageId = value; } /** *

The ID of the streaming image.

*/ inline void SetStreamingImageId(Aws::String&& value) { m_streamingImageIdHasBeenSet = true; m_streamingImageId = std::move(value); } /** *

The ID of the streaming image.

*/ inline void SetStreamingImageId(const char* value) { m_streamingImageIdHasBeenSet = true; m_streamingImageId.assign(value); } /** *

The ID of the streaming image.

*/ inline StreamingSession& WithStreamingImageId(const Aws::String& value) { SetStreamingImageId(value); return *this;} /** *

The ID of the streaming image.

*/ inline StreamingSession& WithStreamingImageId(Aws::String&& value) { SetStreamingImageId(std::move(value)); return *this;} /** *

The ID of the streaming image.

*/ inline StreamingSession& WithStreamingImageId(const char* value) { SetStreamingImageId(value); return *this;} /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A collection of labels, in the form of key-value pairs, that apply to this * resource.

*/ inline StreamingSession& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The time the streaming session will automatically terminate if not terminated * by the user.

*/ inline const Aws::Utils::DateTime& GetTerminateAt() const{ return m_terminateAt; } /** *

The time the streaming session will automatically terminate if not terminated * by the user.

*/ inline bool TerminateAtHasBeenSet() const { return m_terminateAtHasBeenSet; } /** *

The time the streaming session will automatically terminate if not terminated * by the user.

*/ inline void SetTerminateAt(const Aws::Utils::DateTime& value) { m_terminateAtHasBeenSet = true; m_terminateAt = value; } /** *

The time the streaming session will automatically terminate if not terminated * by the user.

*/ inline void SetTerminateAt(Aws::Utils::DateTime&& value) { m_terminateAtHasBeenSet = true; m_terminateAt = std::move(value); } /** *

The time the streaming session will automatically terminate if not terminated * by the user.

*/ inline StreamingSession& WithTerminateAt(const Aws::Utils::DateTime& value) { SetTerminateAt(value); return *this;} /** *

The time the streaming session will automatically terminate if not terminated * by the user.

*/ inline StreamingSession& WithTerminateAt(Aws::Utils::DateTime&& value) { SetTerminateAt(std::move(value)); return *this;} /** *

The ISO timestamp in seconds for when the resource was updated.

*/ inline const Aws::Utils::DateTime& GetUpdatedAt() const{ return m_updatedAt; } /** *

The ISO timestamp in seconds for when the resource was updated.

*/ inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; } /** *

The ISO timestamp in seconds for when the resource was updated.

*/ inline void SetUpdatedAt(const Aws::Utils::DateTime& value) { m_updatedAtHasBeenSet = true; m_updatedAt = value; } /** *

The ISO timestamp in seconds for when the resource was updated.

*/ inline void SetUpdatedAt(Aws::Utils::DateTime&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::move(value); } /** *

The ISO timestamp in seconds for when the resource was updated.

*/ inline StreamingSession& WithUpdatedAt(const Aws::Utils::DateTime& value) { SetUpdatedAt(value); return *this;} /** *

The ISO timestamp in seconds for when the resource was updated.

*/ inline StreamingSession& WithUpdatedAt(Aws::Utils::DateTime&& value) { SetUpdatedAt(std::move(value)); return *this;} /** *

The user ID of the user that most recently updated the resource.

*/ inline const Aws::String& GetUpdatedBy() const{ return m_updatedBy; } /** *

The user ID of the user that most recently updated the resource.

*/ inline bool UpdatedByHasBeenSet() const { return m_updatedByHasBeenSet; } /** *

The user ID of the user that most recently updated the resource.

*/ inline void SetUpdatedBy(const Aws::String& value) { m_updatedByHasBeenSet = true; m_updatedBy = value; } /** *

The user ID of the user that most recently updated the resource.

*/ inline void SetUpdatedBy(Aws::String&& value) { m_updatedByHasBeenSet = true; m_updatedBy = std::move(value); } /** *

The user ID of the user that most recently updated the resource.

*/ inline void SetUpdatedBy(const char* value) { m_updatedByHasBeenSet = true; m_updatedBy.assign(value); } /** *

The user ID of the user that most recently updated the resource.

*/ inline StreamingSession& WithUpdatedBy(const Aws::String& value) { SetUpdatedBy(value); return *this;} /** *

The user ID of the user that most recently updated the resource.

*/ inline StreamingSession& WithUpdatedBy(Aws::String&& value) { SetUpdatedBy(std::move(value)); return *this;} /** *

The user ID of the user that most recently updated the resource.

*/ inline StreamingSession& WithUpdatedBy(const char* value) { SetUpdatedBy(value); return *this;} /** *

Custom volume configuration for the root volumes that are attached to * streaming sessions.

This parameter is only allowed when * sessionPersistenceMode is ACTIVATED.

*/ inline const VolumeConfiguration& GetVolumeConfiguration() const{ return m_volumeConfiguration; } /** *

Custom volume configuration for the root volumes that are attached to * streaming sessions.

This parameter is only allowed when * sessionPersistenceMode is ACTIVATED.

*/ inline bool VolumeConfigurationHasBeenSet() const { return m_volumeConfigurationHasBeenSet; } /** *

Custom volume configuration for the root volumes that are attached to * streaming sessions.

This parameter is only allowed when * sessionPersistenceMode is ACTIVATED.

*/ inline void SetVolumeConfiguration(const VolumeConfiguration& value) { m_volumeConfigurationHasBeenSet = true; m_volumeConfiguration = value; } /** *

Custom volume configuration for the root volumes that are attached to * streaming sessions.

This parameter is only allowed when * sessionPersistenceMode is ACTIVATED.

*/ inline void SetVolumeConfiguration(VolumeConfiguration&& value) { m_volumeConfigurationHasBeenSet = true; m_volumeConfiguration = std::move(value); } /** *

Custom volume configuration for the root volumes that are attached to * streaming sessions.

This parameter is only allowed when * sessionPersistenceMode is ACTIVATED.

*/ inline StreamingSession& WithVolumeConfiguration(const VolumeConfiguration& value) { SetVolumeConfiguration(value); return *this;} /** *

Custom volume configuration for the root volumes that are attached to * streaming sessions.

This parameter is only allowed when * sessionPersistenceMode is ACTIVATED.

*/ inline StreamingSession& WithVolumeConfiguration(VolumeConfiguration&& value) { SetVolumeConfiguration(std::move(value)); return *this;} /** *

Determine if an EBS volume created from this streaming session will be backed * up.

*/ inline const VolumeRetentionMode& GetVolumeRetentionMode() const{ return m_volumeRetentionMode; } /** *

Determine if an EBS volume created from this streaming session will be backed * up.

*/ inline bool VolumeRetentionModeHasBeenSet() const { return m_volumeRetentionModeHasBeenSet; } /** *

Determine if an EBS volume created from this streaming session will be backed * up.

*/ inline void SetVolumeRetentionMode(const VolumeRetentionMode& value) { m_volumeRetentionModeHasBeenSet = true; m_volumeRetentionMode = value; } /** *

Determine if an EBS volume created from this streaming session will be backed * up.

*/ inline void SetVolumeRetentionMode(VolumeRetentionMode&& value) { m_volumeRetentionModeHasBeenSet = true; m_volumeRetentionMode = std::move(value); } /** *

Determine if an EBS volume created from this streaming session will be backed * up.

*/ inline StreamingSession& WithVolumeRetentionMode(const VolumeRetentionMode& value) { SetVolumeRetentionMode(value); return *this;} /** *

Determine if an EBS volume created from this streaming session will be backed * up.

*/ inline StreamingSession& WithVolumeRetentionMode(VolumeRetentionMode&& value) { SetVolumeRetentionMode(std::move(value)); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; AutomaticTerminationMode m_automaticTerminationMode; bool m_automaticTerminationModeHasBeenSet = false; SessionBackupMode m_backupMode; bool m_backupModeHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_createdBy; bool m_createdByHasBeenSet = false; Aws::String m_ec2InstanceType; bool m_ec2InstanceTypeHasBeenSet = false; Aws::String m_launchProfileId; bool m_launchProfileIdHasBeenSet = false; int m_maxBackupsToRetain; bool m_maxBackupsToRetainHasBeenSet = false; Aws::String m_ownedBy; bool m_ownedByHasBeenSet = false; Aws::String m_sessionId; bool m_sessionIdHasBeenSet = false; SessionPersistenceMode m_sessionPersistenceMode; bool m_sessionPersistenceModeHasBeenSet = false; Aws::Utils::DateTime m_startedAt; bool m_startedAtHasBeenSet = false; Aws::String m_startedBy; bool m_startedByHasBeenSet = false; Aws::String m_startedFromBackupId; bool m_startedFromBackupIdHasBeenSet = false; StreamingSessionState m_state; bool m_stateHasBeenSet = false; StreamingSessionStatusCode m_statusCode; bool m_statusCodeHasBeenSet = false; Aws::String m_statusMessage; bool m_statusMessageHasBeenSet = false; Aws::Utils::DateTime m_stopAt; bool m_stopAtHasBeenSet = false; Aws::Utils::DateTime m_stoppedAt; bool m_stoppedAtHasBeenSet = false; Aws::String m_stoppedBy; bool m_stoppedByHasBeenSet = false; Aws::String m_streamingImageId; bool m_streamingImageIdHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::Utils::DateTime m_terminateAt; bool m_terminateAtHasBeenSet = false; Aws::Utils::DateTime m_updatedAt; bool m_updatedAtHasBeenSet = false; Aws::String m_updatedBy; bool m_updatedByHasBeenSet = false; VolumeConfiguration m_volumeConfiguration; bool m_volumeConfigurationHasBeenSet = false; VolumeRetentionMode m_volumeRetentionMode; bool m_volumeRetentionModeHasBeenSet = false; }; } // namespace Model } // namespace NimbleStudio } // namespace Aws