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 (1568 lines) | stat: -rw-r--r-- 48,837 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
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

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

// Describes an agent version.
type AgentVersion struct {

	// The configuration manager.
	ConfigurationManager *StackConfigurationManager

	// The agent version.
	Version *string

	noSmithyDocumentSerde
}

// A description of the app.
type App struct {

	// The app ID.
	AppId *string

	// A Source object that describes the app repository.
	AppSource *Source

	// The stack attributes.
	Attributes map[string]string

	// When the app was created.
	CreatedAt *string

	// The app's data sources.
	DataSources []DataSource

	// A description of the app.
	Description *string

	// The app vhost settings with multiple domains separated by commas. For example:
	// 'www.example.com, example.com'
	Domains []string

	// Whether to enable SSL for the app.
	EnableSsl *bool

	// An array of EnvironmentVariable objects that specify environment variables to
	// be associated with the app. After you deploy the app, these variables are
	// defined on the associated app server instances. For more information, see
	// Environment Variables (https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment)
	// . There is no specific limit on the number of environment variables. However,
	// the size of the associated data structure - which includes the variable names,
	// values, and protected flag values - cannot exceed 20 KB. This limit should
	// accommodate most if not all use cases, but if you do exceed it, you will cause
	// an exception (API) with an "Environment: is too large (maximum is 20 KB)"
	// message.
	Environment []EnvironmentVariable

	// The app name.
	Name *string

	// The app's short name.
	Shortname *string

	// An SslConfiguration object with the SSL configuration.
	SslConfiguration *SslConfiguration

	// The app stack ID.
	StackId *string

	// The app type.
	Type AppType

	noSmithyDocumentSerde
}

// Describes a load-based auto scaling upscaling or downscaling threshold
// configuration, which specifies when AWS OpsWorks Stacks starts or stops
// load-based instances.
type AutoScalingThresholds struct {

	// Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter
	// takes a list of up to five alarm names, which are case sensitive and must be in
	// the same region as the stack. To use custom alarms, you must update your service
	// role to allow cloudwatch:DescribeAlarms . You can either have AWS OpsWorks
	// Stacks update the role for you when you first use this feature or you can edit
	// the role manually. For more information, see Allowing AWS OpsWorks Stacks to
	// Act on Your Behalf (https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-servicerole.html)
	// .
	Alarms []string

	// The CPU utilization threshold, as a percent of the available CPU. A value of -1
	// disables the threshold.
	CpuThreshold *float64

	// The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks
	// Stacks should ignore metrics and suppress additional scaling events. For
	// example, AWS OpsWorks Stacks adds new instances following an upscaling event but
	// the instances won't start reducing the load until they have been booted and
	// configured. There is no point in raising additional scaling events during that
	// operation, which typically takes several minutes. IgnoreMetricsTime allows you
	// to direct AWS OpsWorks Stacks to suppress scaling events long enough to get the
	// new instances online.
	IgnoreMetricsTime *int32

	// The number of instances to add or remove when the load exceeds a threshold.
	InstanceCount *int32

	// The load threshold. A value of -1 disables the threshold. For more information
	// about how load is computed, see Load (computing) (http://en.wikipedia.org/wiki/Load_%28computing%29)
	// .
	LoadThreshold *float64

	// The memory utilization threshold, as a percent of the available memory. A value
	// of -1 disables the threshold.
	MemoryThreshold *float64

	// The amount of time, in minutes, that the load must exceed a threshold before
	// more instances are added or removed.
	ThresholdsWaitTime *int32

	noSmithyDocumentSerde
}

// Describes a block device mapping. This data type maps directly to the Amazon
// EC2 BlockDeviceMapping (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html)
// data type.
type BlockDeviceMapping struct {

	// The device name that is exposed to the instance, such as /dev/sdh . For the root
	// device, you can use the explicit device name or you can set this parameter to
	// ROOT_DEVICE and AWS OpsWorks Stacks will provide the correct device name.
	DeviceName *string

	// An EBSBlockDevice that defines how to configure an Amazon EBS volume when the
	// instance is launched.
	Ebs *EbsBlockDevice

	// Suppresses the specified device included in the AMI's block device mapping.
	NoDevice *string

	// The virtual device name. For more information, see BlockDeviceMapping (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html)
	// .
	VirtualName *string

	noSmithyDocumentSerde
}

// Describes the Chef configuration.
type ChefConfiguration struct {

	// The Berkshelf version.
	BerkshelfVersion *string

	// Whether to enable Berkshelf.
	ManageBerkshelf *bool

	noSmithyDocumentSerde
}

// Describes the Amazon CloudWatch logs configuration for a layer.
type CloudWatchLogsConfiguration struct {

	// Whether CloudWatch Logs is enabled for a layer.
	Enabled *bool

	// A list of configuration options for CloudWatch Logs.
	LogStreams []CloudWatchLogsLogStream

	noSmithyDocumentSerde
}

