File: types.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.24.1-2~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 554,032 kB
  • sloc: java: 15,941; makefile: 419; sh: 175
file content (1304 lines) | stat: -rw-r--r-- 40,536 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

import (
	smithydocument "github.com/aws/smithy-go/document"
	"time"
)

// Describes an interface VPC endpoint (interface endpoint) that lets you create a
// private connection between the virtual private cloud (VPC) that you specify and
// AppStream 2.0. When you specify an interface endpoint for a stack, users of the
// stack can connect to AppStream 2.0 only through that endpoint. When you specify
// an interface endpoint for an image builder, administrators can connect to the
// image builder only through that endpoint.
type AccessEndpoint struct {

	// The type of interface endpoint.
	//
	// This member is required.
	EndpointType AccessEndpointType

	// The identifier (ID) of the VPC in which the interface endpoint is used.
	VpceId *string

	noSmithyDocumentSerde
}

// Describes an app block. App blocks are an Amazon AppStream 2.0 resource that
// stores the details about the virtual hard disk in an S3 bucket. It also stores
// the setup script with details about how to mount the virtual hard disk. The
// virtual hard disk includes the application binaries and other files necessary to
// launch your applications. Multiple applications can be assigned to a single app
// block. This is only supported for Elastic fleets.
type AppBlock struct {

	// The ARN of the app block.
	//
	// This member is required.
	Arn *string

	// The name of the app block.
	//
	// This member is required.
	Name *string

	// The errors of the app block.
	AppBlockErrors []ErrorDetails

	// The created time of the app block.
	CreatedTime *time.Time

	// The description of the app block.
	Description *string

	// The display name of the app block.
	DisplayName *string

	// The packaging type of the app block.
	PackagingType PackagingType

	// The post setup script details of the app block. This only applies to app blocks
	// with PackagingType APPSTREAM2 .
	PostSetupScriptDetails *ScriptDetails

	// The setup script details of the app block. This only applies to app blocks with
	// PackagingType CUSTOM .
	SetupScriptDetails *ScriptDetails

	// The source S3 location of the app block.
	SourceS3Location *S3Location

	// The state of the app block. An app block with AppStream 2.0 packaging will be
	// in the INACTIVE state if no application package (VHD) is assigned to it. After
	// an application package (VHD) is created by an app block builder for an app
	// block, it becomes ACTIVE . Custom app blocks are always in the ACTIVE state and
	// no action is required to use them.
	State AppBlockState

	noSmithyDocumentSerde
}

// Describes an app block builder.
type AppBlockBuilder struct {

	// The ARN of the app block builder.
	//
	// This member is required.
	Arn *string

	// The instance type of the app block builder.
	//
	// This member is required.
	InstanceType *string

	// The name of the app block builder.
	//
	// This member is required.
	Name *string

	// The platform of the app block builder. WINDOWS_SERVER_2019 is the only valid
	// value.
	//
	// This member is required.
	Platform AppBlockBuilderPlatformType

	// The state of the app block builder.
	//
	// This member is required.
	State AppBlockBuilderState

	// The VPC configuration for the app block builder.
	//
	// This member is required.
	VpcConfig *VpcConfig

	// The list of interface VPC endpoint (interface endpoint) objects. Administrators
	// can connect to the app block builder only through the specified endpoints.
	AccessEndpoints []AccessEndpoint

	// The app block builder errors.
	AppBlockBuilderErrors []ResourceError

	// The creation time of the app block builder.
	CreatedTime *time.Time

	// The description of the app block builder.
	Description *string

	// The display name of the app block builder.
	DisplayName *string

	// Indicates whether default internet access is enabled for the app block builder.
	EnableDefaultInternetAccess *bool

	// The ARN of the IAM role that is applied to the app block builder.
	IamRoleArn *string

	// The state change reason.
	StateChangeReason *AppBlockBuilderStateChangeReason

	noSmithyDocumentSerde
}

// Describes an association between an app block builder and app block.
type AppBlockBuilderAppBlockAssociation struct {

	// The ARN of the app block.
	//
	// This member is required.
	AppBlockArn *string

	// The name of the app block builder.
	//
	// This member is required.
	AppBlockBuilderName *string

	noSmithyDocumentSerde
}

// Describes the reason why the last app block builder state change occurred.
type AppBlockBuilderStateChangeReason struct {

	// The state change reason code.
	Code AppBlockBuilderStateChangeReasonCode

	// The state change reason message.
	Message *string

	noSmithyDocumentSerde
}

