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

Configuration for streaming workstations created using this launch * profile.

See Also:

AWS * API Reference

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

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 StreamConfigurationCreate& 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 StreamConfigurationCreate& WithAutomaticTerminationMode(AutomaticTerminationMode&& value) { SetAutomaticTerminationMode(std::move(value)); return *this;} /** *

Allows or deactivates the use of the system clipboard to copy and paste * between the streaming session and streaming client.

*/ inline const StreamingClipboardMode& GetClipboardMode() const{ return m_clipboardMode; } /** *

Allows or deactivates the use of the system clipboard to copy and paste * between the streaming session and streaming client.

*/ inline bool ClipboardModeHasBeenSet() const { return m_clipboardModeHasBeenSet; } /** *

Allows or deactivates the use of the system clipboard to copy and paste * between the streaming session and streaming client.

*/ inline void SetClipboardMode(const StreamingClipboardMode& value) { m_clipboardModeHasBeenSet = true; m_clipboardMode = value; } /** *

Allows or deactivates the use of the system clipboard to copy and paste * between the streaming session and streaming client.

*/ inline void SetClipboardMode(StreamingClipboardMode&& value) { m_clipboardModeHasBeenSet = true; m_clipboardMode = std::move(value); } /** *

Allows or deactivates the use of the system clipboard to copy and paste * between the streaming session and streaming client.

*/ inline StreamConfigurationCreate& WithClipboardMode(const StreamingClipboardMode& value) { SetClipboardMode(value); return *this;} /** *

Allows or deactivates the use of the system clipboard to copy and paste * between the streaming session and streaming client.

*/ inline StreamConfigurationCreate& WithClipboardMode(StreamingClipboardMode&& value) { SetClipboardMode(std::move(value)); return *this;} /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline const Aws::Vector& GetEc2InstanceTypes() const{ return m_ec2InstanceTypes; } /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline bool Ec2InstanceTypesHasBeenSet() const { return m_ec2InstanceTypesHasBeenSet; } /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline void SetEc2InstanceTypes(const Aws::Vector& value) { m_ec2InstanceTypesHasBeenSet = true; m_ec2InstanceTypes = value; } /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline void SetEc2InstanceTypes(Aws::Vector&& value) { m_ec2InstanceTypesHasBeenSet = true; m_ec2InstanceTypes = std::move(value); } /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& WithEc2InstanceTypes(const Aws::Vector& value) { SetEc2InstanceTypes(value); return *this;} /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& WithEc2InstanceTypes(Aws::Vector&& value) { SetEc2InstanceTypes(std::move(value)); return *this;} /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& AddEc2InstanceTypes(const StreamingInstanceType& value) { m_ec2InstanceTypesHasBeenSet = true; m_ec2InstanceTypes.push_back(value); return *this; } /** *

The EC2 instance types that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& AddEc2InstanceTypes(StreamingInstanceType&& value) { m_ec2InstanceTypesHasBeenSet = true; m_ec2InstanceTypes.push_back(std::move(value)); return *this; } /** *

The length of time, in minutes, that a streaming session can be active before * it is stopped or terminated. After this point, Nimble Studio automatically * terminates or stops the session. The default length of time is 690 minutes, and * the maximum length of time is 30 days.

*/ inline int GetMaxSessionLengthInMinutes() const{ return m_maxSessionLengthInMinutes; } /** *

The length of time, in minutes, that a streaming session can be active before * it is stopped or terminated. After this point, Nimble Studio automatically * terminates or stops the session. The default length of time is 690 minutes, and * the maximum length of time is 30 days.

*/ inline bool MaxSessionLengthInMinutesHasBeenSet() const { return m_maxSessionLengthInMinutesHasBeenSet; } /** *

The length of time, in minutes, that a streaming session can be active before * it is stopped or terminated. After this point, Nimble Studio automatically * terminates or stops the session. The default length of time is 690 minutes, and * the maximum length of time is 30 days.

*/ inline void SetMaxSessionLengthInMinutes(int value) { m_maxSessionLengthInMinutesHasBeenSet = true; m_maxSessionLengthInMinutes = value; } /** *

The length of time, in minutes, that a streaming session can be active before * it is stopped or terminated. After this point, Nimble Studio automatically * terminates or stops the session. The default length of time is 690 minutes, and * the maximum length of time is 30 days.

*/ inline StreamConfigurationCreate& WithMaxSessionLengthInMinutes(int value) { SetMaxSessionLengthInMinutes(value); return *this;} /** *

Integer that determines if you can start and stop your sessions and how long * a session can stay in the STOPPED state. The default value is 0. * The maximum value is 5760.

This field is allowed only when * sessionPersistenceMode is ACTIVATED and * automaticTerminationMode is ACTIVATED.

If the * value is set to 0, your sessions can’t be STOPPED. If you then call * StopStreamingSession, the session fails. If the time that a session * stays in the READY state exceeds the * maxSessionLengthInMinutes value, the session will automatically be * terminated (instead of STOPPED).

If the value is set to a * positive number, the session can be stopped. You can call * StopStreamingSession to stop sessions in the READY * state. If the time that a session stays in the READY state exceeds * the maxSessionLengthInMinutes value, the session will automatically * be stopped (instead of terminated).

*/ inline int GetMaxStoppedSessionLengthInMinutes() const{ return m_maxStoppedSessionLengthInMinutes; } /** *

Integer that determines if you can start and stop your sessions and how long * a session can stay in the STOPPED state. The default value is 0. * The maximum value is 5760.

This field is allowed only when * sessionPersistenceMode is ACTIVATED and * automaticTerminationMode is ACTIVATED.

If the * value is set to 0, your sessions can’t be STOPPED. If you then call * StopStreamingSession, the session fails. If the time that a session * stays in the READY state exceeds the * maxSessionLengthInMinutes value, the session will automatically be * terminated (instead of STOPPED).

If the value is set to a * positive number, the session can be stopped. You can call * StopStreamingSession to stop sessions in the READY * state. If the time that a session stays in the READY state exceeds * the maxSessionLengthInMinutes value, the session will automatically * be stopped (instead of terminated).

*/ inline bool MaxStoppedSessionLengthInMinutesHasBeenSet() const { return m_maxStoppedSessionLengthInMinutesHasBeenSet; } /** *

Integer that determines if you can start and stop your sessions and how long * a session can stay in the STOPPED state. The default value is 0. * The maximum value is 5760.

This field is allowed only when * sessionPersistenceMode is ACTIVATED and * automaticTerminationMode is ACTIVATED.

If the * value is set to 0, your sessions can’t be STOPPED. If you then call * StopStreamingSession, the session fails. If the time that a session * stays in the READY state exceeds the * maxSessionLengthInMinutes value, the session will automatically be * terminated (instead of STOPPED).

If the value is set to a * positive number, the session can be stopped. You can call * StopStreamingSession to stop sessions in the READY * state. If the time that a session stays in the READY state exceeds * the maxSessionLengthInMinutes value, the session will automatically * be stopped (instead of terminated).

*/ inline void SetMaxStoppedSessionLengthInMinutes(int value) { m_maxStoppedSessionLengthInMinutesHasBeenSet = true; m_maxStoppedSessionLengthInMinutes = value; } /** *

Integer that determines if you can start and stop your sessions and how long * a session can stay in the STOPPED state. The default value is 0. * The maximum value is 5760.

This field is allowed only when * sessionPersistenceMode is ACTIVATED and * automaticTerminationMode is ACTIVATED.

If the * value is set to 0, your sessions can’t be STOPPED. If you then call * StopStreamingSession, the session fails. If the time that a session * stays in the READY state exceeds the * maxSessionLengthInMinutes value, the session will automatically be * terminated (instead of STOPPED).

If the value is set to a * positive number, the session can be stopped. You can call * StopStreamingSession to stop sessions in the READY * state. If the time that a session stays in the READY state exceeds * the maxSessionLengthInMinutes value, the session will automatically * be stopped (instead of terminated).

*/ inline StreamConfigurationCreate& WithMaxStoppedSessionLengthInMinutes(int value) { SetMaxStoppedSessionLengthInMinutes(value); return *this;} /** *

Configures how streaming sessions are backed up when launched from this * launch profile.

*/ inline const StreamConfigurationSessionBackup& GetSessionBackup() const{ return m_sessionBackup; } /** *

Configures how streaming sessions are backed up when launched from this * launch profile.

*/ inline bool SessionBackupHasBeenSet() const { return m_sessionBackupHasBeenSet; } /** *

Configures how streaming sessions are backed up when launched from this * launch profile.

*/ inline void SetSessionBackup(const StreamConfigurationSessionBackup& value) { m_sessionBackupHasBeenSet = true; m_sessionBackup = value; } /** *

Configures how streaming sessions are backed up when launched from this * launch profile.

*/ inline void SetSessionBackup(StreamConfigurationSessionBackup&& value) { m_sessionBackupHasBeenSet = true; m_sessionBackup = std::move(value); } /** *

Configures how streaming sessions are backed up when launched from this * launch profile.

*/ inline StreamConfigurationCreate& WithSessionBackup(const StreamConfigurationSessionBackup& value) { SetSessionBackup(value); return *this;} /** *

Configures how streaming sessions are backed up when launched from this * launch profile.

*/ inline StreamConfigurationCreate& WithSessionBackup(StreamConfigurationSessionBackup&& value) { SetSessionBackup(std::move(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 StreamConfigurationCreate& 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 StreamConfigurationCreate& WithSessionPersistenceMode(SessionPersistenceMode&& value) { SetSessionPersistenceMode(std::move(value)); return *this;} /** *

The upload storage for a streaming workstation that is created using this * launch profile.

*/ inline const StreamConfigurationSessionStorage& GetSessionStorage() const{ return m_sessionStorage; } /** *

The upload storage for a streaming workstation that is created using this * launch profile.

*/ inline bool SessionStorageHasBeenSet() const { return m_sessionStorageHasBeenSet; } /** *

The upload storage for a streaming workstation that is created using this * launch profile.

*/ inline void SetSessionStorage(const StreamConfigurationSessionStorage& value) { m_sessionStorageHasBeenSet = true; m_sessionStorage = value; } /** *

The upload storage for a streaming workstation that is created using this * launch profile.

*/ inline void SetSessionStorage(StreamConfigurationSessionStorage&& value) { m_sessionStorageHasBeenSet = true; m_sessionStorage = std::move(value); } /** *

The upload storage for a streaming workstation that is created using this * launch profile.

*/ inline StreamConfigurationCreate& WithSessionStorage(const StreamConfigurationSessionStorage& value) { SetSessionStorage(value); return *this;} /** *

The upload storage for a streaming workstation that is created using this * launch profile.

*/ inline StreamConfigurationCreate& WithSessionStorage(StreamConfigurationSessionStorage&& value) { SetSessionStorage(std::move(value)); return *this;} /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline const Aws::Vector& GetStreamingImageIds() const{ return m_streamingImageIds; } /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline bool StreamingImageIdsHasBeenSet() const { return m_streamingImageIdsHasBeenSet; } /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline void SetStreamingImageIds(const Aws::Vector& value) { m_streamingImageIdsHasBeenSet = true; m_streamingImageIds = value; } /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline void SetStreamingImageIds(Aws::Vector&& value) { m_streamingImageIdsHasBeenSet = true; m_streamingImageIds = std::move(value); } /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& WithStreamingImageIds(const Aws::Vector& value) { SetStreamingImageIds(value); return *this;} /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& WithStreamingImageIds(Aws::Vector&& value) { SetStreamingImageIds(std::move(value)); return *this;} /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& AddStreamingImageIds(const Aws::String& value) { m_streamingImageIdsHasBeenSet = true; m_streamingImageIds.push_back(value); return *this; } /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& AddStreamingImageIds(Aws::String&& value) { m_streamingImageIdsHasBeenSet = true; m_streamingImageIds.push_back(std::move(value)); return *this; } /** *

The streaming images that users can select from when launching a streaming * session with this launch profile.

*/ inline StreamConfigurationCreate& AddStreamingImageIds(const char* value) { m_streamingImageIdsHasBeenSet = true; m_streamingImageIds.push_back(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 StreamConfigurationCreate& 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 StreamConfigurationCreate& WithVolumeConfiguration(VolumeConfiguration&& value) { SetVolumeConfiguration(std::move(value)); return *this;} private: AutomaticTerminationMode m_automaticTerminationMode; bool m_automaticTerminationModeHasBeenSet = false; StreamingClipboardMode m_clipboardMode; bool m_clipboardModeHasBeenSet = false; Aws::Vector m_ec2InstanceTypes; bool m_ec2InstanceTypesHasBeenSet = false; int m_maxSessionLengthInMinutes; bool m_maxSessionLengthInMinutesHasBeenSet = false; int m_maxStoppedSessionLengthInMinutes; bool m_maxStoppedSessionLengthInMinutesHasBeenSet = false; StreamConfigurationSessionBackup m_sessionBackup; bool m_sessionBackupHasBeenSet = false; SessionPersistenceMode m_sessionPersistenceMode; bool m_sessionPersistenceModeHasBeenSet = false; StreamConfigurationSessionStorage m_sessionStorage; bool m_sessionStorageHasBeenSet = false; Aws::Vector m_streamingImageIds; bool m_streamingImageIdsHasBeenSet = false; VolumeConfiguration m_volumeConfiguration; bool m_volumeConfigurationHasBeenSet = false; }; } // namespace Model } // namespace NimbleStudio } // namespace Aws