1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Describes a modification to the configuration of Bring Your Own License (BYOL)
10// for the specified account.
11type AccountModification struct {
12
13	// The IP address range, specified as an IPv4 CIDR block, for the management
14	// network interface used for the account.
15	DedicatedTenancyManagementCidrRange *string
16
17	// The status of BYOL (whether BYOL is being enabled or disabled).
18	DedicatedTenancySupport DedicatedTenancySupportResultEnum
19
20	// The error code that is returned if the configuration of BYOL cannot be modified.
21	ErrorCode *string
22
23	// The text of the error message that is returned if the configuration of BYOL
24	// cannot be modified.
25	ErrorMessage *string
26
27	// The state of the modification to the configuration of BYOL.
28	ModificationState DedicatedTenancyModificationStateEnum
29
30	// The timestamp when the modification of the BYOL configuration was started.
31	StartTime *time.Time
32}
33
34// Describes an Amazon WorkSpaces client.
35type ClientProperties struct {
36
37	// Specifies whether users can cache their credentials on the Amazon WorkSpaces
38	// client. When enabled, users can choose to reconnect to their WorkSpaces without
39	// re-entering their credentials.
40	ReconnectEnabled ReconnectEnum
41}
42
43// Information about the Amazon WorkSpaces client.
44type ClientPropertiesResult struct {
45
46	// Information about the Amazon WorkSpaces client.
47	ClientProperties *ClientProperties
48
49	// The resource identifier, in the form of a directory ID.
50	ResourceId *string
51}
52
53// Describes the compute type of the bundle.
54type ComputeType struct {
55
56	// The compute type.
57	Name Compute
58}
59
60// Describes a connection alias. Connection aliases are used for cross-Region
61// redirection. For more information, see  Cross-Region Redirection for Amazon
62// WorkSpaces
63// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
64type ConnectionAlias struct {
65
66	// The identifier of the connection alias.
67	AliasId *string
68
69	// The association status of the connection alias.
70	Associations []ConnectionAliasAssociation
71
72	// The connection string specified for the connection alias. The connection string
73	// must be in the form of a fully qualified domain name (FQDN), such as
74	// www.example.com.
75	ConnectionString *string
76
77	// The identifier of the AWS account that owns the connection alias.
78	OwnerAccountId *string
79
80	// The current state of the connection alias.
81	State ConnectionAliasState
82}
83
84// Describes a connection alias association that is used for cross-Region
85// redirection. For more information, see  Cross-Region Redirection for Amazon
86// WorkSpaces
87// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
88type ConnectionAliasAssociation struct {
89
90	// The identifier of the AWS account that associated the connection alias with a
91	// directory.
92	AssociatedAccountId *string
93
94	// The association status of the connection alias.
95	AssociationStatus AssociationStatus
96
97	// The identifier of the connection alias association. You use the connection
98	// identifier in the DNS TXT record when you're configuring your DNS routing
99	// policies.
100	ConnectionIdentifier *string
101
102	// The identifier of the directory associated with a connection alias.
103	ResourceId *string
104}
105
106// Describes the permissions for a connection alias. Connection aliases are used
107// for cross-Region redirection. For more information, see  Cross-Region
108// Redirection for Amazon WorkSpaces
109// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
110type ConnectionAliasPermission struct {
111
112	// Indicates whether the specified AWS account is allowed to associate the
113	// connection alias with a directory.
114	//
115	// This member is required.
116	AllowAssociation *bool
117
118	// The identifier of the AWS account that the connection alias is shared with.
119	//
120	// This member is required.
121	SharedAccountId *string
122}
123
124// Describes the default values that are used to create WorkSpaces. For more
125// information, see Update Directory Details for Your WorkSpaces
126// (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
127type DefaultWorkspaceCreationProperties struct {
128
129	// The identifier of the default security group to apply to WorkSpaces when they
130	// are created. For more information, see  Security Groups for Your WorkSpaces
131	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-security-groups.html).
132	CustomSecurityGroupId *string
133
134	// The organizational unit (OU) in the directory for the WorkSpace machine
135	// accounts.
136	DefaultOu *string
137
138	// Specifies whether to automatically assign an Elastic public IP address to
139	// WorkSpaces in this directory by default. If enabled, the Elastic public IP
140	// address allows outbound internet access from your WorkSpaces when you’re using
141	// an internet gateway in the Amazon VPC in which your WorkSpaces are located. If
142	// you're using a Network Address Translation (NAT) gateway for outbound internet
143	// access from your VPC, or if your WorkSpaces are in public subnets and you
144	// manually assign them Elastic IP addresses, you should disable this setting. This
145	// setting applies to new WorkSpaces that you launch or to existing WorkSpaces that
146	// you rebuild. For more information, see  Configure a VPC for Amazon WorkSpaces
147	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
148	EnableInternetAccess *bool
149
150	// Specifies whether maintenance mode is enabled for WorkSpaces. For more
151	// information, see WorkSpace Maintenance
152	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
153	EnableMaintenanceMode *bool
154
155	// Specifies whether the directory is enabled for Amazon WorkDocs.
156	EnableWorkDocs *bool
157
158	// Specifies whether WorkSpace users are local administrators on their WorkSpaces.
159	UserEnabledAsLocalAdministrator *bool
160}
161
162// Describes a WorkSpace that cannot be created.
163type FailedCreateWorkspaceRequest struct {
164
165	// The error code that is returned if the WorkSpace cannot be created.
166	ErrorCode *string
167
168	// The text of the error message that is returned if the WorkSpace cannot be
169	// created.
170	ErrorMessage *string
171
172	// Information about the WorkSpace.
173	WorkspaceRequest *WorkspaceRequest
174}
175
176// Describes a WorkSpace that could not be rebooted. (RebootWorkspaces), rebuilt
177// (RebuildWorkspaces), restored (RestoreWorkspace), terminated
178// (TerminateWorkspaces), started (StartWorkspaces), or stopped (StopWorkspaces).
179type FailedWorkspaceChangeRequest struct {
180
181	// The error code that is returned if the WorkSpace cannot be rebooted.
182	ErrorCode *string
183
184	// The text of the error message that is returned if the WorkSpace cannot be
185	// rebooted.
186	ErrorMessage *string
187
188	// The identifier of the WorkSpace.
189	WorkspaceId *string
190}
191
192// Describes the AWS accounts that have been granted permission to use a shared
193// image. For more information about sharing images, see  Share or Unshare a Custom
194// WorkSpaces Image
195// (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html).
196type ImagePermission struct {
197
198	// The identifier of the AWS account that an image has been shared with.
199	SharedAccountId *string
200}
201
202// Describes a rule for an IP access control group.
203type IpRuleItem struct {
204
205	// The IP address range, in CIDR notation.
206	IpRule *string
207
208	// The description.
209	RuleDesc *string
210}
211
212// Describes a WorkSpace modification.
213type ModificationState struct {
214
215	// The resource.
216	Resource ModificationResourceEnum
217
218	// The modification state.
219	State ModificationStateEnum
220}
221
222// The operating system that the image is running.
223type OperatingSystem struct {
224
225	// The operating system.
226	Type OperatingSystemType
227}
228
229// Describes the information used to reboot a WorkSpace.
230type RebootRequest struct {
231
232	// The identifier of the WorkSpace.
233	//
234	// This member is required.
235	WorkspaceId *string
236}
237
238// Describes the information used to rebuild a WorkSpace.
239type RebuildRequest struct {
240
241	// The identifier of the WorkSpace.
242	//
243	// This member is required.
244	WorkspaceId *string
245}
246
247// Describes the root volume for a WorkSpace bundle.
248type RootStorage struct {
249
250	// The size of the root volume.
251	Capacity *string
252}
253
254// Describes the self-service permissions for a directory. For more information,
255// see Enable Self-Service WorkSpace Management Capabilities for Your Users
256// (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
257type SelfservicePermissions struct {
258
259	// Specifies whether users can change the compute type (bundle) for their
260	// WorkSpace.
261	ChangeComputeType ReconnectEnum
262
263	// Specifies whether users can increase the volume size of the drives on their
264	// WorkSpace.
265	IncreaseVolumeSize ReconnectEnum
266
267	// Specifies whether users can rebuild the operating system of a WorkSpace to its
268	// original state.
269	RebuildWorkspace ReconnectEnum
270
271	// Specifies whether users can restart their WorkSpace.
272	RestartWorkspace ReconnectEnum
273
274	// Specifies whether users can switch the running mode of their WorkSpace.
275	SwitchRunningMode ReconnectEnum
276}
277
278// Describes a snapshot.
279type Snapshot struct {
280
281	// The time when the snapshot was created.
282	SnapshotTime *time.Time
283}
284
285// Information used to start a WorkSpace.
286type StartRequest struct {
287
288	// The identifier of the WorkSpace.
289	WorkspaceId *string
290}
291
292// Describes the information used to stop a WorkSpace.
293type StopRequest struct {
294
295	// The identifier of the WorkSpace.
296	WorkspaceId *string
297}
298
299// Describes a tag.
300type Tag struct {
301
302	// The key of the tag.
303	//
304	// This member is required.
305	Key *string
306
307	// The value of the tag.
308	Value *string
309}
310
311// Describes the information used to terminate a WorkSpace.
312type TerminateRequest struct {
313
314	// The identifier of the WorkSpace.
315	//
316	// This member is required.
317	WorkspaceId *string
318}
319
320// Describes the user volume for a WorkSpace bundle.
321type UserStorage struct {
322
323	// The size of the user volume.
324	Capacity *string
325}
326
327// Describes a WorkSpace.
328type Workspace struct {
329
330	// The identifier of the bundle used to create the WorkSpace.
331	BundleId *string
332
333	// The name of the WorkSpace, as seen by the operating system. The format of this
334	// name varies. For more information, see  Launch a WorkSpace
335	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/launch-workspaces-tutorials.html).
336	ComputerName *string
337
338	// The identifier of the AWS Directory Service directory for the WorkSpace.
339	DirectoryId *string
340
341	// The error code that is returned if the WorkSpace cannot be created.
342	ErrorCode *string
343
344	// The text of the error message that is returned if the WorkSpace cannot be
345	// created.
346	ErrorMessage *string
347
348	// The IP address of the WorkSpace.
349	IpAddress *string
350
351	// The modification states of the WorkSpace.
352	ModificationStates []ModificationState
353
354	// Indicates whether the data stored on the root volume is encrypted.
355	RootVolumeEncryptionEnabled *bool
356
357	// The operational state of the WorkSpace. After a WorkSpace is terminated, the
358	// TERMINATED state is returned only briefly before the WorkSpace directory
359	// metadata is cleaned up, so this state is rarely returned. To confirm that a
360	// WorkSpace is terminated, check for the WorkSpace ID by using  DescribeWorkSpaces
361	// (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaces.html).
362	// If the WorkSpace ID isn't returned, then the WorkSpace has been successfully
363	// terminated.
364	State WorkspaceState
365
366	// The identifier of the subnet for the WorkSpace.
367	SubnetId *string
368
369	// The user for the WorkSpace.
370	UserName *string
371
372	// Indicates whether the data stored on the user volume is encrypted.
373	UserVolumeEncryptionEnabled *bool
374
375	// The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on
376	// your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.
377	VolumeEncryptionKey *string
378
379	// The identifier of the WorkSpace.
380	WorkspaceId *string
381
382	// The properties of the WorkSpace.
383	WorkspaceProperties *WorkspaceProperties
384}
385
386// The device types and operating systems that can be used to access a WorkSpace.
387// For more information, see Amazon WorkSpaces Client Network Requirements
388// (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-network-requirements.html).
389type WorkspaceAccessProperties struct {
390
391	// Indicates whether users can use Android devices to access their WorkSpaces.
392	DeviceTypeAndroid AccessPropertyValue
393
394	// Indicates whether users can use Chromebooks to access their WorkSpaces.
395	DeviceTypeChromeOs AccessPropertyValue
396
397	// Indicates whether users can use iOS devices to access their WorkSpaces.
398	DeviceTypeIos AccessPropertyValue
399
400	// Indicates whether users can use macOS clients to access their WorkSpaces. To
401	// restrict WorkSpaces access to trusted devices (also known as managed devices)
402	// with valid certificates, specify a value of TRUST. For more information, see
403	// Restrict WorkSpaces Access to Trusted Devices
404	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html).
405	DeviceTypeOsx AccessPropertyValue
406
407	// Indicates whether users can access their WorkSpaces through a web browser.
408	DeviceTypeWeb AccessPropertyValue
409
410	// Indicates whether users can use Windows clients to access their WorkSpaces. To
411	// restrict WorkSpaces access to trusted devices (also known as managed devices)
412	// with valid certificates, specify a value of TRUST. For more information, see
413	// Restrict WorkSpaces Access to Trusted Devices
414	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html).
415	DeviceTypeWindows AccessPropertyValue
416
417	// Indicates whether users can use zero client devices to access their WorkSpaces.
418	DeviceTypeZeroClient AccessPropertyValue
419}
420
421// Describes a WorkSpace bundle.
422type WorkspaceBundle struct {
423
424	// The identifier of the bundle.
425	BundleId *string
426
427	// The compute type of the bundle. For more information, see Amazon WorkSpaces
428	// Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
429	ComputeType *ComputeType
430
431	// The time when the bundle was created.
432	CreationTime *time.Time
433
434	// The description of the bundle.
435	Description *string
436
437	// The identifier of the image that was used to create the bundle.
438	ImageId *string
439
440	// The last time that the bundle was updated.
441	LastUpdatedTime *time.Time
442
443	// The name of the bundle.
444	Name *string
445
446	// The owner of the bundle. This is the account identifier of the owner, or AMAZON
447	// if the bundle is provided by AWS.
448	Owner *string
449
450	// The size of the root volume.
451	RootStorage *RootStorage
452
453	// The size of the user volume.
454	UserStorage *UserStorage
455}
456
457// Describes the connection status of a WorkSpace.
458type WorkspaceConnectionStatus struct {
459
460	// The connection state of the WorkSpace. The connection state is unknown if the
461	// WorkSpace is stopped.
462	ConnectionState ConnectionState
463
464	// The timestamp of the connection status check.
465	ConnectionStateCheckTimestamp *time.Time
466
467	// The timestamp of the last known user connection.
468	LastKnownUserConnectionTimestamp *time.Time
469
470	// The identifier of the WorkSpace.
471	WorkspaceId *string
472}
473
474// Describes the default properties that are used for creating WorkSpaces. For more
475// information, see Update Directory Details for Your WorkSpaces
476// (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
477type WorkspaceCreationProperties struct {
478
479	// The identifier of your custom security group.
480	CustomSecurityGroupId *string
481
482	// The default organizational unit (OU) for your WorkSpaces directories. This
483	// string must be the full Lightweight Directory Access Protocol (LDAP)
484	// distinguished name for the target domain and OU. It must be in the form
485	// "OU=value,DC=value,DC=value", where value is any string of characters, and the
486	// number of domain components (DCs) is two or more. For example,
487	// OU=WorkSpaces_machines,DC=machines,DC=example,DC=com.
488	//
489	// * To avoid errors,
490	// certain characters in the distinguished name must be escaped. For more
491	// information, see  Distinguished Names
492	// (https://docs.microsoft.com/previous-versions/windows/desktop/ldap/distinguished-names)
493	// in the Microsoft documentation.
494	//
495	// * The API doesn't validate whether the OU
496	// exists.
497	DefaultOu *string
498
499	// Indicates whether internet access is enabled for your WorkSpaces.
500	EnableInternetAccess *bool
501
502	// Indicates whether maintenance mode is enabled for your WorkSpaces. For more
503	// information, see WorkSpace Maintenance
504	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
505	EnableMaintenanceMode *bool
506
507	// Indicates whether Amazon WorkDocs is enabled for your WorkSpaces.
508	//
509	// If WorkDocs
510	// is already enabled for a WorkSpaces directory and you disable it, new WorkSpaces
511	// launched in the directory will not have WorkDocs enabled. However, WorkDocs
512	// remains enabled for any existing WorkSpaces, unless you either disable users'
513	// access to WorkDocs or you delete the WorkDocs site. To disable users' access to
514	// WorkDocs, see Disabling Users
515	// (https://docs.aws.amazon.com/workdocs/latest/adminguide/inactive-user.html) in
516	// the Amazon WorkDocs Administration Guide. To delete a WorkDocs site, see
517	// Deleting a Site
518	// (https://docs.aws.amazon.com/workdocs/latest/adminguide/manage-sites.html) in
519	// the Amazon WorkDocs Administration Guide. If you enable WorkDocs on a directory
520	// that already has existing WorkSpaces, the existing WorkSpaces and any new
521	// WorkSpaces that are launched in the directory will have WorkDocs enabled.
522	EnableWorkDocs *bool
523
524	// Indicates whether users are local administrators of their WorkSpaces.
525	UserEnabledAsLocalAdministrator *bool
526}
527
528// Describes a directory that is used with Amazon WorkSpaces.
529type WorkspaceDirectory struct {
530
531	// The directory alias.
532	Alias *string
533
534	// The user name for the service account.
535	CustomerUserName *string
536
537	// The directory identifier.
538	DirectoryId *string
539
540	// The name of the directory.
541	DirectoryName *string
542
543	// The directory type.
544	DirectoryType WorkspaceDirectoryType
545
546	// The IP addresses of the DNS servers for the directory.
547	DnsIpAddresses []string
548
549	// The identifier of the IAM role. This is the role that allows Amazon WorkSpaces
550	// to make calls to other services, such as Amazon EC2, on your behalf.
551	IamRoleId *string
552
553	// The identifiers of the IP access control groups associated with the directory.
554	IpGroupIds []string
555
556	// The registration code for the directory. This is the code that users enter in
557	// their Amazon WorkSpaces client application to connect to the directory.
558	RegistrationCode *string
559
560	// The default self-service permissions for WorkSpaces in the directory.
561	SelfservicePermissions *SelfservicePermissions
562
563	// The state of the directory's registration with Amazon WorkSpaces. After a
564	// directory is deregistered, the DEREGISTERED state is returned very briefly
565	// before the directory metadata is cleaned up, so this state is rarely returned.
566	// To confirm that a directory is deregistered, check for the directory ID by using
567	// DescribeWorkspaceDirectories
568	// (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceDirectories.html).
569	// If the directory ID isn't returned, then the directory has been successfully
570	// deregistered.
571	State WorkspaceDirectoryState
572
573	// The identifiers of the subnets used with the directory.
574	SubnetIds []string
575
576	// Specifies whether the directory is dedicated or shared. To use Bring Your Own
577	// License (BYOL), this value must be set to DEDICATED. For more information, see
578	// Bring Your Own Windows Desktop Images
579	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
580	Tenancy Tenancy
581
582	// The devices and operating systems that users can use to access WorkSpaces.
583	WorkspaceAccessProperties *WorkspaceAccessProperties
584
585	// The default creation properties for all WorkSpaces in the directory.
586	WorkspaceCreationProperties *DefaultWorkspaceCreationProperties
587
588	// The identifier of the security group that is assigned to new WorkSpaces.
589	WorkspaceSecurityGroupId *string
590}
591
592// Describes a WorkSpace image.
593type WorkspaceImage struct {
594
595	// The date when the image was created. If the image has been shared, the AWS
596	// account that the image has been shared with sees the original creation date of
597	// the image.
598	Created *time.Time
599
600	// The description of the image.
601	Description *string
602
603	// The error code that is returned for the image.
604	ErrorCode *string
605
606	// The text of the error message that is returned for the image.
607	ErrorMessage *string
608
609	// The identifier of the image.
610	ImageId *string
611
612	// The name of the image.
613	Name *string
614
615	// The operating system that the image is running.
616	OperatingSystem *OperatingSystem
617
618	// The identifier of the AWS account that owns the image.
619	OwnerAccountId *string
620
621	// Specifies whether the image is running on dedicated hardware. When Bring Your
622	// Own License (BYOL) is enabled, this value is set to DEDICATED. For more
623	// information, see Bring Your Own Windows Desktop Images
624	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
625	RequiredTenancy WorkspaceImageRequiredTenancy
626
627	// The status of the image.
628	State WorkspaceImageState
629}
630
631// Describes a WorkSpace.
632type WorkspaceProperties struct {
633
634	// The compute type. For more information, see Amazon WorkSpaces Bundles
635	// (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
636	ComputeTypeName Compute
637
638	// The size of the root volume. For important information about how to modify the
639	// size of the root and user volumes, see Modify a WorkSpace
640	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
641	RootVolumeSizeGib *int32
642
643	// The running mode. For more information, see Manage the WorkSpace Running Mode
644	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html).
645	RunningMode RunningMode
646
647	// The time after a user logs off when WorkSpaces are automatically stopped.
648	// Configured in 60-minute intervals.
649	RunningModeAutoStopTimeoutInMinutes *int32
650
651	// The size of the user storage. For important information about how to modify the
652	// size of the root and user volumes, see Modify a WorkSpace
653	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
654	UserVolumeSizeGib *int32
655}
656
657// Describes the information used to create a WorkSpace.
658type WorkspaceRequest struct {
659
660	// The identifier of the bundle for the WorkSpace. You can use
661	// DescribeWorkspaceBundles to list the available bundles.
662	//
663	// This member is required.
664	BundleId *string
665
666	// The identifier of the AWS Directory Service directory for the WorkSpace. You can
667	// use DescribeWorkspaceDirectories to list the available directories.
668	//
669	// This member is required.
670	DirectoryId *string
671
672	// The user name of the user for the WorkSpace. This user name must exist in the
673	// AWS Directory Service directory for the WorkSpace.
674	//
675	// This member is required.
676	UserName *string
677
678	// Indicates whether the data stored on the root volume is encrypted.
679	RootVolumeEncryptionEnabled *bool
680
681	// The tags for the WorkSpace.
682	Tags []Tag
683
684	// Indicates whether the data stored on the user volume is encrypted.
685	UserVolumeEncryptionEnabled *bool
686
687	// The symmetric AWS KMS customer master key (CMK) used to encrypt data stored on
688	// your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.
689	VolumeEncryptionKey *string
690
691	// The WorkSpace properties.
692	WorkspaceProperties *WorkspaceProperties
693}
694
695// Describes an IP access control group.
696type WorkspacesIpGroup struct {
697
698	// The description of the group.
699	GroupDesc *string
700
701	// The identifier of the group.
702	GroupId *string
703
704	// The name of the group.
705	GroupName *string
706
707	// The rules.
708	UserRules []IpRuleItem
709}
710