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

Describes a WorkSpace.

See Also:

AWS * API Reference

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

The running mode. For more information, see Manage * the WorkSpace Running Mode.

The MANUAL value is * only supported by Amazon WorkSpaces Core. Contact your account team to be * allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

* */ inline const RunningMode& GetRunningMode() const{ return m_runningMode; } /** *

The running mode. For more information, see Manage * the WorkSpace Running Mode.

The MANUAL value is * only supported by Amazon WorkSpaces Core. Contact your account team to be * allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

* */ inline bool RunningModeHasBeenSet() const { return m_runningModeHasBeenSet; } /** *

The running mode. For more information, see Manage * the WorkSpace Running Mode.

The MANUAL value is * only supported by Amazon WorkSpaces Core. Contact your account team to be * allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

* */ inline void SetRunningMode(const RunningMode& value) { m_runningModeHasBeenSet = true; m_runningMode = value; } /** *

The running mode. For more information, see Manage * the WorkSpace Running Mode.

The MANUAL value is * only supported by Amazon WorkSpaces Core. Contact your account team to be * allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

* */ inline void SetRunningMode(RunningMode&& value) { m_runningModeHasBeenSet = true; m_runningMode = std::move(value); } /** *

The running mode. For more information, see Manage * the WorkSpace Running Mode.

The MANUAL value is * only supported by Amazon WorkSpaces Core. Contact your account team to be * allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

* */ inline WorkspaceProperties& WithRunningMode(const RunningMode& value) { SetRunningMode(value); return *this;} /** *

The running mode. For more information, see Manage * the WorkSpace Running Mode.

The MANUAL value is * only supported by Amazon WorkSpaces Core. Contact your account team to be * allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

* */ inline WorkspaceProperties& WithRunningMode(RunningMode&& value) { SetRunningMode(std::move(value)); return *this;} /** *

The time after a user logs off when WorkSpaces are automatically stopped. * Configured in 60-minute intervals.

*/ inline int GetRunningModeAutoStopTimeoutInMinutes() const{ return m_runningModeAutoStopTimeoutInMinutes; } /** *

The time after a user logs off when WorkSpaces are automatically stopped. * Configured in 60-minute intervals.

*/ inline bool RunningModeAutoStopTimeoutInMinutesHasBeenSet() const { return m_runningModeAutoStopTimeoutInMinutesHasBeenSet; } /** *

The time after a user logs off when WorkSpaces are automatically stopped. * Configured in 60-minute intervals.

*/ inline void SetRunningModeAutoStopTimeoutInMinutes(int value) { m_runningModeAutoStopTimeoutInMinutesHasBeenSet = true; m_runningModeAutoStopTimeoutInMinutes = value; } /** *

The time after a user logs off when WorkSpaces are automatically stopped. * Configured in 60-minute intervals.

*/ inline WorkspaceProperties& WithRunningModeAutoStopTimeoutInMinutes(int value) { SetRunningModeAutoStopTimeoutInMinutes(value); return *this;} /** *

The size of the root volume. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline int GetRootVolumeSizeGib() const{ return m_rootVolumeSizeGib; } /** *

The size of the root volume. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline bool RootVolumeSizeGibHasBeenSet() const { return m_rootVolumeSizeGibHasBeenSet; } /** *

The size of the root volume. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline void SetRootVolumeSizeGib(int value) { m_rootVolumeSizeGibHasBeenSet = true; m_rootVolumeSizeGib = value; } /** *

The size of the root volume. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline WorkspaceProperties& WithRootVolumeSizeGib(int value) { SetRootVolumeSizeGib(value); return *this;} /** *

The size of the user storage. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline int GetUserVolumeSizeGib() const{ return m_userVolumeSizeGib; } /** *

The size of the user storage. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline bool UserVolumeSizeGibHasBeenSet() const { return m_userVolumeSizeGibHasBeenSet; } /** *

The size of the user storage. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline void SetUserVolumeSizeGib(int value) { m_userVolumeSizeGibHasBeenSet = true; m_userVolumeSizeGib = value; } /** *

The size of the user storage. For important information about how to modify * the size of the root and user volumes, see Modify * a WorkSpace.

*/ inline WorkspaceProperties& WithUserVolumeSizeGib(int value) { SetUserVolumeSizeGib(value); return *this;} /** *

The compute type. For more information, see Amazon * WorkSpaces Bundles.

*/ inline const Compute& GetComputeTypeName() const{ return m_computeTypeName; } /** *

The compute type. For more information, see Amazon * WorkSpaces Bundles.

*/ inline bool ComputeTypeNameHasBeenSet() const { return m_computeTypeNameHasBeenSet; } /** *

The compute type. For more information, see Amazon * WorkSpaces Bundles.

*/ inline void SetComputeTypeName(const Compute& value) { m_computeTypeNameHasBeenSet = true; m_computeTypeName = value; } /** *

The compute type. For more information, see Amazon * WorkSpaces Bundles.

*/ inline void SetComputeTypeName(Compute&& value) { m_computeTypeNameHasBeenSet = true; m_computeTypeName = std::move(value); } /** *

The compute type. For more information, see Amazon * WorkSpaces Bundles.

*/ inline WorkspaceProperties& WithComputeTypeName(const Compute& value) { SetComputeTypeName(value); return *this;} /** *

The compute type. For more information, see Amazon * WorkSpaces Bundles.

*/ inline WorkspaceProperties& WithComputeTypeName(Compute&& value) { SetComputeTypeName(std::move(value)); return *this;} /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline const Aws::Vector& GetProtocols() const{ return m_protocols; } /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline bool ProtocolsHasBeenSet() const { return m_protocolsHasBeenSet; } /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline void SetProtocols(const Aws::Vector& value) { m_protocolsHasBeenSet = true; m_protocols = value; } /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline void SetProtocols(Aws::Vector&& value) { m_protocolsHasBeenSet = true; m_protocols = std::move(value); } /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline WorkspaceProperties& WithProtocols(const Aws::Vector& value) { SetProtocols(value); return *this;} /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline WorkspaceProperties& WithProtocols(Aws::Vector&& value) { SetProtocols(std::move(value)); return *this;} /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline WorkspaceProperties& AddProtocols(const Protocol& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(value); return *this; } /** *

The protocol. For more information, see * Protocols for Amazon WorkSpaces.

  • Only available for * WorkSpaces created with PCoIP bundles.

  • The * Protocols property is case sensitive. Ensure you use * PCOIP or WSP.

  • Unavailable for * Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, * GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

*/ inline WorkspaceProperties& AddProtocols(Protocol&& value) { m_protocolsHasBeenSet = true; m_protocols.push_back(std::move(value)); return *this; } private: RunningMode m_runningMode; bool m_runningModeHasBeenSet = false; int m_runningModeAutoStopTimeoutInMinutes; bool m_runningModeAutoStopTimeoutInMinutesHasBeenSet = false; int m_rootVolumeSizeGib; bool m_rootVolumeSizeGibHasBeenSet = false; int m_userVolumeSizeGib; bool m_userVolumeSizeGibHasBeenSet = false; Compute m_computeTypeName; bool m_computeTypeNameHasBeenSet = false; Aws::Vector m_protocols; bool m_protocolsHasBeenSet = false; }; } // namespace Model } // namespace WorkSpaces } // namespace Aws