// Describes an application in the application catalog.
type Application struct {

	// The app block ARN of the application.
	AppBlockArn *string

	// The ARN of the application.
	Arn *string

	// The time at which the application was created within the app block.
	CreatedTime *time.Time

	// The description of the application.
	Description *string

	// The application name to display.
	DisplayName *string

	// If there is a problem, the application can be disabled after image creation.
	Enabled *bool

	// The S3 location of the application icon.
	IconS3Location *S3Location

	// The URL for the application icon. This URL might be time-limited.
	IconURL *string

	// The instance families for the application.
	InstanceFamilies []string

	// The arguments that are passed to the application at launch.
	LaunchParameters *string

	// The path to the application executable in the instance.
	LaunchPath *string

	// Additional attributes that describe the application.
	Metadata map[string]string

	// The name of the application.
	Name *string

	// The platforms on which the application can run.
	Platforms []PlatformType

	// The working directory for the application.
	WorkingDirectory *string

	noSmithyDocumentSerde
}

// Describes the application fleet association.
type ApplicationFleetAssociation struct {

	// The ARN of the application associated with the fleet.
	//
	// This member is required.
	ApplicationArn *string

	// The name of the fleet associated with the application.
	//
	// This member is required.
	FleetName *string

	noSmithyDocumentSerde
}

// The persistent application settings for users of a stack.
type ApplicationSettings struct {

	// Enables or disables persistent application settings for users during their
	// streaming sessions.
	//
	// This member is required.
	Enabled *bool

	// The path prefix for the S3 bucket where users’ persistent application settings
	// are stored. You can allow the same persistent application settings to be used
	// across multiple stacks by specifying the same settings group for each stack.
	SettingsGroup *string

	noSmithyDocumentSerde
}

// Describes the persistent application settings for users of a stack.
type ApplicationSettingsResponse struct {

	// Specifies whether persistent application settings are enabled for users during
	// their streaming sessions.
	Enabled *bool

	// The S3 bucket where users’ persistent application settings are stored. When
	// persistent application settings are enabled for the first time for an account in
	// an AWS Region, an S3 bucket is created. The bucket is unique to the AWS account
	// and the Region.
	S3BucketName *string

	// The path prefix for the S3 bucket where users’ persistent application settings
	// are stored.
	SettingsGroup *string

	noSmithyDocumentSerde
}

// The certificate-based authentication properties used to authenticate SAML 2.0
// Identity Provider (IdP) user identities to Active Directory domain-joined
// streaming instances. Fallback is turned on by default when certificate-based
// authentication is Enabled . Fallback allows users to log in using their AD
// domain password if certificate-based authentication is unsuccessful, or to
// unlock a desktop lock screen. Enabled_no_directory_login_fallback enables
// certificate-based authentication, but does not allow users to log in using their
// AD domain password. Users will be disconnected to re-authenticate using
// certificates.
type CertificateBasedAuthProperties struct {

	// The ARN of the AWS Certificate Manager Private CA resource.
	CertificateAuthorityArn *string

	// The status of the certificate-based authentication properties.
	Status CertificateBasedAuthStatus

	noSmithyDocumentSerde
}

// Describes the capacity for a fleet.
type ComputeCapacity struct {

	// The desired number of streaming instances.
	DesiredInstances *int32

	// The desired number of user sessions for a multi-session fleet. This is not
	// allowed for single-session fleets. When you create a fleet, you must set either
	// the DesiredSessions or DesiredInstances attribute, based on the type of fleet
	// you create. You can’t define both attributes or leave both attributes blank.
	DesiredSessions *int32

	noSmithyDocumentSerde
}

// Describes the capacity status for a fleet.
type ComputeCapacityStatus struct {

	// The desired number of streaming instances.
	//
	// This member is required.
	Desired *int32

	// The number of user sessions currently being used for streaming sessions. This
	// only applies to multi-session fleets.
	ActiveUserSessions *int32

	// The total number of session slots that are available for streaming or are
	// currently streaming. ActualUserSessionCapacity = AvailableUserSessionCapacity +
	// ActiveUserSessions This only applies to multi-session fleets.
	ActualUserSessions *int32

	// The number of currently available instances that can be used to stream sessions.
	Available *int32

	// The number of idle session slots currently available for user sessions.
	// AvailableUserSessionCapacity = ActualUserSessionCapacity - ActiveUserSessions
	// This only applies to multi-session fleets.
	AvailableUserSessions *int32

	// The total number of sessions slots that are either running or pending. This
	// represents the total number of concurrent streaming sessions your fleet can
	// support in a steady state. DesiredUserSessionCapacity =
	// ActualUserSessionCapacity + PendingUserSessionCapacity This only applies to
	// multi-session fleets.
	DesiredUserSessions *int32

	// The number of instances in use for streaming.
	InUse *int32

	// The total number of simultaneous streaming instances that are running.
	Running *int32

	noSmithyDocumentSerde
}

// Describes the configuration information required to join fleets and image
// builders to Microsoft Active Directory domains.
type DirectoryConfig struct {

	// The fully qualified name of the directory (for example, corp.example.com).
	//
	// This member is required.
	DirectoryName *string

	// The certificate-based authentication properties used to authenticate SAML 2.0
	// Identity Provider (IdP) user identities to Active Directory domain-joined
	// streaming instances. Fallback is turned on by default when certificate-based
	// authentication is Enabled . Fallback allows users to log in using their AD
	// domain password if certificate-based authentication is unsuccessful, or to
	// unlock a desktop lock screen. Enabled_no_directory_login_fallback enables
	// certificate-based authentication, but does not allow users to log in using their
	// AD domain password. Users will be disconnected to re-authenticate using
	// certificates.
	CertificateBasedAuthProperties *CertificateBasedAuthProperties

	// The time the directory configuration was created.
	CreatedTime *time.Time

	// The distinguished names of the organizational units for computer accounts.
	OrganizationalUnitDistinguishedNames []string

	// The credentials for the service account used by the fleet or image builder to
	// connect to the directory.
	ServiceAccountCredentials *ServiceAccountCredentials

	noSmithyDocumentSerde
}

// Describes the configuration information required to join fleets and image
// builders to Microsoft Active Directory domains.
type DomainJoinInfo struct {

	// The fully qualified name of the directory (for example, corp.example.com).
	DirectoryName *string

	// The distinguished name of the organizational unit for computer accounts.
	OrganizationalUnitDistinguishedName *string

	noSmithyDocumentSerde
}

// The application associated to an entitlement. Access is controlled based on
// user attributes.
type EntitledApplication struct {

	// The identifier of the application.
	//
	// This member is required.
	ApplicationIdentifier *string

	noSmithyDocumentSerde
}

// Specifies an entitlement. Entitlements control access to specific applications
// within a stack, based on user attributes. Entitlements apply to SAML 2.0
// federated user identities. Amazon AppStream 2.0 user pool and streaming URL
// users are entitled to all applications in a stack. Entitlements don't apply to
// the desktop stream view application, or to applications managed by a dynamic app
// provider using the Dynamic Application Framework.
type Entitlement struct {

	// Specifies whether all or selected apps are entitled.
	//
	// This member is required.
	AppVisibility AppVisibility

	// The attributes of the entitlement.
	//
	// This member is required.
	Attributes []EntitlementAttribute

	// The name of the entitlement.
	//
	// This member is required.
	Name *string

	// The name of the stack with which the entitlement is associated.
	//
	// This member is required.
	StackName *string

	// The time when the entitlement was created.
	CreatedTime *time.Time

	// The description of the entitlement.
	Description *string

	// The time when the entitlement was last modified.
	LastModifiedTime *time.Time

	noSmithyDocumentSerde
}

// An attribute associated with an entitlement. Application entitlements work by
// matching a supported SAML 2.0 attribute name to a value when a user identity
// federates to an Amazon AppStream 2.0 SAML application.
type EntitlementAttribute struct {

	// A supported AWS IAM SAML PrincipalTag attribute that is matched to the
	// associated value when a user identity federates into an Amazon AppStream 2.0
	// SAML application. The following are valid values:
	//   - roles
	//   - department
	//   - organization
	//   - groups
	//   - title
	//   - costCenter
	//   - userType
	//
	// This member is required.
	Name *string

	// A value that is matched to a supported SAML attribute name when a user identity
	// federates into an Amazon AppStream 2.0 SAML application.
	//
	// This member is required.
	Value *string

	noSmithyDocumentSerde
}

// The error details.
type ErrorDetails struct {

	// The error code.
	ErrorCode *string

	// The error message.
	ErrorMessage *string

	noSmithyDocumentSerde
}

// Describes a fleet.
type Fleet struct {

	// The Amazon Resource Name (ARN) for the fleet.
	//
	// This member is required.
	Arn *string

	// The capacity status for the fleet.
	//
	// This member is required.
	ComputeCapacityStatus *ComputeCapacityStatus

	// The instance type to use when launching fleet instances. The following instance
	// types are available:
	//   - stream.standard.small
	//   - stream.standard.medium
	//   - stream.standard.large
	//   - stream.compute.large
	//   - stream.compute.xlarge
	//   - stream.compute.2xlarge
	//   - stream.compute.4xlarge
	//   - stream.compute.8xlarge
	//   - stream.memory.large
	//   - stream.memory.xlarge
	//   - stream.memory.2xlarge
	//   - stream.memory.4xlarge
	//   - stream.memory.8xlarge
	//   - stream.memory.z1d.large
	//   - stream.memory.z1d.xlarge
	//   - stream.memory.z1d.2xlarge
	//   - stream.memory.z1d.3xlarge
	//   - stream.memory.z1d.6xlarge
	//   - stream.memory.z1d.12xlarge
	//   - stream.graphics-design.large
	//   - stream.graphics-design.xlarge
	//   - stream.graphics-design.2xlarge
	//   - stream.graphics-design.4xlarge
	//   - stream.graphics-desktop.2xlarge
	//   - stream.graphics.g4dn.xlarge
	//   - stream.graphics.g4dn.2xlarge
	//   - stream.graphics.g4dn.4xlarge
	//   - stream.graphics.g4dn.8xlarge
	//   - stream.graphics.g4dn.12xlarge
	//   - stream.graphics.g4dn.16xlarge
	//   - stream.graphics-pro.4xlarge
	//   - stream.graphics-pro.8xlarge
	//   - stream.graphics-pro.16xlarge
	//
	// This member is required.
	InstanceType *string

	// The name of the fleet.
	//
	// This member is required.
	Name *string

	// The current state for the fleet.
	//
	// This member is required.
	State FleetState

	// The time the fleet was created.
	CreatedTime *time.Time

	// The description to display.
	Description *string

	// The amount of time that a streaming session remains active after users
	// disconnect. If they try to reconnect to the streaming session after a
	// disconnection or network interruption within this time interval, they are
	// connected to their previous session. Otherwise, they are connected to a new
	// session with a new streaming instance. Specify a value between 60 and 360000.
	DisconnectTimeoutInSeconds *int32

	// The fleet name to display.
	DisplayName *string

	// The name of the directory and organizational unit (OU) to use to join the fleet
	// to a Microsoft Active Directory domain.
	DomainJoinInfo *DomainJoinInfo

	// Indicates whether default internet access is enabled for the fleet.
	EnableDefaultInternetAccess *bool

	// The fleet errors.
	FleetErrors []FleetError

	// The fleet type. ALWAYS_ON Provides users with instant-on access to their apps.
	// You are charged for all running instances in your fleet, even if no users are
	// streaming apps. ON_DEMAND Provide users with access to applications after they
	// connect, which takes one to two minutes. You are charged for instance streaming
	// when users are connected and a small hourly fee for instances that are not
	// streaming apps.
	FleetType FleetType

	// The ARN of the IAM role that is applied to the fleet. To assume a role, the
	// fleet instance calls the AWS Security Token Service (STS) AssumeRole API
	// operation and passes the ARN of the role to use. The operation creates a new
	// session with temporary credentials. AppStream 2.0 retrieves the temporary
	// credentials and creates the appstream_machine_role credential profile on the
	// instance. For more information, see Using an IAM Role to Grant Permissions to
	// Applications and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
	// in the Amazon AppStream 2.0 Administration Guide.
	IamRoleArn *string

	// The amount of time that users can be idle (inactive) before they are
	// disconnected from their streaming session and the DisconnectTimeoutInSeconds
	// time interval begins. Users are notified before they are disconnected due to
	// inactivity. If users try to reconnect to the streaming session before the time
	// interval specified in DisconnectTimeoutInSeconds elapses, they are connected to
	// their previous session. Users are considered idle when they stop providing
	// keyboard or mouse input during their streaming session. File uploads and
	// downloads, audio in, audio out, and pixels changing do not qualify as user
	// activity. If users continue to be idle after the time interval in
	// IdleDisconnectTimeoutInSeconds elapses, they are disconnected. To prevent users
	// from being disconnected due to inactivity, specify a value of 0. Otherwise,
	// specify a value between 60 and 3600. The default value is 0. If you enable this
	// feature, we recommend that you specify a value that corresponds exactly to a
	// whole number of minutes (for example, 60, 120, and 180). If you don't do this,
	// the value is rounded to the nearest minute. For example, if you specify a value
	// of 70, users are disconnected after 1 minute of inactivity. If you specify a
	// value that is at the midpoint between two different minutes, the value is
	// rounded up. For example, if you specify a value of 90, users are disconnected
	// after 2 minutes of inactivity.
	IdleDisconnectTimeoutInSeconds *int32

	// The ARN for the public, private, or shared image.
	ImageArn *string

	// The name of the image used to create the fleet.
	ImageName *string

	// The maximum number of concurrent sessions for the fleet.
	MaxConcurrentSessions *int32

	// The maximum number of user sessions on an instance. This only applies to
	// multi-session fleets.
	MaxSessionsPerInstance *int32

	// The maximum amount of time that a streaming session can remain active, in
	// seconds. If users are still connected to a streaming instance five minutes
	// before this limit is reached, they are prompted to save any open documents
	// before being disconnected. After this time elapses, the instance is terminated
	// and replaced by a new instance. Specify a value between 600 and 360000.
	MaxUserDurationInSeconds *int32

	// The platform of the fleet.
	Platform PlatformType

	// The S3 location of the session scripts configuration zip file. This only
	// applies to Elastic fleets.
	SessionScriptS3Location *S3Location

	// The AppStream 2.0 view that is displayed to your users when they stream from
	// the fleet. When APP is specified, only the windows of applications opened by
	// users display. When DESKTOP is specified, the standard desktop that is provided
	// by the operating system displays. The default value is APP .
	StreamView StreamView

	// The USB device filter strings associated with the fleet.
	UsbDeviceFilterStrings []string

	// The VPC configuration for the fleet.
	VpcConfig *VpcConfig

	noSmithyDocumentSerde
}

// Describes a fleet error.
type FleetError struct {

	// The error code.
	ErrorCode FleetErrorCode

	// The error message.
	ErrorMessage *string

	noSmithyDocumentSerde
}

// Describes an image.
type Image struct {

	// The name of the image.
	//
	// This member is required.
	Name *string

	// The applications associated with the image.
	Applications []Application

	// The version of the AppStream 2.0 agent to use for instances that are launched
	// from this image.
	AppstreamAgentVersion *string

	// The ARN of the image.
	Arn *string

	// The ARN of the image from which this image was created.
	BaseImageArn *string

	// The time the image was created.
	CreatedTime *time.Time

	// The description to display.
	Description *string

	// The image name to display.
	DisplayName *string

	// The name of the image builder that was used to create the private image. If the
	// image is shared, this value is null.
	ImageBuilderName *string

	// Indicates whether an image builder can be launched from this image.
	ImageBuilderSupported *bool

	// Describes the errors that are returned when a new image can't be created.
	ImageErrors []ResourceError

	// The permissions to provide to the destination AWS account for the specified
	// image.
	ImagePermissions *ImagePermissions

	// The operating system platform of the image.
	Platform PlatformType

	// The release date of the public base image. For private images, this date is the
	// release date of the base image from which the image was created.
	PublicBaseImageReleasedDate *time.Time

	// The image starts in the PENDING state. If image creation succeeds, the state is
	// AVAILABLE . If image creation fails, the state is FAILED .
	State ImageState

	// The reason why the last state change occurred.
	StateChangeReason *ImageStateChangeReason

	// Indicates whether the image is public or private.
	Visibility VisibilityType

	noSmithyDocumentSerde
}

// Describes a virtual machine that is used to create an image.
type ImageBuilder struct {

	// The name of the image builder.
	//
	// This member is required.
	Name *string

	// The list of virtual private cloud (VPC) interface endpoint objects.
	// Administrators can connect to the image builder only through the specified
	// endpoints.
	AccessEndpoints []AccessEndpoint

	// The version of the AppStream 2.0 agent that is currently being used by the
	// image builder.
	AppstreamAgentVersion *string

	// The ARN for the image builder.
	Arn *string

	// The time stamp when the image builder was created.
	CreatedTime *time.Time

	// The description to display.
	Description *string

	// The image builder name to display.
	DisplayName *string

	// The name of the directory and organizational unit (OU) to use to join the image
	// builder to a Microsoft Active Directory domain.
	DomainJoinInfo *DomainJoinInfo

	// Enables or disables default internet access for the image builder.
	EnableDefaultInternetAccess *bool

	// The ARN of the IAM role that is applied to the image builder. To assume a role,
	// the image builder calls the AWS Security Token Service (STS) AssumeRole API
	// operation and passes the ARN of the role to use. The operation creates a new
	// session with temporary credentials. AppStream 2.0 retrieves the temporary
	// credentials and creates the appstream_machine_role credential profile on the
	// instance. For more information, see Using an IAM Role to Grant Permissions to
	// Applications and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
	// in the Amazon AppStream 2.0 Administration Guide.
	IamRoleArn *string

	// The ARN of the image from which this builder was created.
	ImageArn *string

	// The image builder errors.
	ImageBuilderErrors []ResourceError

	// The instance type for the image builder. The following instance types are
	// available:
	//   - stream.standard.small
	//   - stream.standard.medium
	//   - stream.standard.large
	//   - stream.compute.large
	//   - stream.compute.xlarge
	//   - stream.compute.2xlarge
	//   - stream.compute.4xlarge
	//   - stream.compute.8xlarge
	//   - stream.memory.large
	//   - stream.memory.xlarge
	//   - stream.memory.2xlarge
	//   - stream.memory.4xlarge
	//   - stream.memory.8xlarge
	//   - stream.memory.z1d.large
	//   - stream.memory.z1d.xlarge
	//   - stream.memory.z1d.2xlarge
	//   - stream.memory.z1d.3xlarge
	//   - stream.memory.z1d.6xlarge
	//   - stream.memory.z1d.12xlarge
	//   - stream.graphics-design.large
	//   - stream.graphics-design.xlarge
	//   - stream.graphics-design.2xlarge
	//   - stream.graphics-design.4xlarge
	//   - stream.graphics-desktop.2xlarge
	//   - stream.graphics.g4dn.xlarge
	//   - stream.graphics.g4dn.2xlarge
	//   - stream.graphics.g4dn.4xlarge
	//   - stream.graphics.g4dn.8xlarge
	//   - stream.graphics.g4dn.12xlarge
	//   - stream.graphics.g4dn.16xlarge
	//   - stream.graphics-pro.4xlarge
	//   - stream.graphics-pro.8xlarge
	//   - stream.graphics-pro.16xlarge
	InstanceType *string

	// Describes the network details of the fleet or image builder instance.
	NetworkAccessConfiguration *NetworkAccessConfiguration

	// The operating system platform of the image builder.
	Platform PlatformType

	// The state of the image builder.
	State ImageBuilderState

	// The reason why the last state change occurred.
	StateChangeReason *ImageBuilderStateChangeReason

	// The VPC configuration of the image builder.
	VpcConfig *VpcConfig

	noSmithyDocumentSerde
}

// Describes the reason why the last image builder state change occurred.
type ImageBuilderStateChangeReason struct {

	// The state change reason code.
	Code ImageBuilderStateChangeReasonCode

	// The state change reason message.
	Message *string

	noSmithyDocumentSerde
}

// Describes the permissions for an image.
type ImagePermissions struct {

	// Indicates whether the image can be used for a fleet.
	AllowFleet *bool

	// Indicates whether the image can be used for an image builder.
	AllowImageBuilder *bool

	noSmithyDocumentSerde
}

// Describes the reason why the last image state change occurred.
type ImageStateChangeReason struct {

	// The state change reason code.
	Code ImageStateChangeReasonCode

	// The state change reason message.
	Message *string

	noSmithyDocumentSerde
}

// Describes the error that is returned when a usage report can't be generated.
type LastReportGenerationExecutionError struct {

	// The error code for the error that is returned when a usage report can't be
	// generated.
	ErrorCode UsageReportExecutionErrorCode

	// The error message for the error that is returned when a usage report can't be
	// generated.
	ErrorMessage *string

	noSmithyDocumentSerde
}

// Describes the network details of the fleet or image builder instance.
type NetworkAccessConfiguration struct {

	// The resource identifier of the elastic network interface that is attached to
	// instances in your VPC. All network interfaces have the eni-xxxxxxxx resource
	// identifier.
	EniId *string

	// The private IP address of the elastic network interface that is attached to
	// instances in your VPC.
	EniPrivateIpAddress *string

	noSmithyDocumentSerde
}

// Describes a resource error.
type ResourceError struct {

	// The error code.
	ErrorCode FleetErrorCode

	// The error message.
	ErrorMessage *string

	// The time the error occurred.
	ErrorTimestamp *time.Time

	noSmithyDocumentSerde
}

// Describes the S3 location.
type S3Location struct {

	// The S3 bucket of the S3 object.
	//
	// This member is required.
	S3Bucket *string

	// The S3 key of the S3 object. This is required when used for the following:
	//   - IconS3Location (Actions: CreateApplication and UpdateApplication)
	//   - SessionScriptS3Location (Actions: CreateFleet and UpdateFleet)
	//   - ScriptDetails (Actions: CreateAppBlock)
	//   - SourceS3Location when creating an app block with CUSTOM PackagingType
	//   (Actions: CreateAppBlock)
	//   - SourceS3Location when creating an app block with APPSTREAM2 PackagingType,
	//   and using an existing application package (VHD file). In this case, S3Key
	//   refers to the VHD file. If a new application package is required, then S3Key
	//   is not required. (Actions: CreateAppBlock)
	S3Key *string

	noSmithyDocumentSerde
}

// Describes the details of the script.
type ScriptDetails struct {

	// The run path for the script.
	//
	// This member is required.
	ExecutablePath *string

	// The S3 object location for the script.
	//
	// This member is required.
	ScriptS3Location *S3Location

	// The run timeout, in seconds, for the script.
	//
	// This member is required.
	TimeoutInSeconds *int32

	// The runtime parameters passed to the run path for the script.
	ExecutableParameters *string

	noSmithyDocumentSerde
}

// Describes the credentials for the service account used by the fleet or image
// builder to connect to the directory.
type ServiceAccountCredentials struct {

	// The user name of the account. This account must have the following privileges:
	// create computer objects, join computers to the domain, and change/reset the
	// password on descendant computer objects for the organizational units specified.
	//
	// This member is required.
	AccountName *string

	// The password for the account.
	//
	// This member is required.
	AccountPassword *string

	noSmithyDocumentSerde
}

// Describes a streaming session.
type Session struct {

	// The name of the fleet for the streaming session.
	//
	// This member is required.
	FleetName *string

	// The identifier of the streaming session.
	//
	// This member is required.
	Id *string

	// The name of the stack for the streaming session.
	//
	// This member is required.
	StackName *string

	// The current state of the streaming session.
	//
	// This member is required.
	State SessionState

	// The identifier of the user for whom the session was created.
	//
	// This member is required.
	UserId *string

	// The authentication method. The user is authenticated using a streaming URL ( API
	// ) or SAML 2.0 federation ( SAML ).
	AuthenticationType AuthenticationType

	// Specifies whether a user is connected to the streaming session.
	ConnectionState SessionConnectionState

	// The identifier for the instance hosting the session.
	InstanceId *string

	// The time when the streaming session is set to expire. This time is based on the
	// MaxUserDurationinSeconds value, which determines the maximum length of time that
	// a streaming session can run. A streaming session might end earlier than the time
	// specified in SessionMaxExpirationTime , when the DisconnectTimeOutInSeconds
	// elapses or the user chooses to end his or her session. If the
	// DisconnectTimeOutInSeconds elapses, or the user chooses to end his or her
	// session, the streaming instance is terminated and the streaming session ends.
	MaxExpirationTime *time.Time

	// The network details for the streaming session.
	NetworkAccessConfiguration *NetworkAccessConfiguration

	// The time when a streaming instance is dedicated for the user.
	StartTime *time.Time

	noSmithyDocumentSerde
}

// Describes the permissions that are available to the specified AWS account for a
// shared image.
type SharedImagePermissions struct {

	// Describes the permissions for a shared image.
	//
	// This member is required.
	ImagePermissions *ImagePermissions

	// The 12-digit identifier of the AWS account with which the image is shared.
	//
	// This member is required.
	SharedAccountId *string

	noSmithyDocumentSerde
}

// Describes a stack.
type Stack struct {

	// The name of the stack.
	//
	// This member is required.
	Name *string

	// The list of virtual private cloud (VPC) interface endpoint objects. Users of
	// the stack can connect to AppStream 2.0 only through the specified endpoints.
	AccessEndpoints []AccessEndpoint

	// The persistent application settings for users of the stack.
	ApplicationSettings *ApplicationSettingsResponse

	// The ARN of the stack.
	Arn *string

	// The time the stack was created.
	CreatedTime *time.Time

	// The description to display.
	Description *string

	// The stack name to display.
	DisplayName *string

	// The domains where AppStream 2.0 streaming sessions can be embedded in an
	// iframe. You must approve the domains that you want to host embedded AppStream
	// 2.0 streaming sessions.
	EmbedHostDomains []string

	// The URL that users are redirected to after they click the Send Feedback link.
	// If no URL is specified, no Send Feedback link is displayed.
	FeedbackURL *string

	// The URL that users are redirected to after their streaming session ends.
	RedirectURL *string

	// The errors for the stack.
	StackErrors []StackError

	// The storage connectors to enable.
	StorageConnectors []StorageConnector

	// The streaming protocol you want your stack to prefer. This can be UDP or TCP.
	// Currently, UDP is only supported in the Windows native client.
	StreamingExperienceSettings *StreamingExperienceSettings

	// The actions that are enabled or disabled for users during their streaming
	// sessions. By default these actions are enabled.
	UserSettings []UserSetting

	noSmithyDocumentSerde
}

// Describes a stack error.
type StackError struct {

	// The error code.
	ErrorCode StackErrorCode

	// The error message.
	ErrorMessage *string

	noSmithyDocumentSerde
}

// Describes a connector that enables persistent storage for users.
type StorageConnector struct {

	// The type of storage connector.
	//
	// This member is required.
	ConnectorType StorageConnectorType

	// The names of the domains for the account.
	Domains []string

	// The ARN of the storage connector.
	ResourceIdentifier *string

	noSmithyDocumentSerde
}

// The streaming protocol you want your stack to prefer. This can be UDP or TCP.
// Currently, UDP is only supported in the Windows native client.
type StreamingExperienceSettings struct {

	// The preferred protocol that you want to use while streaming your application.
	PreferredProtocol PreferredProtocol

	noSmithyDocumentSerde
}

// Describes information about the usage report subscription.
type UsageReportSubscription struct {

	// The time when the last usage report was generated.
	LastGeneratedReportDate *time.Time

	// The Amazon S3 bucket where generated reports are stored. If you enabled
	// on-instance session scripts and Amazon S3 logging for your session script
	// configuration, AppStream 2.0 created an S3 bucket to store the script output.
	// The bucket is unique to your account and Region. When you enable usage reporting
	// in this case, AppStream 2.0 uses the same bucket to store your usage reports. If
	// you haven't already enabled on-instance session scripts, when you enable usage
	// reports, AppStream 2.0 creates a new S3 bucket.
	S3BucketName *string

	// The schedule for generating usage reports.
	Schedule UsageReportSchedule

	// The errors that were returned if usage reports couldn't be generated.
	SubscriptionErrors []LastReportGenerationExecutionError

	noSmithyDocumentSerde
}

// Describes a user in the user pool.
type User struct {

	// The authentication type for the user.
	//
	// This member is required.
	AuthenticationType AuthenticationType

	// The ARN of the user.
	Arn *string

	// The date and time the user was created in the user pool.
	CreatedTime *time.Time

	// Specifies whether the user in the user pool is enabled.
	Enabled *bool

	// The first name, or given name, of the user.
	FirstName *string

	// The last name, or surname, of the user.
	LastName *string

	// The status of the user in the user pool. The status can be one of the
	// following:
	//   - UNCONFIRMED – The user is created but not confirmed.
	//   - CONFIRMED – The user is confirmed.
	//   - ARCHIVED – The user is no longer active.
	//   - COMPROMISED – The user is disabled because of a potential security threat.
	//   - UNKNOWN – The user status is not known.
	Status *string

	// The email address of the user. Users' email addresses are case-sensitive.
	UserName *string

	noSmithyDocumentSerde
}

// Describes an action and whether the action is enabled or disabled for users
// during their streaming sessions.
type UserSetting struct {

	// The action that is enabled or disabled.
	//
	// This member is required.
	Action Action

	// Indicates whether the action is enabled or disabled.
	//
	// This member is required.
	Permission Permission

	// Specifies the number of characters that can be copied by end users from the
	// local device to the remote session, and to the local device from the remote
	// session. This can be specified only for the CLIPBOARD_COPY_FROM_LOCAL_DEVICE
	// and CLIPBOARD_COPY_TO_LOCAL_DEVICE actions. This defaults to 20,971,520 (20 MB)
	// when unspecified and the permission is ENABLED . This can't be specified when
	// the permission is DISABLED . This can only be specified for AlwaysOn and
	// OnDemand fleets. The attribute is not supported on Elastic fleets. The value can
	// be between 1 and 20,971,520 (20 MB).
	MaximumLength *int32

	noSmithyDocumentSerde
}

// Describes a user in the user pool and the associated stack.
type UserStackAssociation struct {

	// The authentication type for the user.
	//
	// This member is required.
	AuthenticationType AuthenticationType

	// The name of the stack that is associated with the user.
	//
	// This member is required.
	StackName *string

	// The email address of the user who is associated with the stack. Users' email
	// addresses are case-sensitive.
	//
	// This member is required.
	UserName *string

	// Specifies whether a welcome email is sent to a user after the user is created
	// in the user pool.
	SendEmailNotification *bool

	noSmithyDocumentSerde
}

// Describes the error that is returned when a user can’t be associated with or
// disassociated from a stack.
type UserStackAssociationError struct {

	// The error code for the error that is returned when a user can’t be associated
	// with or disassociated from a stack.
	ErrorCode UserStackAssociationErrorCode

	// The error message for the error that is returned when a user can’t be
	// associated with or disassociated from a stack.
	ErrorMessage *string

	// Information about the user and associated stack.
	UserStackAssociation *UserStackAssociation

	noSmithyDocumentSerde
}

// Describes VPC configuration information for fleets and image builders.
type VpcConfig struct {

	// The identifiers of the security groups for the fleet or image builder.
	SecurityGroupIds []string

	// The identifiers of the subnets to which a network interface is attached from
	// the fleet instance or image builder instance. Fleet instances use one or more
	// subnets. Image builder instances use one subnet.
	SubnetIds []string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde