1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/workspaces/WorkSpaces_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/workspaces/model/WorkspaceProperties.h> 10 #include <aws/core/utils/memory/stl/AWSVector.h> 11 #include <aws/workspaces/model/Tag.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace WorkSpaces 25 { 26 namespace Model 27 { 28 29 /** 30 * <p>Describes the information used to create a WorkSpace.</p><p><h3>See 31 * Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/WorkspaceRequest">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_WORKSPACES_API WorkspaceRequest 36 { 37 public: 38 WorkspaceRequest(); 39 WorkspaceRequest(Aws::Utils::Json::JsonView jsonValue); 40 WorkspaceRequest& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 46 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 47 */ GetDirectoryId()48 inline const Aws::String& GetDirectoryId() const{ return m_directoryId; } 49 50 /** 51 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 52 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 53 */ DirectoryIdHasBeenSet()54 inline bool DirectoryIdHasBeenSet() const { return m_directoryIdHasBeenSet; } 55 56 /** 57 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 58 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 59 */ SetDirectoryId(const Aws::String & value)60 inline void SetDirectoryId(const Aws::String& value) { m_directoryIdHasBeenSet = true; m_directoryId = value; } 61 62 /** 63 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 64 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 65 */ SetDirectoryId(Aws::String && value)66 inline void SetDirectoryId(Aws::String&& value) { m_directoryIdHasBeenSet = true; m_directoryId = std::move(value); } 67 68 /** 69 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 70 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 71 */ SetDirectoryId(const char * value)72 inline void SetDirectoryId(const char* value) { m_directoryIdHasBeenSet = true; m_directoryId.assign(value); } 73 74 /** 75 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 76 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 77 */ WithDirectoryId(const Aws::String & value)78 inline WorkspaceRequest& WithDirectoryId(const Aws::String& value) { SetDirectoryId(value); return *this;} 79 80 /** 81 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 82 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 83 */ WithDirectoryId(Aws::String && value)84 inline WorkspaceRequest& WithDirectoryId(Aws::String&& value) { SetDirectoryId(std::move(value)); return *this;} 85 86 /** 87 * <p>The identifier of the Directory Service directory for the WorkSpace. You can 88 * use <a>DescribeWorkspaceDirectories</a> to list the available directories.</p> 89 */ WithDirectoryId(const char * value)90 inline WorkspaceRequest& WithDirectoryId(const char* value) { SetDirectoryId(value); return *this;} 91 92 93 /** 94 * <p>The user name of the user for the WorkSpace. This user name must exist in the 95 * Directory Service directory for the WorkSpace.</p> 96 */ GetUserName()97 inline const Aws::String& GetUserName() const{ return m_userName; } 98 99 /** 100 * <p>The user name of the user for the WorkSpace. This user name must exist in the 101 * Directory Service directory for the WorkSpace.</p> 102 */ UserNameHasBeenSet()103 inline bool UserNameHasBeenSet() const { return m_userNameHasBeenSet; } 104 105 /** 106 * <p>The user name of the user for the WorkSpace. This user name must exist in the 107 * Directory Service directory for the WorkSpace.</p> 108 */ SetUserName(const Aws::String & value)109 inline void SetUserName(const Aws::String& value) { m_userNameHasBeenSet = true; m_userName = value; } 110 111 /** 112 * <p>The user name of the user for the WorkSpace. This user name must exist in the 113 * Directory Service directory for the WorkSpace.</p> 114 */ SetUserName(Aws::String && value)115 inline void SetUserName(Aws::String&& value) { m_userNameHasBeenSet = true; m_userName = std::move(value); } 116 117 /** 118 * <p>The user name of the user for the WorkSpace. This user name must exist in the 119 * Directory Service directory for the WorkSpace.</p> 120 */ SetUserName(const char * value)121 inline void SetUserName(const char* value) { m_userNameHasBeenSet = true; m_userName.assign(value); } 122 123 /** 124 * <p>The user name of the user for the WorkSpace. This user name must exist in the 125 * Directory Service directory for the WorkSpace.</p> 126 */ WithUserName(const Aws::String & value)127 inline WorkspaceRequest& WithUserName(const Aws::String& value) { SetUserName(value); return *this;} 128 129 /** 130 * <p>The user name of the user for the WorkSpace. This user name must exist in the 131 * Directory Service directory for the WorkSpace.</p> 132 */ WithUserName(Aws::String && value)133 inline WorkspaceRequest& WithUserName(Aws::String&& value) { SetUserName(std::move(value)); return *this;} 134 135 /** 136 * <p>The user name of the user for the WorkSpace. This user name must exist in the 137 * Directory Service directory for the WorkSpace.</p> 138 */ WithUserName(const char * value)139 inline WorkspaceRequest& WithUserName(const char* value) { SetUserName(value); return *this;} 140 141 142 /** 143 * <p>The identifier of the bundle for the WorkSpace. You can use 144 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 145 */ GetBundleId()146 inline const Aws::String& GetBundleId() const{ return m_bundleId; } 147 148 /** 149 * <p>The identifier of the bundle for the WorkSpace. You can use 150 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 151 */ BundleIdHasBeenSet()152 inline bool BundleIdHasBeenSet() const { return m_bundleIdHasBeenSet; } 153 154 /** 155 * <p>The identifier of the bundle for the WorkSpace. You can use 156 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 157 */ SetBundleId(const Aws::String & value)158 inline void SetBundleId(const Aws::String& value) { m_bundleIdHasBeenSet = true; m_bundleId = value; } 159 160 /** 161 * <p>The identifier of the bundle for the WorkSpace. You can use 162 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 163 */ SetBundleId(Aws::String && value)164 inline void SetBundleId(Aws::String&& value) { m_bundleIdHasBeenSet = true; m_bundleId = std::move(value); } 165 166 /** 167 * <p>The identifier of the bundle for the WorkSpace. You can use 168 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 169 */ SetBundleId(const char * value)170 inline void SetBundleId(const char* value) { m_bundleIdHasBeenSet = true; m_bundleId.assign(value); } 171 172 /** 173 * <p>The identifier of the bundle for the WorkSpace. You can use 174 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 175 */ WithBundleId(const Aws::String & value)176 inline WorkspaceRequest& WithBundleId(const Aws::String& value) { SetBundleId(value); return *this;} 177 178 /** 179 * <p>The identifier of the bundle for the WorkSpace. You can use 180 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 181 */ WithBundleId(Aws::String && value)182 inline WorkspaceRequest& WithBundleId(Aws::String&& value) { SetBundleId(std::move(value)); return *this;} 183 184 /** 185 * <p>The identifier of the bundle for the WorkSpace. You can use 186 * <a>DescribeWorkspaceBundles</a> to list the available bundles.</p> 187 */ WithBundleId(const char * value)188 inline WorkspaceRequest& WithBundleId(const char* value) { SetBundleId(value); return *this;} 189 190 191 /** 192 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 193 * WorkSpaces does not support asymmetric KMS keys.</p> 194 */ GetVolumeEncryptionKey()195 inline const Aws::String& GetVolumeEncryptionKey() const{ return m_volumeEncryptionKey; } 196 197 /** 198 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 199 * WorkSpaces does not support asymmetric KMS keys.</p> 200 */ VolumeEncryptionKeyHasBeenSet()201 inline bool VolumeEncryptionKeyHasBeenSet() const { return m_volumeEncryptionKeyHasBeenSet; } 202 203 /** 204 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 205 * WorkSpaces does not support asymmetric KMS keys.</p> 206 */ SetVolumeEncryptionKey(const Aws::String & value)207 inline void SetVolumeEncryptionKey(const Aws::String& value) { m_volumeEncryptionKeyHasBeenSet = true; m_volumeEncryptionKey = value; } 208 209 /** 210 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 211 * WorkSpaces does not support asymmetric KMS keys.</p> 212 */ SetVolumeEncryptionKey(Aws::String && value)213 inline void SetVolumeEncryptionKey(Aws::String&& value) { m_volumeEncryptionKeyHasBeenSet = true; m_volumeEncryptionKey = std::move(value); } 214 215 /** 216 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 217 * WorkSpaces does not support asymmetric KMS keys.</p> 218 */ SetVolumeEncryptionKey(const char * value)219 inline void SetVolumeEncryptionKey(const char* value) { m_volumeEncryptionKeyHasBeenSet = true; m_volumeEncryptionKey.assign(value); } 220 221 /** 222 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 223 * WorkSpaces does not support asymmetric KMS keys.</p> 224 */ WithVolumeEncryptionKey(const Aws::String & value)225 inline WorkspaceRequest& WithVolumeEncryptionKey(const Aws::String& value) { SetVolumeEncryptionKey(value); return *this;} 226 227 /** 228 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 229 * WorkSpaces does not support asymmetric KMS keys.</p> 230 */ WithVolumeEncryptionKey(Aws::String && value)231 inline WorkspaceRequest& WithVolumeEncryptionKey(Aws::String&& value) { SetVolumeEncryptionKey(std::move(value)); return *this;} 232 233 /** 234 * <p>The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon 235 * WorkSpaces does not support asymmetric KMS keys.</p> 236 */ WithVolumeEncryptionKey(const char * value)237 inline WorkspaceRequest& WithVolumeEncryptionKey(const char* value) { SetVolumeEncryptionKey(value); return *this;} 238 239 240 /** 241 * <p>Indicates whether the data stored on the user volume is encrypted.</p> 242 */ GetUserVolumeEncryptionEnabled()243 inline bool GetUserVolumeEncryptionEnabled() const{ return m_userVolumeEncryptionEnabled; } 244 245 /** 246 * <p>Indicates whether the data stored on the user volume is encrypted.</p> 247 */ UserVolumeEncryptionEnabledHasBeenSet()248 inline bool UserVolumeEncryptionEnabledHasBeenSet() const { return m_userVolumeEncryptionEnabledHasBeenSet; } 249 250 /** 251 * <p>Indicates whether the data stored on the user volume is encrypted.</p> 252 */ SetUserVolumeEncryptionEnabled(bool value)253 inline void SetUserVolumeEncryptionEnabled(bool value) { m_userVolumeEncryptionEnabledHasBeenSet = true; m_userVolumeEncryptionEnabled = value; } 254 255 /** 256 * <p>Indicates whether the data stored on the user volume is encrypted.</p> 257 */ WithUserVolumeEncryptionEnabled(bool value)258 inline WorkspaceRequest& WithUserVolumeEncryptionEnabled(bool value) { SetUserVolumeEncryptionEnabled(value); return *this;} 259 260 261 /** 262 * <p>Indicates whether the data stored on the root volume is encrypted.</p> 263 */ GetRootVolumeEncryptionEnabled()264 inline bool GetRootVolumeEncryptionEnabled() const{ return m_rootVolumeEncryptionEnabled; } 265 266 /** 267 * <p>Indicates whether the data stored on the root volume is encrypted.</p> 268 */ RootVolumeEncryptionEnabledHasBeenSet()269 inline bool RootVolumeEncryptionEnabledHasBeenSet() const { return m_rootVolumeEncryptionEnabledHasBeenSet; } 270 271 /** 272 * <p>Indicates whether the data stored on the root volume is encrypted.</p> 273 */ SetRootVolumeEncryptionEnabled(bool value)274 inline void SetRootVolumeEncryptionEnabled(bool value) { m_rootVolumeEncryptionEnabledHasBeenSet = true; m_rootVolumeEncryptionEnabled = value; } 275 276 /** 277 * <p>Indicates whether the data stored on the root volume is encrypted.</p> 278 */ WithRootVolumeEncryptionEnabled(bool value)279 inline WorkspaceRequest& WithRootVolumeEncryptionEnabled(bool value) { SetRootVolumeEncryptionEnabled(value); return *this;} 280 281 282 /** 283 * <p>The WorkSpace properties.</p> 284 */ GetWorkspaceProperties()285 inline const WorkspaceProperties& GetWorkspaceProperties() const{ return m_workspaceProperties; } 286 287 /** 288 * <p>The WorkSpace properties.</p> 289 */ WorkspacePropertiesHasBeenSet()290 inline bool WorkspacePropertiesHasBeenSet() const { return m_workspacePropertiesHasBeenSet; } 291 292 /** 293 * <p>The WorkSpace properties.</p> 294 */ SetWorkspaceProperties(const WorkspaceProperties & value)295 inline void SetWorkspaceProperties(const WorkspaceProperties& value) { m_workspacePropertiesHasBeenSet = true; m_workspaceProperties = value; } 296 297 /** 298 * <p>The WorkSpace properties.</p> 299 */ SetWorkspaceProperties(WorkspaceProperties && value)300 inline void SetWorkspaceProperties(WorkspaceProperties&& value) { m_workspacePropertiesHasBeenSet = true; m_workspaceProperties = std::move(value); } 301 302 /** 303 * <p>The WorkSpace properties.</p> 304 */ WithWorkspaceProperties(const WorkspaceProperties & value)305 inline WorkspaceRequest& WithWorkspaceProperties(const WorkspaceProperties& value) { SetWorkspaceProperties(value); return *this;} 306 307 /** 308 * <p>The WorkSpace properties.</p> 309 */ WithWorkspaceProperties(WorkspaceProperties && value)310 inline WorkspaceRequest& WithWorkspaceProperties(WorkspaceProperties&& value) { SetWorkspaceProperties(std::move(value)); return *this;} 311 312 313 /** 314 * <p>The tags for the WorkSpace.</p> 315 */ GetTags()316 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 317 318 /** 319 * <p>The tags for the WorkSpace.</p> 320 */ TagsHasBeenSet()321 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 322 323 /** 324 * <p>The tags for the WorkSpace.</p> 325 */ SetTags(const Aws::Vector<Tag> & value)326 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 327 328 /** 329 * <p>The tags for the WorkSpace.</p> 330 */ SetTags(Aws::Vector<Tag> && value)331 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 332 333 /** 334 * <p>The tags for the WorkSpace.</p> 335 */ WithTags(const Aws::Vector<Tag> & value)336 inline WorkspaceRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 337 338 /** 339 * <p>The tags for the WorkSpace.</p> 340 */ WithTags(Aws::Vector<Tag> && value)341 inline WorkspaceRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 342 343 /** 344 * <p>The tags for the WorkSpace.</p> 345 */ AddTags(const Tag & value)346 inline WorkspaceRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 347 348 /** 349 * <p>The tags for the WorkSpace.</p> 350 */ AddTags(Tag && value)351 inline WorkspaceRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 352 353 private: 354 355 Aws::String m_directoryId; 356 bool m_directoryIdHasBeenSet; 357 358 Aws::String m_userName; 359 bool m_userNameHasBeenSet; 360 361 Aws::String m_bundleId; 362 bool m_bundleIdHasBeenSet; 363 364 Aws::String m_volumeEncryptionKey; 365 bool m_volumeEncryptionKeyHasBeenSet; 366 367 bool m_userVolumeEncryptionEnabled; 368 bool m_userVolumeEncryptionEnabledHasBeenSet; 369 370 bool m_rootVolumeEncryptionEnabled; 371 bool m_rootVolumeEncryptionEnabledHasBeenSet; 372 373 WorkspaceProperties m_workspaceProperties; 374 bool m_workspacePropertiesHasBeenSet; 375 376 Aws::Vector<Tag> m_tags; 377 bool m_tagsHasBeenSet; 378 }; 379 380 } // namespace Model 381 } // namespace WorkSpaces 382 } // namespace Aws 383