// Describes the Amazon CloudWatch logs configuration for a layer. For detailed
// information about members of this data type, see the CloudWatch Logs Agent
// Reference (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html)
// .
type CloudWatchLogsLogStream struct {

	// Specifies the max number of log events in a batch, up to 10000. The default
	// value is 1000.
	BatchCount *int32

	// Specifies the maximum size of log events in a batch, in bytes, up to 1048576
	// bytes. The default value is 32768 bytes. This size is calculated as the sum of
	// all event messages in UTF-8, plus 26 bytes for each log event.
	BatchSize *int32

	// Specifies the time duration for the batching of log events. The minimum value
	// is 5000ms and default value is 5000ms.
	BufferDuration *int32

	// Specifies how the time stamp is extracted from logs. For more information, see
	// the CloudWatch Logs Agent Reference (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html)
	// .
	DatetimeFormat *string

	// Specifies the encoding of the log file so that the file can be read correctly.
	// The default is utf_8 . Encodings supported by Python codecs.decode() can be
	// used here.
	Encoding CloudWatchLogsEncoding

	// Specifies log files that you want to push to CloudWatch Logs. File can point to
	// a specific file or multiple files (by using wild card characters such as
	// /var/log/system.log* ). Only the latest file is pushed to CloudWatch Logs, based
	// on file modification time. We recommend that you use wild card characters to
	// specify a series of files of the same type, such as access_log.2014-06-01-01 ,
	// access_log.2014-06-01-02 , and so on by using a pattern like access_log.* .
	// Don't use a wildcard to match multiple file types, such as access_log_80 and
	// access_log_443 . To specify multiple, different file types, add another log
	// stream entry to the configuration file, so that each log file type is stored in
	// a different log group. Zipped files are not supported.
	File *string

	// Specifies the range of lines for identifying a file. The valid values are one
	// number, or two dash-delimited numbers, such as '1', '2-5'. The default value is
	// '1', meaning the first line is used to calculate the fingerprint. Fingerprint
	// lines are not sent to CloudWatch Logs unless all specified lines are available.
	FileFingerprintLines *string

	// Specifies where to start to read data (start_of_file or end_of_file). The
	// default is start_of_file. This setting is only used if there is no state
	// persisted for that log stream.
	InitialPosition CloudWatchLogsInitialPosition

	// Specifies the destination log group. A log group is created automatically if it
	// doesn't already exist. Log group names can be between 1 and 512 characters long.
	// Allowed characters include a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/'
	// (forward slash), and '.' (period).
	LogGroupName *string

	// Specifies the pattern for identifying the start of a log message.
	MultiLineStartPattern *string

	// Specifies the time zone of log event time stamps.
	TimeZone CloudWatchLogsTimeZone

	noSmithyDocumentSerde
}

// Describes a command.
type Command struct {

	// Date and time when the command was acknowledged.
	AcknowledgedAt *string

	// The command ID.
	CommandId *string

	// Date when the command completed.
	CompletedAt *string

	// Date and time when the command was run.
	CreatedAt *string

	// The command deployment ID.
	DeploymentId *string

	// The command exit code.
	ExitCode *int32

	// The ID of the instance where the command was executed.
	InstanceId *string

	// The URL of the command log.
	LogUrl *string

	// The command status:
	//   - failed
	//   - successful
	//   - skipped
	//   - pending
	Status *string

	// The command type:
	//   - configure
	//   - deploy
	//   - execute_recipes
	//   - install_dependencies
	//   - restart
	//   - rollback
	//   - setup
	//   - start
	//   - stop
	//   - undeploy
	//   - update_custom_cookbooks
	//   - update_dependencies
	Type *string

	noSmithyDocumentSerde
}

// Describes an app's data source.
type DataSource struct {

	// The data source's ARN.
	Arn *string

	// The database name.
	DatabaseName *string

	// The data source's type, AutoSelectOpsworksMysqlInstance , OpsworksMysqlInstance
	// , RdsDbInstance , or None .
	Type *string

	noSmithyDocumentSerde
}

// Describes a deployment of a stack or app.
type Deployment struct {

	// The app ID.
	AppId *string

	// Used to specify a stack or deployment command.
	Command *DeploymentCommand

	// A user-defined comment.
	Comment *string

	// Date when the deployment completed.
	CompletedAt *string

	// Date when the deployment was created.
	CreatedAt *string

	// A string that contains user-defined custom JSON. It can be used to override the
	// corresponding default stack configuration attribute values for stack or to pass
	// data to recipes. The string should be in the following format: "{\"key1\":
	// \"value1\", \"key2\": \"value2\",...}" For more information on custom JSON, see
	// Use Custom JSON to Modify the Stack Configuration Attributes (https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html)
	// .
	CustomJson *string

	// The deployment ID.
	DeploymentId *string

	// The deployment duration.
	Duration *int32

	// The user's IAM ARN.
	IamUserArn *string

	// The IDs of the target instances.
	InstanceIds []string

	// The stack ID.
	StackId *string

	// The deployment status:
	//   - running
	//   - successful
	//   - failed
	Status *string

	noSmithyDocumentSerde
}

