/** * 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 the information used to create a WorkSpace.

See * Also:

AWS * API Reference

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

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline const Aws::String& GetDirectoryId() const{ return m_directoryId; } /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline bool DirectoryIdHasBeenSet() const { return m_directoryIdHasBeenSet; } /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline void SetDirectoryId(const Aws::String& value) { m_directoryIdHasBeenSet = true; m_directoryId = value; } /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline void SetDirectoryId(Aws::String&& value) { m_directoryIdHasBeenSet = true; m_directoryId = std::move(value); } /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline void SetDirectoryId(const char* value) { m_directoryIdHasBeenSet = true; m_directoryId.assign(value); } /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline WorkspaceRequest& WithDirectoryId(const Aws::String& value) { SetDirectoryId(value); return *this;} /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline WorkspaceRequest& WithDirectoryId(Aws::String&& value) { SetDirectoryId(std::move(value)); return *this;} /** *

The identifier of the Directory Service directory for the WorkSpace. You can * use DescribeWorkspaceDirectories to list the available directories.

*/ inline WorkspaceRequest& WithDirectoryId(const char* value) { SetDirectoryId(value); return *this;} /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline const Aws::String& GetUserName() const{ return m_userName; } /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline bool UserNameHasBeenSet() const { return m_userNameHasBeenSet; } /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline void SetUserName(const Aws::String& value) { m_userNameHasBeenSet = true; m_userName = value; } /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline void SetUserName(Aws::String&& value) { m_userNameHasBeenSet = true; m_userName = std::move(value); } /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline void SetUserName(const char* value) { m_userNameHasBeenSet = true; m_userName.assign(value); } /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline WorkspaceRequest& WithUserName(const Aws::String& value) { SetUserName(value); return *this;} /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline WorkspaceRequest& WithUserName(Aws::String&& value) { SetUserName(std::move(value)); return *this;} /** *

The user name of the user for the WorkSpace. This user name must exist in the * Directory Service directory for the WorkSpace.

*/ inline WorkspaceRequest& WithUserName(const char* value) { SetUserName(value); return *this;} /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline const Aws::String& GetBundleId() const{ return m_bundleId; } /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline bool BundleIdHasBeenSet() const { return m_bundleIdHasBeenSet; } /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline void SetBundleId(const Aws::String& value) { m_bundleIdHasBeenSet = true; m_bundleId = value; } /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline void SetBundleId(Aws::String&& value) { m_bundleIdHasBeenSet = true; m_bundleId = std::move(value); } /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline void SetBundleId(const char* value) { m_bundleIdHasBeenSet = true; m_bundleId.assign(value); } /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline WorkspaceRequest& WithBundleId(const Aws::String& value) { SetBundleId(value); return *this;} /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline WorkspaceRequest& WithBundleId(Aws::String&& value) { SetBundleId(std::move(value)); return *this;} /** *

The identifier of the bundle for the WorkSpace. You can use * DescribeWorkspaceBundles to list the available bundles.

*/ inline WorkspaceRequest& WithBundleId(const char* value) { SetBundleId(value); return *this;} /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline const Aws::String& GetVolumeEncryptionKey() const{ return m_volumeEncryptionKey; } /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline bool VolumeEncryptionKeyHasBeenSet() const { return m_volumeEncryptionKeyHasBeenSet; } /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline void SetVolumeEncryptionKey(const Aws::String& value) { m_volumeEncryptionKeyHasBeenSet = true; m_volumeEncryptionKey = value; } /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline void SetVolumeEncryptionKey(Aws::String&& value) { m_volumeEncryptionKeyHasBeenSet = true; m_volumeEncryptionKey = std::move(value); } /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline void SetVolumeEncryptionKey(const char* value) { m_volumeEncryptionKeyHasBeenSet = true; m_volumeEncryptionKey.assign(value); } /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline WorkspaceRequest& WithVolumeEncryptionKey(const Aws::String& value) { SetVolumeEncryptionKey(value); return *this;} /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline WorkspaceRequest& WithVolumeEncryptionKey(Aws::String&& value) { SetVolumeEncryptionKey(std::move(value)); return *this;} /** *

The ARN of the symmetric KMS key used to encrypt data stored on your * WorkSpace. Amazon WorkSpaces does not support asymmetric KMS keys.

*/ inline WorkspaceRequest& WithVolumeEncryptionKey(const char* value) { SetVolumeEncryptionKey(value); return *this;} /** *

Indicates whether the data stored on the user volume is encrypted.

*/ inline bool GetUserVolumeEncryptionEnabled() const{ return m_userVolumeEncryptionEnabled; } /** *

Indicates whether the data stored on the user volume is encrypted.

*/ inline bool UserVolumeEncryptionEnabledHasBeenSet() const { return m_userVolumeEncryptionEnabledHasBeenSet; } /** *

Indicates whether the data stored on the user volume is encrypted.

*/ inline void SetUserVolumeEncryptionEnabled(bool value) { m_userVolumeEncryptionEnabledHasBeenSet = true; m_userVolumeEncryptionEnabled = value; } /** *

Indicates whether the data stored on the user volume is encrypted.

*/ inline WorkspaceRequest& WithUserVolumeEncryptionEnabled(bool value) { SetUserVolumeEncryptionEnabled(value); return *this;} /** *

Indicates whether the data stored on the root volume is encrypted.

*/ inline bool GetRootVolumeEncryptionEnabled() const{ return m_rootVolumeEncryptionEnabled; } /** *

Indicates whether the data stored on the root volume is encrypted.

*/ inline bool RootVolumeEncryptionEnabledHasBeenSet() const { return m_rootVolumeEncryptionEnabledHasBeenSet; } /** *

Indicates whether the data stored on the root volume is encrypted.

*/ inline void SetRootVolumeEncryptionEnabled(bool value) { m_rootVolumeEncryptionEnabledHasBeenSet = true; m_rootVolumeEncryptionEnabled = value; } /** *

Indicates whether the data stored on the root volume is encrypted.

*/ inline WorkspaceRequest& WithRootVolumeEncryptionEnabled(bool value) { SetRootVolumeEncryptionEnabled(value); return *this;} /** *

The WorkSpace properties.

*/ inline const WorkspaceProperties& GetWorkspaceProperties() const{ return m_workspaceProperties; } /** *

The WorkSpace properties.

*/ inline bool WorkspacePropertiesHasBeenSet() const { return m_workspacePropertiesHasBeenSet; } /** *

The WorkSpace properties.

*/ inline void SetWorkspaceProperties(const WorkspaceProperties& value) { m_workspacePropertiesHasBeenSet = true; m_workspaceProperties = value; } /** *

The WorkSpace properties.

*/ inline void SetWorkspaceProperties(WorkspaceProperties&& value) { m_workspacePropertiesHasBeenSet = true; m_workspaceProperties = std::move(value); } /** *

The WorkSpace properties.

*/ inline WorkspaceRequest& WithWorkspaceProperties(const WorkspaceProperties& value) { SetWorkspaceProperties(value); return *this;} /** *

The WorkSpace properties.

*/ inline WorkspaceRequest& WithWorkspaceProperties(WorkspaceProperties&& value) { SetWorkspaceProperties(std::move(value)); return *this;} /** *

The tags for the WorkSpace.

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

The tags for the WorkSpace.

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

The tags for the WorkSpace.

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

The tags for the WorkSpace.

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

The tags for the WorkSpace.

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

The tags for the WorkSpace.

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

The tags for the WorkSpace.

*/ inline WorkspaceRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags for the WorkSpace.

*/ inline WorkspaceRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_directoryId; bool m_directoryIdHasBeenSet = false; Aws::String m_userName; bool m_userNameHasBeenSet = false; Aws::String m_bundleId; bool m_bundleIdHasBeenSet = false; Aws::String m_volumeEncryptionKey; bool m_volumeEncryptionKeyHasBeenSet = false; bool m_userVolumeEncryptionEnabled; bool m_userVolumeEncryptionEnabledHasBeenSet = false; bool m_rootVolumeEncryptionEnabled; bool m_rootVolumeEncryptionEnabledHasBeenSet = false; WorkspaceProperties m_workspaceProperties; bool m_workspacePropertiesHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace WorkSpaces } // namespace Aws