// Used to specify a stack or deployment command.
type DeploymentCommand struct {

	// Specifies the operation. You can specify only one command. For stacks, the
	// following commands are available:
	//   - execute_recipes : Execute one or more recipes. To specify the recipes, set
	//   an Args parameter named recipes to the list of recipes to be executed. For
	//   example, to execute phpapp::appsetup , set Args to
	//   {"recipes":["phpapp::appsetup"]} .
	//   - install_dependencies : Install the stack's dependencies.
	//   - update_custom_cookbooks : Update the stack's custom cookbooks.
	//   - update_dependencies : Update the stack's dependencies.
	// The update_dependencies and install_dependencies commands are supported only
	// for Linux instances. You can run the commands successfully on Windows instances,
	// but they do nothing. For apps, the following commands are available:
	//   - deploy : Deploy an app. Ruby on Rails apps have an optional Args parameter
	//   named migrate . Set Args to {"migrate":["true"]} to migrate the database. The
	//   default setting is {"migrate":["false"]}.
	//   - rollback Roll the app back to the previous version. When you update an app,
	//   AWS OpsWorks Stacks stores the previous version, up to a maximum of five
	//   versions. You can use this command to roll an app back as many as four versions.
	//
	//   - start : Start the app's web or application server.
	//   - stop : Stop the app's web or application server.
	//   - restart : Restart the app's web or application server.
	//   - undeploy : Undeploy the app.
	//
	// This member is required.
	Name DeploymentCommandName

	// The arguments of those commands that take arguments. It should be set to a JSON
	// object with the following format: {"arg_name1" : ["value1", "value2", ...],
	// "arg_name2" : ["value1", "value2", ...], ...} The update_dependencies command
	// takes two arguments:
	//   - upgrade_os_to - Specifies the desired Amazon Linux version for instances
	//   whose OS you want to upgrade, such as Amazon Linux 2016.09 . You must also set
	//   the allow_reboot argument to true.
	//   - allow_reboot - Specifies whether to allow AWS OpsWorks Stacks to reboot the
	//   instances if necessary, after installing the updates. This argument can be set
	//   to either true or false . The default value is false .
	// For example, to upgrade an instance to Amazon Linux 2016.09, set Args to the
	// following. { "upgrade_os_to":["Amazon Linux 2016.09"], "allow_reboot":["true"]
	// }
	Args map[string][]string

	noSmithyDocumentSerde
}

// Describes an Amazon EBS volume. This data type maps directly to the Amazon EC2
// EbsBlockDevice (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)
// data type.
type EbsBlockDevice struct {

	// Whether the volume is deleted on instance termination.
	DeleteOnTermination *bool

	// The number of I/O operations per second (IOPS) that the volume supports. For
	// more information, see EbsBlockDevice (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)
	// .
	Iops *int32

	// The snapshot ID.
	SnapshotId *string

	// The volume size, in GiB. For more information, see EbsBlockDevice (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)
	// .
	VolumeSize *int32

	// The volume type. gp2 for General Purpose (SSD) volumes, io1 for Provisioned
	// IOPS (SSD) volumes, st1 for Throughput Optimized hard disk drives (HDD), sc1
	// for Cold HDD,and standard for Magnetic volumes. If you specify the io1 volume
	// type, you must also specify a value for the Iops attribute. The maximum ratio
	// of provisioned IOPS to requested volume size (in GiB) is 50:1. AWS uses the
	// default volume size (in GiB) specified in the AMI attributes to set IOPS to 50 x
	// (volume size).
	VolumeType VolumeType

	noSmithyDocumentSerde
}

// Describes a registered Amazon ECS cluster.
type EcsCluster struct {

	// The cluster's ARN.
	EcsClusterArn *string

	// The cluster name.
	EcsClusterName *string

	// The time and date that the cluster was registered with the stack.
	RegisteredAt *string

	// The stack ID.
	StackId *string

	noSmithyDocumentSerde
}

// Describes an Elastic IP address.
type ElasticIp struct {

	// The domain.
	Domain *string

	// The ID of the instance that the address is attached to.
	InstanceId *string

	// The IP address.
	Ip *string

	// The name.
	Name *string

	// The AWS region. For more information, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html)
	// .
	Region *string

	noSmithyDocumentSerde
}

// Describes an Elastic Load Balancing instance.
type ElasticLoadBalancer struct {

	// A list of Availability Zones.
	AvailabilityZones []string

	// The instance's public DNS name.
	DnsName *string

	// A list of the EC2 instances that the Elastic Load Balancing instance is
	// managing traffic for.
	Ec2InstanceIds []string

	// The Elastic Load Balancing instance's name.
	ElasticLoadBalancerName *string

	// The ID of the layer that the instance is attached to.
	LayerId *string

	// The instance's AWS region.
	Region *string

	// The ID of the stack that the instance is associated with.
	StackId *string

	// A list of subnet IDs, if the stack is running in a VPC.
	SubnetIds []string

	// The VPC ID.
	VpcId *string

	noSmithyDocumentSerde
}

// Represents an app's environment variable.
type EnvironmentVariable struct {

	// (Required) The environment variable's name, which can consist of up to 64
	// characters and must be specified. The name can contain upper- and lowercase
	// letters, numbers, and underscores (_), but it must start with a letter or
	// underscore.
	//
	// This member is required.
	Key *string

	// (Optional) The environment variable's value, which can be left empty. If you
	// specify a value, it can contain up to 256 characters, which must all be
	// printable.
	//
	// This member is required.
	Value *string

	// (Optional) Whether the variable's value will be returned by the DescribeApps
	// action. To conceal an environment variable's value, set Secure to true .
	// DescribeApps then returns *****FILTERED***** instead of the actual value. The
	// default value for Secure is false .
	Secure *bool

	noSmithyDocumentSerde
}

// Describes an instance.
type Instance struct {

	// The agent version. This parameter is set to INHERIT if the instance inherits
	// the default stack setting or to a a version number for a fixed agent version.
	AgentVersion *string

	// A custom AMI ID to be used to create the instance. For more information, see
	// Instances (https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html)
	AmiId *string

	// The instance architecture: "i386" or "x86_64".
	Architecture Architecture

	// The instance's Amazon Resource Number (ARN).
	Arn *string

	// For load-based or time-based instances, the type.
	AutoScalingType AutoScalingType

	// The instance Availability Zone. For more information, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html)
	// .
	AvailabilityZone *string

	// An array of BlockDeviceMapping objects that specify the instance's block device
	// mappings.
	BlockDeviceMappings []BlockDeviceMapping

	// The time that the instance was created.
	CreatedAt *string

	// Whether this is an Amazon EBS-optimized instance.
	EbsOptimized *bool

	// The ID of the associated Amazon EC2 instance.
	Ec2InstanceId *string

	// For container instances, the Amazon ECS cluster's ARN.
	EcsClusterArn *string

	// For container instances, the instance's ARN.
	EcsContainerInstanceArn *string

	// The instance Elastic IP address  (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
	// .
	ElasticIp *string

	// The instance host name.
	Hostname *string

	// For registered instances, the infrastructure class: ec2 or on-premises .
	InfrastructureClass *string

	// Whether to install operating system and package updates when the instance
	// boots. The default value is true . If this value is set to false , you must then
	// update your instances manually by using CreateDeployment to run the
	// update_dependencies stack command or by manually running yum (Amazon Linux) or
	// apt-get (Ubuntu) on the instances. We strongly recommend using the default value
	// of true , to ensure that your instances have the latest security updates.
	InstallUpdatesOnBoot *bool

	// The instance ID.
	InstanceId *string

	// The ARN of the instance's IAM profile. For more information about IAM ARNs, see
	// Using Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
	// .
	InstanceProfileArn *string

	// The instance type, such as t2.micro .
	InstanceType *string

	// The ID of the last service error. For more information, call
	// DescribeServiceErrors .
	LastServiceErrorId *string

	// An array containing the instance layer IDs.
	LayerIds []string

	// The instance's operating system.
	Os *string

	// The instance's platform.
	Platform *string

	// The instance's private DNS name.
	PrivateDns *string

	// The instance's private IP address.
	PrivateIp *string

	// The instance public DNS name.
	PublicDns *string

	// The instance public IP address.
	PublicIp *string

	// For registered instances, who performed the registration.
	RegisteredBy *string

	// The instance's reported AWS OpsWorks Stacks agent version.
	ReportedAgentVersion *string

	// For registered instances, the reported operating system.
	ReportedOs *ReportedOs

	// The instance's root device type. For more information, see Storage for the Root
	// Device (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)
	// .
	RootDeviceType RootDeviceType

	// The root device volume ID.
	RootDeviceVolumeId *string

	// An array containing the instance security group IDs.
	SecurityGroupIds []string

	// The SSH key's Deep Security Agent (DSA) fingerprint.
	SshHostDsaKeyFingerprint *string

	// The SSH key's RSA fingerprint.
	SshHostRsaKeyFingerprint *string

	// The instance's Amazon EC2 key-pair name.
	SshKeyName *string

	// The stack ID.
	StackId *string

	// The instance status:
	//   - booting
	//   - connection_lost
	//   - online
	//   - pending
	//   - rebooting
	//   - requested
	//   - running_setup
	//   - setup_failed
	//   - shutting_down
	//   - start_failed
	//   - stop_failed
	//   - stopped
	//   - stopping
	//   - terminated
	//   - terminating
	Status *string

	// The instance's subnet ID; applicable only if the stack is running in a VPC.
	SubnetId *string

	// The instance's tenancy option, such as dedicated or host .
	Tenancy *string

	// The instance's virtualization type: paravirtual or hvm .
	VirtualizationType VirtualizationType

	noSmithyDocumentSerde
}

// Contains a description of an Amazon EC2 instance from the Amazon EC2 metadata
// service. For more information, see Instance Metadata and User Data (https://docs.aws.amazon.com/sdkfornet/latest/apidocs/Index.html)
// .
type InstanceIdentity struct {

	// A JSON document that contains the metadata.
	Document *string

	// A signature that can be used to verify the document's accuracy and authenticity.
	Signature *string

	noSmithyDocumentSerde
}

// Describes how many instances a stack has for each status.
type InstancesCount struct {

	// The number of instances in the Assigning state.
	Assigning *int32

	// The number of instances with booting status.
	Booting *int32

	// The number of instances with connection_lost status.
	ConnectionLost *int32

	// The number of instances in the Deregistering state.
	Deregistering *int32

	// The number of instances with online status.
	Online *int32

	// The number of instances with pending status.
	Pending *int32

	// The number of instances with rebooting status.
	Rebooting *int32

	// The number of instances in the Registered state.
	Registered *int32

	// The number of instances in the Registering state.
	Registering *int32

	// The number of instances with requested status.
	Requested *int32

	// The number of instances with running_setup status.
	RunningSetup *int32

	// The number of instances with setup_failed status.
	SetupFailed *int32

	// The number of instances with shutting_down status.
	ShuttingDown *int32

	// The number of instances with start_failed status.
	StartFailed *int32

	// The number of instances with stop_failed status.
	StopFailed *int32

	// The number of instances with stopped status.
	Stopped *int32

	// The number of instances with stopping status.
	Stopping *int32

	// The number of instances with terminated status.
	Terminated *int32

	// The number of instances with terminating status.
	Terminating *int32

	// The number of instances in the Unassigning state.
	Unassigning *int32

	noSmithyDocumentSerde
}

// Describes a layer.
type Layer struct {

	// The Amazon Resource Number (ARN) of a layer.
	Arn *string

	// The layer attributes. For the HaproxyStatsPassword , MysqlRootPassword , and
	// GangliaPassword attributes, AWS OpsWorks Stacks returns *****FILTERED*****
	// instead of the actual value For an ECS Cluster layer, AWS OpsWorks Stacks the
	// EcsClusterArn attribute is set to the cluster's ARN.
	Attributes map[string]string

	// Whether to automatically assign an Elastic IP address (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
	// to the layer's instances. For more information, see How to Edit a Layer (https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)
	// .
	AutoAssignElasticIps *bool

	// For stacks that are running in a VPC, whether to automatically assign a public
	// IP address to the layer's instances. For more information, see How to Edit a
	// Layer (https://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html)
	// .
	AutoAssignPublicIps *bool

	// The Amazon CloudWatch Logs configuration settings for the layer.
	CloudWatchLogsConfiguration *CloudWatchLogsConfiguration

	// Date when the layer was created.
	CreatedAt *string

	// The ARN of the default IAM profile to be used for the layer's EC2 instances.
	// For more information about IAM ARNs, see Using Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
	// .
	CustomInstanceProfileArn *string

	// A JSON formatted string containing the layer's custom stack configuration and
	// deployment attributes.
	CustomJson *string

	// A LayerCustomRecipes object that specifies the layer's custom recipes.
	CustomRecipes *Recipes

	// An array containing the layer's custom security group IDs.
	CustomSecurityGroupIds []string

	// AWS OpsWorks Stacks supports five lifecycle events: setup, configuration,
	// deploy, undeploy, and shutdown. For each layer, AWS OpsWorks Stacks runs a set
	// of standard recipes for each event. You can also provide custom recipes for any
	// or all layers and events. AWS OpsWorks Stacks runs custom event recipes after
	// the standard recipes. LayerCustomRecipes specifies the custom recipes for a
	// particular layer to be run in response to each of the five events. To specify a
	// recipe, use the cookbook's directory name in the repository followed by two
	// colons and the recipe name, which is the recipe's file name without the .rb
	// extension. For example: phpapp2::dbsetup specifies the dbsetup.rb recipe in the
	// repository's phpapp2 folder.
	DefaultRecipes *Recipes

	// An array containing the layer's security group names.
	DefaultSecurityGroupNames []string

	// Whether auto healing is disabled for the layer.
	EnableAutoHealing *bool

	// Whether to install operating system and package updates when the instance
	// boots. The default value is true . If this value is set to false , you must then
	// update your instances manually by using CreateDeployment to run the
	// update_dependencies stack command or manually running yum (Amazon Linux) or
	// apt-get (Ubuntu) on the instances. We strongly recommend using the default value
	// of true , to ensure that your instances have the latest security updates.
	InstallUpdatesOnBoot *bool

	// The layer ID.
	LayerId *string

	// A LifeCycleEventConfiguration object that specifies the Shutdown event
	// configuration.
	LifecycleEventConfiguration *LifecycleEventConfiguration

	// The layer name.
	Name *string

	// An array of Package objects that describe the layer's packages.
	Packages []string

	// The layer short name.
	Shortname *string

	// The layer stack ID.
	StackId *string

	// The layer type.
	Type LayerType

	// Whether the layer uses Amazon EBS-optimized instances.
	UseEbsOptimizedInstances *bool

	// A VolumeConfigurations object that describes the layer's Amazon EBS volumes.
	VolumeConfigurations []VolumeConfiguration

	noSmithyDocumentSerde
}

// Specifies the lifecycle event configuration
type LifecycleEventConfiguration struct {

	// A ShutdownEventConfiguration object that specifies the Shutdown event
	// configuration.
	Shutdown *ShutdownEventConfiguration

	noSmithyDocumentSerde
}

// Describes a layer's load-based auto scaling configuration.
type LoadBasedAutoScalingConfiguration struct {

	// An AutoScalingThresholds object that describes the downscaling configuration,
	// which defines how and when AWS OpsWorks Stacks reduces the number of instances.
	DownScaling *AutoScalingThresholds

	// Whether load-based auto scaling is enabled for the layer.
	Enable *bool

	// The layer ID.
	LayerId *string

	// An AutoScalingThresholds object that describes the upscaling configuration,
	// which defines how and when AWS OpsWorks Stacks increases the number of
	// instances.
	UpScaling *AutoScalingThresholds

	noSmithyDocumentSerde
}

// Describes supported operating systems in AWS OpsWorks Stacks.
type OperatingSystem struct {

	// Supported configuration manager name and versions for an AWS OpsWorks Stacks
	// operating system.
	ConfigurationManagers []OperatingSystemConfigurationManager

	// The ID of a supported operating system, such as Amazon Linux 2018.03 .
	Id *string

	// The name of the operating system, such as Amazon Linux 2018.03 .
	Name *string

	// A short name for the operating system manufacturer.
	ReportedName *string

	// The version of the operating system, including the release and edition, if
	// applicable.
	ReportedVersion *string

	// Indicates that an operating system is not supported for new instances.
	Supported *bool

	// The type of a supported operating system, either Linux or Windows .
	Type *string

	noSmithyDocumentSerde
}

// A block that contains information about the configuration manager (Chef) and
// the versions of the configuration manager that are supported for an operating
// system.
type OperatingSystemConfigurationManager struct {

	// The name of the configuration manager, which is Chef.
	Name *string

	// The versions of the configuration manager that are supported by an operating
	// system.
	Version *string

	noSmithyDocumentSerde
}

// Describes stack or user permissions.
type Permission struct {

	// Whether the user can use SSH.
	AllowSsh *bool

	// Whether the user can use sudo.
	AllowSudo *bool

	// The Amazon Resource Name (ARN) for an AWS Identity and Access Management (IAM)
	// role. For more information about IAM ARNs, see Using Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
	// .
	IamUserArn *string

	// The user's permission level, which must be the following:
	//   - deny
	//   - show
	//   - deploy
	//   - manage
	//   - iam_only
	// For more information on the permissions associated with these levels, see
	// Managing User Permissions (https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html)
	Level *string

	// A stack ID.
	StackId *string

	noSmithyDocumentSerde
}

// Describes an instance's RAID array.
type RaidArray struct {

	// The array's Availability Zone. For more information, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html)
	// .
	AvailabilityZone *string

	// When the RAID array was created.
	CreatedAt *string

	// The array's Linux device. For example /dev/mdadm0.
	Device *string

	// The instance ID.
	InstanceId *string

	// For PIOPS volumes, the IOPS per disk.
	Iops *int32

	// The array's mount point.
	MountPoint *string

	// The array name.
	Name *string

	// The number of disks in the array.
	NumberOfDisks *int32

	// The array ID.
	RaidArrayId *string

	// The RAID level (http://en.wikipedia.org/wiki/Standard_RAID_levels) .
	RaidLevel *int32

	// The array's size.
	Size *int32

	// The stack ID.
	StackId *string

	// The volume type, standard or PIOPS.
	VolumeType *string

	noSmithyDocumentSerde
}

// Describes an Amazon RDS instance.
type RdsDbInstance struct {

	// The instance's address.
	Address *string

	// The DB instance identifier.
	DbInstanceIdentifier *string

	// AWS OpsWorks Stacks returns *****FILTERED***** instead of the actual value.
	DbPassword *string

	// The master user name.
	DbUser *string

	// The instance's database engine.
	Engine *string

	// Set to true if AWS OpsWorks Stacks is unable to discover the Amazon RDS
	// instance. AWS OpsWorks Stacks attempts to discover the instance only once. If
	// this value is set to true , you must deregister the instance, and then register
	// it again.
	MissingOnRds *bool

	// The instance's ARN.
	RdsDbInstanceArn *string

	// The instance's AWS region.
	Region *string

	// The ID of the stack with which the instance is registered.
	StackId *string

	noSmithyDocumentSerde
}

// AWS OpsWorks Stacks supports five lifecycle events: setup, configuration,
// deploy, undeploy, and shutdown. For each layer, AWS OpsWorks Stacks runs a set
// of standard recipes for each event. In addition, you can provide custom recipes
// for any or all layers and events. AWS OpsWorks Stacks runs custom event recipes
// after the standard recipes. LayerCustomRecipes specifies the custom recipes for
// a particular layer to be run in response to each of the five events. To specify
// a recipe, use the cookbook's directory name in the repository followed by two
// colons and the recipe name, which is the recipe's file name without the .rb
// extension. For example: phpapp2::dbsetup specifies the dbsetup.rb recipe in the
// repository's phpapp2 folder.
type Recipes struct {

	// An array of custom recipe names to be run following a configure event.
	Configure []string

	// An array of custom recipe names to be run following a deploy event.
	Deploy []string

	// An array of custom recipe names to be run following a setup event.
	Setup []string

	// An array of custom recipe names to be run following a shutdown event.
	Shutdown []string

	// An array of custom recipe names to be run following a undeploy event.
	Undeploy []string

	noSmithyDocumentSerde
}

// A registered instance's reported operating system.
type ReportedOs struct {

	// The operating system family.
	Family *string

	// The operating system name.
	Name *string

	// The operating system version.
	Version *string

	noSmithyDocumentSerde
}

// Describes a user's SSH information.
type SelfUserProfile struct {

	// The user's IAM ARN.
	IamUserArn *string

	// The user's name.
	Name *string

	// The user's SSH public key.
	SshPublicKey *string

	// The user's SSH user name.
	SshUsername *string

	noSmithyDocumentSerde
}

// Describes an AWS OpsWorks Stacks service error.
type ServiceError struct {

	// When the error occurred.
	CreatedAt *string

	// The instance ID.
	InstanceId *string

	// A message that describes the error.
	Message *string

	// The error ID.
	ServiceErrorId *string

	// The stack ID.
	StackId *string

	// The error type.
	Type *string

	noSmithyDocumentSerde
}

// The Shutdown event configuration.
type ShutdownEventConfiguration struct {

	// Whether to enable Elastic Load Balancing connection draining. For more
	// information, see Connection Draining (https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#conn-drain)
	DelayUntilElbConnectionsDrained *bool

	// The time, in seconds, that AWS OpsWorks Stacks will wait after triggering a
	// Shutdown event before shutting down an instance.
	ExecutionTimeout *int32

	noSmithyDocumentSerde
}

// Contains the information required to retrieve an app or cookbook from a
// repository. For more information, see Creating Apps (https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html)
// or Custom Recipes and Cookbooks (https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html)
// .
type Source struct {

	// When included in a request, the parameter depends on the repository type.
	//   - For Amazon S3 bundles, set Password to the appropriate IAM secret access
	//   key.
	//   - For HTTP bundles and Subversion repositories, set Password to the password.
	// For more information on how to safely handle IAM credentials, see
	// https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html (https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)
	// . In responses, AWS OpsWorks Stacks returns *****FILTERED***** instead of the
	// actual value.
	Password *string

	// The application's version. AWS OpsWorks Stacks enables you to easily deploy new
	// versions of an application. One of the simplest approaches is to have branches
	// or revisions in your repository that represent different versions that can
	// potentially be deployed.
	Revision *string

	// In requests, the repository's SSH key. In responses, AWS OpsWorks Stacks
	// returns *****FILTERED***** instead of the actual value.
	SshKey *string

	// The repository type.
	Type SourceType

	// The source URL. The following is an example of an Amazon S3 source URL:
	// https://s3.amazonaws.com/opsworks-demo-bucket/opsworks_cookbook_demo.tar.gz .
	Url *string

	// This parameter depends on the repository type.
	//   - For Amazon S3 bundles, set Username to the appropriate IAM access key ID.
	//   - For HTTP bundles, Git repositories, and Subversion repositories, set
	//   Username to the user name.
	Username *string

	noSmithyDocumentSerde
}

// Describes an app's SSL configuration.
type SslConfiguration struct {

	// The contents of the certificate's domain.crt file.
	//
	// This member is required.
	Certificate *string

	// The private key; the contents of the certificate's domain.kex file.
	//
	// This member is required.
	PrivateKey *string

	// Optional. Can be used to specify an intermediate certificate authority key or
	// client authentication.
	Chain *string

	noSmithyDocumentSerde
}

// Describes a stack.
type Stack struct {

	// The agent version. This parameter is set to LATEST for auto-update. or a
	// version number for a fixed agent version.
	AgentVersion *string

	// The stack's ARN.
	Arn *string

	// The stack's attributes.
	Attributes map[string]string

	// A ChefConfiguration object that specifies whether to enable Berkshelf and the
	// Berkshelf version. For more information, see Create a New Stack (https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html)
	// .
	ChefConfiguration *ChefConfiguration

	// The configuration manager.
	ConfigurationManager *StackConfigurationManager

	// The date when the stack was created.
	CreatedAt *string

	// Contains the information required to retrieve an app or cookbook from a
	// repository. For more information, see Adding Apps (https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html)
	// or Cookbooks and Recipes (https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html)
	// .
	CustomCookbooksSource *Source

	// A JSON object that contains user-defined attributes to be added to the stack
	// configuration and deployment attributes. You can use custom JSON to override the
	// corresponding default stack configuration attribute values or to pass data to
	// recipes. The string should be in the following format: "{\"key1\": \"value1\",
	// \"key2\": \"value2\",...}" For more information on custom JSON, see Use Custom
	// JSON to Modify the Stack Configuration Attributes (https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html)
	// .
	CustomJson *string

	// The stack's default Availability Zone. For more information, see Regions and
	// Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html) .
	DefaultAvailabilityZone *string

	// The ARN of an IAM profile that is the default profile for all of the stack's
	// EC2 instances. For more information about IAM ARNs, see Using Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html)
	// .
	DefaultInstanceProfileArn *string

	// The stack's default operating system.
	DefaultOs *string

	// The default root device type. This value is used by default for all instances
	// in the stack, but you can override it when you create an instance. For more
	// information, see Storage for the Root Device (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device)
	// .
	DefaultRootDeviceType RootDeviceType

	// A default Amazon EC2 key pair for the stack's instances. You can override this
	// value when you create or update an instance.
	DefaultSshKeyName *string

	// The default subnet ID; applicable only if the stack is running in a VPC.
	DefaultSubnetId *string

	// The stack host name theme, with spaces replaced by underscores.
	HostnameTheme *string

	// The stack name.
	Name *string

	// The stack AWS region, such as "ap-northeast-2". For more information about AWS
	// regions, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html)
	// .
	Region *string

	// The stack AWS Identity and Access Management (IAM) role.
	ServiceRoleArn *string

	// The stack ID.
	StackId *string

	// Whether the stack uses custom cookbooks.
	UseCustomCookbooks *bool

	// Whether the stack automatically associates the AWS OpsWorks Stacks built-in
	// security groups with the stack's layers.
	UseOpsworksSecurityGroups *bool

	// The VPC ID; applicable only if the stack is running in a VPC.
	VpcId *string

	noSmithyDocumentSerde
}

// Describes the configuration manager.
type StackConfigurationManager struct {

	// The name. This parameter must be set to "Chef".
	Name *string

	// The Chef version. This parameter must be set to 12, 11.10, or 11.4 for Linux
	// stacks, and to 12.2 for Windows stacks. The default value for Linux stacks is
	// 11.4.
	Version *string

	noSmithyDocumentSerde
}

// Summarizes the number of layers, instances, and apps in a stack.
type StackSummary struct {

	// The number of apps.
	AppsCount *int32

	// The stack's ARN.
	Arn *string

	// An InstancesCount object with the number of instances in each status.
	InstancesCount *InstancesCount

	// The number of layers.
	LayersCount *int32

	// The stack name.
	Name *string

	// The stack ID.
	StackId *string

	noSmithyDocumentSerde
}

// Contains the data needed by RDP clients such as the Microsoft Remote Desktop
// Connection to log in to the instance.
type TemporaryCredential struct {

	// The instance's AWS OpsWorks Stacks ID.
	InstanceId *string

	// The password.
	Password *string

	// The user name.
	Username *string

	// The length of time (in minutes) that the grant is valid. When the grant
	// expires, at the end of this period, the user will no longer be able to use the
	// credentials to log in. If they are logged in at the time, they will be
	// automatically logged out.
	ValidForInMinutes *int32

	noSmithyDocumentSerde
}

// Describes an instance's time-based auto scaling configuration.
type TimeBasedAutoScalingConfiguration struct {

	// A WeeklyAutoScalingSchedule object with the instance schedule.
	AutoScalingSchedule *WeeklyAutoScalingSchedule

	// The instance ID.
	InstanceId *string

	noSmithyDocumentSerde
}

// Describes a user's SSH information.
type UserProfile struct {

	// Whether users can specify their own SSH public key through the My Settings
	// page. For more information, see Managing User Permissions (https://docs.aws.amazon.com/opsworks/latest/userguide/security-settingsshkey.html)
	// .
	AllowSelfManagement *bool

	// The user's IAM ARN.
	IamUserArn *string

	// The user's name.
	Name *string

	// The user's SSH public key.
	SshPublicKey *string

	// The user's SSH user name.
	SshUsername *string

	noSmithyDocumentSerde
}

// Describes an instance's Amazon EBS volume.
type Volume struct {

	// The volume Availability Zone. For more information, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html)
	// .
	AvailabilityZone *string

	// The device name.
	Device *string

	// The Amazon EC2 volume ID.
	Ec2VolumeId *string

	// Specifies whether an Amazon EBS volume is encrypted. For more information, see
	// Amazon EBS Encryption (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
	// .
	Encrypted *bool

	// The instance ID.
	InstanceId *string

	// For PIOPS volumes, the IOPS per disk.
	Iops *int32

	// The volume mount point. For example, "/mnt/disk1".
	MountPoint *string

	// The volume name.
	Name *string

	// The RAID array ID.
	RaidArrayId *string

	// The AWS region. For more information about AWS regions, see Regions and
	// Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html) .
	Region *string

	// The volume size.
	Size *int32

	// The value returned by DescribeVolumes (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVolumes.html)
	// .
	Status *string

	// The volume ID.
	VolumeId *string

	// The volume type. For more information, see  Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
	// .
	//   - standard - Magnetic. Magnetic volumes must have a minimum size of 1 GiB and
	//   a maximum size of 1024 GiB.
	//   - io1 - Provisioned IOPS (SSD). PIOPS volumes must have a minimum size of 4
	//   GiB and a maximum size of 16384 GiB.
	//   - gp2 - General Purpose (SSD). General purpose volumes must have a minimum
	//   size of 1 GiB and a maximum size of 16384 GiB.
	//   - st1 - Throughput Optimized hard disk drive (HDD). Throughput optimized HDD
	//   volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB.
	//   - sc1 - Cold HDD. Cold HDD volumes must have a minimum size of 500 GiB and a
	//   maximum size of 16384 GiB.
	VolumeType *string

	noSmithyDocumentSerde
}

// Describes an Amazon EBS volume configuration.
type VolumeConfiguration struct {

	// The volume mount point. For example "/dev/sdh".
	//
	// This member is required.
	MountPoint *string

	// The number of disks in the volume.
	//
	// This member is required.
	NumberOfDisks *int32

	// The volume size.
	//
	// This member is required.
	Size *int32

	// Specifies whether an Amazon EBS volume is encrypted. For more information, see
	// Amazon EBS Encryption (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
	// .
	Encrypted *bool

	// For PIOPS volumes, the IOPS per disk.
	Iops *int32

	// The volume RAID level (http://en.wikipedia.org/wiki/Standard_RAID_levels) .
	RaidLevel *int32

	// The volume type. For more information, see  Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
	// .
	//   - standard - Magnetic. Magnetic volumes must have a minimum size of 1 GiB and
	//   a maximum size of 1024 GiB.
	//   - io1 - Provisioned IOPS (SSD). PIOPS volumes must have a minimum size of 4
	//   GiB and a maximum size of 16384 GiB.
	//   - gp2 - General Purpose (SSD). General purpose volumes must have a minimum
	//   size of 1 GiB and a maximum size of 16384 GiB.
	//   - st1 - Throughput Optimized hard disk drive (HDD). Throughput optimized HDD
	//   volumes must have a minimum size of 500 GiB and a maximum size of 16384 GiB.
	//   - sc1 - Cold HDD. Cold HDD volumes must have a minimum size of 500 GiB and a
	//   maximum size of 16384 GiB.
	VolumeType *string

	noSmithyDocumentSerde
}

// Describes a time-based instance's auto scaling schedule. The schedule consists
// of a set of key-value pairs.
//   - The key is the time period (a UTC hour) and must be an integer from 0 - 23.
//   - The value indicates whether the instance should be online or offline for
//     the specified period, and must be set to "on" or "off"
//
// The default setting for all time periods is off, so you use the following
// parameters primarily to specify the online periods. You don't have to explicitly
// specify offline periods unless you want to change an online period to an offline
// period. The following example specifies that the instance should be online for
// four hours, from UTC 1200 - 1600. It will be off for the remainder of the day.
// { "12":"on", "13":"on", "14":"on", "15":"on" }
type WeeklyAutoScalingSchedule struct {

	// The schedule for Friday.
	Friday map[string]string

	// The schedule for Monday.
	Monday map[string]string

	// The schedule for Saturday.
	Saturday map[string]string

	// The schedule for Sunday.
	Sunday map[string]string

	// The schedule for Thursday.
	Thursday map[string]string

	// The schedule for Tuesday.
	Tuesday map[string]string

	// The schedule for Wednesday.
	Wednesday map[string]string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde