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 (1499 lines) | stat: -rw-r--r-- 42,217 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
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

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

// A signal that represents a vehicle device such as the engine, heater, and door
// locks. Data from an actuator reports the state of a certain vehicle device.
// Updating actuator data can change the state of a device. For example, you can
// turn on or off the heater by updating its actuator data.
type Actuator struct {

	// The specified data type of the actuator.
	//
	// This member is required.
	DataType NodeDataType

	// The fully qualified name of the actuator. For example, the fully qualified name
	// of an actuator might be Vehicle.Front.Left.Door.Lock .
	//
	// This member is required.
	FullyQualifiedName *string

	// A list of possible values an actuator can take.
	AllowedValues []string

	// A specified value for the actuator.
	//
	// Deprecated: assignedValue is no longer in use
	AssignedValue *string

	// A comment in addition to the description.
	Comment *string

	// The deprecation message for the node or the branch that was moved or deleted.
	DeprecationMessage *string

	// A brief description of the actuator.
	Description *string

	// The specified possible maximum value of an actuator.
	Max *float64

	// The specified possible minimum value of an actuator.
	Min *float64

	// The fully qualified name of the struct node for the actuator if the data type
	// of the actuator is Struct or StructArray . For example, the struct fully
	// qualified name of an actuator might be Vehicle.Door.LockStruct .
	StructFullyQualifiedName *string

	// The scientific unit for the actuator.
	Unit *string

	noSmithyDocumentSerde
}

// A signal that represents static information about the vehicle, such as engine
// type or manufacturing date.
type Attribute struct {

	// The specified data type of the attribute.
	//
	// This member is required.
	DataType NodeDataType

	// The fully qualified name of the attribute. For example, the fully qualified
	// name of an attribute might be Vehicle.Body.Engine.Type .
	//
	// This member is required.
	FullyQualifiedName *string

	// A list of possible values an attribute can be assigned.
	AllowedValues []string

	// A specified value for the attribute.
	//
	// Deprecated: assignedValue is no longer in use
	AssignedValue *string

	// A comment in addition to the description.
	Comment *string

	// The default value of the attribute.
	DefaultValue *string

	// The deprecation message for the node or the branch that was moved or deleted.
	DeprecationMessage *string

	// A brief description of the attribute.
	Description *string

	// The specified possible maximum value of the attribute.
	Max *float64

	// The specified possible minimum value of the attribute.
	Min *float64

	// The scientific unit for the attribute.
	Unit *string

	noSmithyDocumentSerde
}

// A group of signals that are defined in a hierarchical structure.
type Branch struct {

	// The fully qualified name of the branch. For example, the fully qualified name
	// of a branch might be Vehicle.Body.Engine .
	//
	// This member is required.
	FullyQualifiedName *string

	// A comment in addition to the description.
	Comment *string

	// The deprecation message for the node or the branch that was moved or deleted.
	DeprecationMessage *string

	// A brief description of the branch.
	Description *string

	noSmithyDocumentSerde
}

// Information about a campaign. You can use the API operation to return this
// information about multiple created campaigns.
type CampaignSummary struct {

	// The time the campaign was created.
	//
	// This member is required.
	CreationTime *time.Time

	// The last time the campaign was modified.
	//
	// This member is required.
	LastModificationTime *time.Time

	// The Amazon Resource Name (ARN) of a campaign.
	Arn *string

	// The description of the campaign.
	Description *string

	// The name of a campaign.
	Name *string

	// The ARN of the signal catalog associated with the campaign.
	SignalCatalogArn *string

	// The state of a campaign. The status can be one of the following:
	//   - CREATING - Amazon Web Services IoT FleetWise is processing your request to
	//   create the campaign.
	//   - WAITING_FOR_APPROVAL - After a campaign is created, it enters the
	//   WAITING_FOR_APPROVAL state. To allow Amazon Web Services IoT FleetWise to
	//   deploy the campaign to the target vehicle or fleet, use the API operation to
	//   approve the campaign.
	//   - RUNNING - The campaign is active.
	//   - SUSPENDED - The campaign is suspended. To resume the campaign, use the API
	//   operation.
	Status CampaignStatus

	// The ARN of a vehicle or fleet to which the campaign is deployed.
	TargetArn *string

	noSmithyDocumentSerde
}

// Configurations used to create a decoder manifest.
type CanDbcDefinition struct {

	// A list of DBC files. You can upload only one DBC file for each network
	// interface and specify up to five (inclusive) files in the list. The DBC file can
	// be a maximum size of 200 MB.
	//
	// This member is required.
	CanDbcFiles [][]byte

	// Contains information about a network interface.
	//
	// This member is required.
	NetworkInterface *string

	// Pairs every signal specified in your vehicle model with a signal decoder.
	SignalsMap map[string]string

	noSmithyDocumentSerde
}

// A single controller area network (CAN) device interface.
type CanInterface struct {

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

	// The name of the communication protocol for the interface.
	ProtocolName *string

	// The version of the communication protocol for the interface.
	ProtocolVersion *string

	noSmithyDocumentSerde
}

// Information about a single controller area network (CAN) signal and the
// messages it receives and transmits.
type CanSignal struct {

	// A multiplier used to decode the CAN message.
	//
	// This member is required.
	Factor *float64

	// Whether the byte ordering of a CAN message is big-endian.
	//
	// This member is required.
	IsBigEndian bool

	// Whether the message data is specified as a signed value.
	//
	// This member is required.
	IsSigned bool

	// How many bytes of data are in the message.
	//
	// This member is required.
	Length int32

	// The ID of the message.
	//
	// This member is required.
	MessageId int32

	// The offset used to calculate the signal value. Combined with factor, the
	// calculation is value = raw_value * factor + offset .
	//
	// This member is required.
	Offset *float64

	// Indicates the beginning of the CAN signal. This should always be the least
	// significant bit (LSB). This value might be different from the value in a DBC
	// file. For little endian signals, startBit is the same value as in the DBC file.
	// For big endian signals in a DBC file, the start bit is the most significant bit
	// (MSB). You will have to calculate the LSB instead and pass it as the startBit .
	//
	// This member is required.
	StartBit int32

	// The name of the signal.
	Name *string

	noSmithyDocumentSerde
}

// The log delivery option to send data to Amazon CloudWatch Logs.
type CloudWatchLogDeliveryOptions struct {

	// The type of log to send data to Amazon CloudWatch Logs.
	//
	// This member is required.
	LogType LogType

	// The Amazon CloudWatch Logs group the operation sends data to.
	LogGroupName *string

	noSmithyDocumentSerde
}

// Specifies what data to collect and how often or when to collect it.
//
// The following types satisfy this interface:
//
//	CollectionSchemeMemberConditionBasedCollectionScheme
//	CollectionSchemeMemberTimeBasedCollectionScheme
type CollectionScheme interface {
	isCollectionScheme()
}

// Information about a collection scheme that uses a simple logical expression to
// recognize what data to collect.
type CollectionSchemeMemberConditionBasedCollectionScheme struct {
	Value ConditionBasedCollectionScheme

	noSmithyDocumentSerde
}

func (*CollectionSchemeMemberConditionBasedCollectionScheme) isCollectionScheme() {}

// Information about a collection scheme that uses a time period to decide how
// often to collect data.
type CollectionSchemeMemberTimeBasedCollectionScheme struct {
	Value TimeBasedCollectionScheme

	noSmithyDocumentSerde
}

func (*CollectionSchemeMemberTimeBasedCollectionScheme) isCollectionScheme() {}

// Information about a collection scheme that uses a simple logical expression to
// recognize what data to collect.
type ConditionBasedCollectionScheme struct {

	// The logical expression used to recognize what data to collect. For example,
	// $variable.Vehicle.OutsideAirTemperature >= 105.0 .
	//
	// This member is required.
	Expression *string

	// Specifies the version of the conditional expression language.
	ConditionLanguageVersion *int32

	// The minimum duration of time between two triggering events to collect data, in
	// milliseconds. If a signal changes often, you might want to collect data at a
	// slower rate.
	MinimumTriggerIntervalMs *int64

	// Whether to collect data for all triggering events ( ALWAYS ). Specify (
	// RISING_EDGE ), or specify only when the condition first evaluates to false. For
	// example, triggering on "AirbagDeployed"; Users aren't interested on triggering
	// when the airbag is already exploded; they only care about the change from not
	// deployed => deployed.
	TriggerMode TriggerMode

	noSmithyDocumentSerde
}

// An HTTP error resulting from creating a vehicle.
type CreateVehicleError struct {

	// An HTTP error code.
	Code *string

	// A description of the HTTP error.
	Message *string

	// The ID of the vehicle with the error.
	VehicleName *string

	noSmithyDocumentSerde
}

// Information about the vehicle to create.
type CreateVehicleRequestItem struct {

	// The Amazon Resource Name (ARN) of a decoder manifest associated with the
	// vehicle to create.
	//
	// This member is required.
	DecoderManifestArn *string

	// The ARN of the vehicle model (model manifest) to create the vehicle from.
	//
	// This member is required.
	ModelManifestArn *string

	// The unique ID of the vehicle to create.
	//
	// This member is required.
	VehicleName *string

	// An option to create a new Amazon Web Services IoT thing when creating a
	// vehicle, or to validate an existing thing as a vehicle.
	AssociationBehavior VehicleAssociationBehavior

	// Static information about a vehicle in a key-value pair. For example: "engine
	// Type" : "v6"
	Attributes map[string]string

	// Metadata which can be used to manage the vehicle.
	Tags []Tag

	noSmithyDocumentSerde
}

// Information about a created vehicle.
type CreateVehicleResponseItem struct {

	// The ARN of the created vehicle.
	Arn *string

	// The ARN of a created or validated Amazon Web Services IoT thing.
	ThingArn *string

	// The unique ID of the vehicle to create.
	VehicleName *string

	noSmithyDocumentSerde
}

// Represents a member of the complex data structure. The data type of the
// property can be either primitive or another struct .
type CustomProperty struct {

	// The data type for the custom property.
	//
	// This member is required.
	DataType NodeDataType

	// The fully qualified name of the custom property. For example, the fully
	// qualified name of a custom property might be
	// ComplexDataTypes.VehicleDataTypes.SVMCamera.FPS .
	//
	// This member is required.
	FullyQualifiedName *string

	// A comment in addition to the description.
	Comment *string

	// Indicates whether the property is binary data.
	DataEncoding NodeDataEncoding

	// The deprecation message for the node or the branch that was moved or deleted.
	DeprecationMessage *string

	// A brief description of the custom property.
	Description *string

	// The fully qualified name of the struct node for the custom property if the data
	// type of the custom property is Struct or StructArray .
	StructFullyQualifiedName *string

	noSmithyDocumentSerde
}

// The custom structure represents a complex or higher-order data structure.
type CustomStruct struct {

	// The fully qualified name of the custom structure. For example, the fully
	// qualified name of a custom structure might be
	// ComplexDataTypes.VehicleDataTypes.SVMCamera .
	//
	// This member is required.
	FullyQualifiedName *string

	// A comment in addition to the description.
	Comment *string

	// The deprecation message for the node or the branch that was moved or deleted.
	DeprecationMessage *string

	// A brief description of the custom structure.
	Description *string

	noSmithyDocumentSerde
}

// The destination where the Amazon Web Services IoT FleetWise campaign sends
// data. You can send data to be stored in Amazon S3 or Amazon Timestream.
//
// The following types satisfy this interface:
//
//	DataDestinationConfigMemberS3Config
//	DataDestinationConfigMemberTimestreamConfig
type DataDestinationConfig interface {
	isDataDestinationConfig()
}

// The Amazon S3 bucket where the Amazon Web Services IoT FleetWise campaign sends
// data.
type DataDestinationConfigMemberS3Config struct {
	Value S3Config

	noSmithyDocumentSerde
}

func (*DataDestinationConfigMemberS3Config) isDataDestinationConfig() {}

// The Amazon Timestream table where the campaign sends data.
type DataDestinationConfigMemberTimestreamConfig struct {
	Value TimestreamConfig

	noSmithyDocumentSerde
}

func (*DataDestinationConfigMemberTimestreamConfig) isDataDestinationConfig() {}

// Information about a created decoder manifest. You can use the API operation to
// return this information about multiple decoder manifests.
type DecoderManifestSummary struct {

	// The time the decoder manifest was created in seconds since epoch (January 1,
	// 1970 at midnight UTC time).
	//
	// This member is required.
	CreationTime *time.Time

	// The time the decoder manifest was last updated in seconds since epoch (January
	// 1, 1970 at midnight UTC time).
	//
	// This member is required.
	LastModificationTime *time.Time

	// The ARN of a vehicle model (model manifest) associated with the decoder
	// manifest.
	Arn *string

	// A brief description of the decoder manifest.
	Description *string

	// The detailed message for the decoder manifest. When a decoder manifest is in an
	// INVALID status, the message contains detailed reason and help information.
	Message *string

	// The ARN of a vehicle model (model manifest) associated with the decoder
	// manifest.
	ModelManifestArn *string

	// The name of the decoder manifest.
	Name *string

	// The state of the decoder manifest. If the status is ACTIVE , the decoder
	// manifest can't be edited. If the status is marked DRAFT , you can edit the
	// decoder manifest.
	Status ManifestStatus

	noSmithyDocumentSerde
}

// Information about a fleet. You can use the API operation to return this
// information about multiple fleets.
type FleetSummary struct {

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

	// The time the fleet was created, in seconds since epoch (January 1, 1970 at
	// midnight UTC time).
	//
	// This member is required.
	CreationTime *time.Time

	// The unique ID of the fleet.
	//
	// This member is required.
	Id *string

	// The ARN of the signal catalog associated with the fleet.
	//
	// This member is required.
	SignalCatalogArn *string

	// A brief description of the fleet.
	Description *string

	// The time the fleet was last updated in seconds since epoch (January 1, 1970 at
	// midnight UTC time).
	LastModificationTime *time.Time

	noSmithyDocumentSerde
}

// Vehicle Signal Specification (VSS) (https://www.w3.org/auto/wg/wiki/Vehicle_Signal_Specification_(VSS)/Vehicle_Data_Spec)
// is a precise language used to describe and model signals in vehicle networks.
// The JSON file collects signal specificiations in a VSS format.
//
// The following types satisfy this interface:
//
//	FormattedVssMemberVssJson
type FormattedVss interface {
	isFormattedVss()
}

// Provides the VSS in JSON format.
type FormattedVssMemberVssJson struct {
	Value string

	noSmithyDocumentSerde
}

func (*FormattedVssMemberVssJson) isFormattedVss() {}

// Information about registering an Identity and Access Management (IAM) resource
// so Amazon Web Services IoT FleetWise edge agent software can transfer your
// vehicle data to Amazon Timestream.
type IamRegistrationResponse struct {

	// The status of registering your IAM resource. The status can be one of
	// REGISTRATION_SUCCESS , REGISTRATION_PENDING , REGISTRATION_FAILURE .
	//
	// This member is required.
	RegistrationStatus RegistrationStatus

	// The Amazon Resource Name (ARN) of the IAM role to register.
	//
	// This member is required.
	RoleArn *string

	// A message associated with a registration error.
	ErrorMessage *string

	noSmithyDocumentSerde
}

// The IAM resource that enables Amazon Web Services IoT FleetWise edge agent
// software to send data to Amazon Timestream. For more information, see IAM roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
// in the Identity and Access Management User Guide.
type IamResources struct {

	// The Amazon Resource Name (ARN) of the IAM resource that allows Amazon Web
	// Services IoT FleetWise to send data to Amazon Timestream. For example,
	// arn:aws:iam::123456789012:role/SERVICE-ROLE-ARN .
	//
	// This member is required.
	RoleArn *string

	noSmithyDocumentSerde
}

// A reason a vehicle network interface isn't valid.
type InvalidNetworkInterface struct {

	// The ID of the interface that isn't valid.
	InterfaceId *string

	// A message about why the interface isn't valid.
	Reason NetworkInterfaceFailureReason

	noSmithyDocumentSerde
}

// A reason that a signal isn't valid.
type InvalidSignal struct {

	// The name of the signal that isn't valid.
	Name *string

	// A message about why the signal isn't valid.
	Reason *string

	noSmithyDocumentSerde
}

// A reason that a signal decoder isn't valid.
type InvalidSignalDecoder struct {

	// The possible cause for the invalid signal decoder.
	Hint *string

	// The name of a signal decoder that isn't valid.
	Name *string

	// A message about why the signal decoder isn't valid.
	Reason SignalDecoderFailureReason

	noSmithyDocumentSerde
}

// The decoding information for a specific message which support higher order data
// types.
type MessageSignal struct {

	// The structured message for the message signal. It can be defined with either a
	// primitiveMessageDefinition , structuredMessageListDefinition , or
	// structuredMessageDefinition recursively.
	//
	// This member is required.
	StructuredMessage StructuredMessage

	// The topic name for the message signal. It corresponds to topics in ROS 2.
	//
	// This member is required.
	TopicName *string

	noSmithyDocumentSerde
}

// Information about a vehicle model (model manifest). You can use the API
// operation to return this information about multiple vehicle models.
type ModelManifestSummary struct {

	// The time the vehicle model was created, in seconds since epoch (January 1, 1970
	// at midnight UTC time).
	//
	// This member is required.
	CreationTime *time.Time

	// The time the vehicle model was last updated, in seconds since epoch (January 1,
	// 1970 at midnight UTC time).
	//
	// This member is required.
	LastModificationTime *time.Time

	// The Amazon Resource Name (ARN) of the vehicle model.
	Arn *string

	// A brief description of the vehicle model.
	Description *string

	// The name of the vehicle model.
	Name *string

	// The ARN of the signal catalog associated with the vehicle model.
	SignalCatalogArn *string

	// The state of the vehicle model. If the status is ACTIVE , the vehicle model
	// can't be edited. If the status is DRAFT , you can edit the vehicle model.
	Status ManifestStatus

	noSmithyDocumentSerde
}

// Specifications for defining a vehicle network.
//
// The following types satisfy this interface:
//
//	NetworkFileDefinitionMemberCanDbc
type NetworkFileDefinition interface {
	isNetworkFileDefinition()
}

// Information, including CAN DBC files, about the configurations used to create a
// decoder manifest.
type NetworkFileDefinitionMemberCanDbc struct {
	Value CanDbcDefinition

	noSmithyDocumentSerde
}

func (*NetworkFileDefinitionMemberCanDbc) isNetworkFileDefinition() {}

// Represents a node and its specifications in an in-vehicle communication
// network. All signal decoders must be associated with a network node. To return
// this information about all the network interfaces specified in a decoder
// manifest, use the API operation.
type NetworkInterface struct {

	// The ID of the network interface.
	//
	// This member is required.
	InterfaceId *string

	// The network protocol for the vehicle. For example, CAN_SIGNAL specifies a
	// protocol that defines how data is communicated between electronic control units
	// (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data
	// is communicated between ECUs.
	//
	// This member is required.
	Type NetworkInterfaceType

	// Information about a network interface specified by the Controller Area Network
	// (CAN) protocol.
	CanInterface *CanInterface

	// Information about a network interface specified by the On-board diagnostic
	// (OBD) II protocol.
	ObdInterface *ObdInterface

	// The vehicle middleware defined as a type of network interface. Examples of
	// vehicle middleware include ROS2 and SOME/IP .
	VehicleMiddleware *VehicleMiddleware

	noSmithyDocumentSerde
}

// A general abstraction of a signal. A node can be specified as an actuator,
// attribute, branch, or sensor.
//
// The following types satisfy this interface:
//
//	NodeMemberActuator
//	NodeMemberAttribute
//	NodeMemberBranch
//	NodeMemberProperty
//	NodeMemberSensor
//	NodeMemberStruct
type Node interface {
	isNode()
}

// Information about a node specified as an actuator. An actuator is a digital
// representation of a vehicle device.
type NodeMemberActuator struct {
	Value Actuator

	noSmithyDocumentSerde
}

func (*NodeMemberActuator) isNode() {}

// Information about a node specified as an attribute. An attribute represents
// static information about a vehicle.
type NodeMemberAttribute struct {
	Value Attribute

	noSmithyDocumentSerde
}

func (*NodeMemberAttribute) isNode() {}

// Information about a node specified as a branch. A group of signals that are
// defined in a hierarchical structure.
type NodeMemberBranch struct {
	Value Branch

	noSmithyDocumentSerde
}

func (*NodeMemberBranch) isNode() {}

// Represents a member of the complex data structure. The datatype of the property
// can be either primitive or another struct .
type NodeMemberProperty struct {
	Value CustomProperty

	noSmithyDocumentSerde
}

func (*NodeMemberProperty) isNode() {}

// An input component that reports the environmental condition of a vehicle. You
// can collect data about fluid levels, temperatures, vibrations, or battery
// voltage from sensors.
type NodeMemberSensor struct {
	Value Sensor

	noSmithyDocumentSerde
}

func (*NodeMemberSensor) isNode() {}

// Represents a complex or higher-order data structure.
type NodeMemberStruct struct {
	Value CustomStruct

	noSmithyDocumentSerde
}

func (*NodeMemberStruct) isNode() {}

// Information about the number of nodes and node types in a vehicle network.
type NodeCounts struct {

	// The total number of nodes in a vehicle network that represent actuators.
	TotalActuators int32

	// The total number of nodes in a vehicle network that represent attributes.
	TotalAttributes int32

	// The total number of nodes in a vehicle network that represent branches.
	TotalBranches int32

	// The total number of nodes in a vehicle network.
	TotalNodes int32

	// The total properties for the node.
	TotalProperties int32

	// The total number of nodes in a vehicle network that represent sensors.
	TotalSensors int32

	// The total structure for the node.
	TotalStructs int32

	noSmithyDocumentSerde
}

// A network interface that specifies the On-board diagnostic (OBD) II network
// protocol.
type ObdInterface struct {

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

	// The ID of the message requesting vehicle data.
	//
	// This member is required.
	RequestMessageId int32

	// The maximum number message requests per diagnostic trouble code per second.
	DtcRequestIntervalSeconds int32

	// Whether the vehicle has a transmission control module (TCM).
	HasTransmissionEcu bool

	// The standard OBD II PID.
	ObdStandard *string

	// The maximum number message requests per second.
	PidRequestIntervalSeconds int32

	// Whether to use extended IDs in the message.
	UseExtendedIds bool

	noSmithyDocumentSerde
}

// Information about signal messages using the on-board diagnostics (OBD) II
// protocol in a vehicle.
type ObdSignal struct {

	// The length of a message.
	//
	// This member is required.
	ByteLength *int32

	// The offset used to calculate the signal value. Combined with scaling, the
	// calculation is value = raw_value * scaling + offset .
	//
	// This member is required.
	Offset *float64

	// The diagnostic code used to request data from a vehicle for this signal.
	//
	// This member is required.
	Pid int32

	// The length of the requested data.
	//
	// This member is required.
	PidResponseLength *int32

	// A multiplier used to decode the message.
	//
	// This member is required.
	Scaling *float64

	// The mode of operation (diagnostic service) in a message.
	//
	// This member is required.
	ServiceMode int32

	// Indicates the beginning of the message.
	//
	// This member is required.
	StartByte int32

	// The number of bits to mask in a message.
	BitMaskLength *int32

	// The number of positions to shift bits in the message.
	BitRightShift int32

	noSmithyDocumentSerde
}

// Represents a primitive type node of the complex data structure.
//
// The following types satisfy this interface:
//
//	PrimitiveMessageDefinitionMemberRos2PrimitiveMessageDefinition
type PrimitiveMessageDefinition interface {
	isPrimitiveMessageDefinition()
}

// Information about a PrimitiveMessage using a ROS 2 compliant primitive type
// message of the complex data structure.
type PrimitiveMessageDefinitionMemberRos2PrimitiveMessageDefinition struct {
	Value ROS2PrimitiveMessageDefinition

	noSmithyDocumentSerde
}

func (*PrimitiveMessageDefinitionMemberRos2PrimitiveMessageDefinition) isPrimitiveMessageDefinition() {
}

// Represents a ROS 2 compliant primitive type message of the complex data
// structure.
type ROS2PrimitiveMessageDefinition struct {

	// The primitive type (integer, floating point, boolean, etc.) for the ROS 2
	// primitive message definition.
	//
	// This member is required.
	PrimitiveType ROS2PrimitiveType

	// The offset used to calculate the signal value. Combined with scaling, the
	// calculation is value = raw_value * scaling + offset .
	Offset *float64

	// A multiplier used to decode the message.
	Scaling *float64

	// An optional attribute specifying the upper bound for STRING and WSTRING .
	UpperBound *int64

	noSmithyDocumentSerde
}

// The Amazon S3 bucket where the Amazon Web Services IoT FleetWise campaign sends
// data. Amazon S3 is an object storage service that stores data as objects within
// buckets. For more information, see Creating, configuring, and working with
// Amazon S3 buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)
// in the Amazon Simple Storage Service User Guide.
type S3Config struct {

	// The Amazon Resource Name (ARN) of the Amazon S3 bucket.
	//
	// This member is required.
	BucketArn *string

	// Specify the format that files are saved in the Amazon S3 bucket. You can save
	// files in an Apache Parquet or JSON format.
	//   - Parquet - Store data in a columnar storage file format. Parquet is optimal
	//   for fast data retrieval and can reduce costs. This option is selected by
	//   default.
	//   - JSON - Store data in a standard text-based JSON file format.
	DataFormat DataFormat

	// (Optional) Enter an S3 bucket prefix. The prefix is the string of characters
	// after the bucket name and before the object name. You can use the prefix to
	// organize data stored in Amazon S3 buckets. For more information, see Organizing
	// objects using prefixes (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)
	// in the Amazon Simple Storage Service User Guide. By default, Amazon Web Services
	// IoT FleetWise sets the prefix processed-data/year=YY/month=MM/date=DD/hour=HH/
	// (in UTC) to data it delivers to Amazon S3. You can enter a prefix to append it
	// to this default prefix. For example, if you enter the prefix vehicles , the
	// prefix will be vehicles/processed-data/year=YY/month=MM/date=DD/hour=HH/ .
	Prefix *string

	// By default, stored data is compressed as a .gzip file. Compressed files have a
	// reduced file size, which can optimize the cost of data storage.
	StorageCompressionFormat StorageCompressionFormat

	noSmithyDocumentSerde
}

// An input component that reports the environmental condition of a vehicle. You
// can collect data about fluid levels, temperatures, vibrations, or battery
// voltage from sensors.
type Sensor struct {

	// The specified data type of the sensor.
	//
	// This member is required.
	DataType NodeDataType

	// The fully qualified name of the sensor. For example, the fully qualified name
	// of a sensor might be Vehicle.Body.Engine.Battery .
	//
	// This member is required.
	FullyQualifiedName *string

	// A list of possible values a sensor can take.
	AllowedValues []string

	// A comment in addition to the description.
	Comment *string

	// The deprecation message for the node or the branch that was moved or deleted.
	DeprecationMessage *string

	// A brief description of a sensor.
	Description *string

	// The specified possible maximum value of the sensor.
	Max *float64

	// The specified possible minimum value of the sensor.
	Min *float64

	// The fully qualified name of the struct node for a sensor if the data type of
	// the actuator is Struct or StructArray . For example, the struct fully qualified
	// name of a sensor might be Vehicle.ADAS.CameraStruct .
	StructFullyQualifiedName *string

	// The scientific unit of measurement for data collected by the sensor.
	Unit *string

	noSmithyDocumentSerde
}

// Information about a collection of standardized signals, which can be
// attributes, branches, sensors, or actuators.
type SignalCatalogSummary struct {

	// The Amazon Resource Name (ARN) of the signal catalog.
	Arn *string

	// The time the signal catalog was created in seconds since epoch (January 1, 1970
	// at midnight UTC time).
	CreationTime *time.Time

	// The time the signal catalog was last updated in seconds since epoch (January 1,
	// 1970 at midnight UTC time).
	LastModificationTime *time.Time

	// The name of the signal catalog.
	Name *string

	noSmithyDocumentSerde
}

// Information about a signal decoder.
type SignalDecoder struct {

	// The fully qualified name of a signal decoder as defined in a vehicle model.
	//
	// This member is required.
	FullyQualifiedName *string

	// The ID of a network interface that specifies what network protocol a vehicle
	// follows.
	//
	// This member is required.
	InterfaceId *string

	// The network protocol for the vehicle. For example, CAN_SIGNAL specifies a
	// protocol that defines how data is communicated between electronic control units
	// (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data
	// is communicated between ECUs.
	//
	// This member is required.
	Type SignalDecoderType

	// Information about signal decoder using the Controller Area Network (CAN)
	// protocol.
	CanSignal *CanSignal

	// The decoding information for a specific message which supports higher order
	// data types.
	MessageSignal *MessageSignal

	// Information about signal decoder using the On-board diagnostic (OBD) II
	// protocol.
	ObdSignal *ObdSignal

	noSmithyDocumentSerde
}

// Information about a signal.
type SignalInformation struct {

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

	// The maximum number of samples to collect.
	MaxSampleCount *int64

	// The minimum duration of time (in milliseconds) between two triggering events to
	// collect data. If a signal changes often, you might want to collect data at a
	// slower rate.
	MinimumSamplingIntervalMs *int64

	noSmithyDocumentSerde
}

// The structured message for the message signal. It can be defined with either a
// primitiveMessageDefinition , structuredMessageListDefinition , or
// structuredMessageDefinition recursively.
//
// The following types satisfy this interface:
//
//	StructuredMessageMemberPrimitiveMessageDefinition
//	StructuredMessageMemberStructuredMessageDefinition
//	StructuredMessageMemberStructuredMessageListDefinition
type StructuredMessage interface {
	isStructuredMessage()
}

// Represents a primitive type node of the complex data structure.
type StructuredMessageMemberPrimitiveMessageDefinition struct {
	Value PrimitiveMessageDefinition

	noSmithyDocumentSerde
}

func (*StructuredMessageMemberPrimitiveMessageDefinition) isStructuredMessage() {}

// Represents a struct type node of the complex data structure.
type StructuredMessageMemberStructuredMessageDefinition struct {
	Value []StructuredMessageFieldNameAndDataTypePair

	noSmithyDocumentSerde
}

func (*StructuredMessageMemberStructuredMessageDefinition) isStructuredMessage() {}

// Represents a list type node of the complex data structure.
type StructuredMessageMemberStructuredMessageListDefinition struct {
	Value StructuredMessageListDefinition

	noSmithyDocumentSerde
}

func (*StructuredMessageMemberStructuredMessageListDefinition) isStructuredMessage() {}

// Represents a StructureMessageName to DataType map element.
type StructuredMessageFieldNameAndDataTypePair struct {

	// The data type.
	//
	// This member is required.
	DataType StructuredMessage

	// The field name of the structured message. It determines how a data value is
	// referenced in the target language.
	//
	// This member is required.
	FieldName *string

	noSmithyDocumentSerde
}

// Represents a list type node of the complex data structure.
type StructuredMessageListDefinition struct {

	// The type of list of the structured message list definition.
	//
	// This member is required.
	ListType StructuredMessageListType

	// The member type of the structured message list definition.
	//
	// This member is required.
	MemberType StructuredMessage

	// The name of the structured message list definition.
	//
	// This member is required.
	Name *string

	// The capacity of the structured message list definition when the list type is
	// FIXED_CAPACITY or DYNAMIC_BOUNDED_CAPACITY .
	Capacity int32

	noSmithyDocumentSerde
}

// A set of key/value pairs that are used to manage the resource.
type Tag struct {

	// The tag's key.
	//
	// This member is required.
	Key *string

	// The tag's value.
	//
	// This member is required.
	Value *string

	noSmithyDocumentSerde
}

// Information about a collection scheme that uses a time period to decide how
// often to collect data.
type TimeBasedCollectionScheme struct {

	// The time period (in milliseconds) to decide how often to collect data. For
	// example, if the time period is 60000 , the Edge Agent software collects data
	// once every minute.
	//
	// This member is required.
	PeriodMs *int64

	noSmithyDocumentSerde
}

// The Amazon Timestream table where the Amazon Web Services IoT FleetWise
// campaign sends data. Timestream stores and organizes data to optimize query
// processing time and to reduce storage costs. For more information, see Data
// modeling (https://docs.aws.amazon.com/timestream/latest/developerguide/data-modeling.html)
// in the Amazon Timestream Developer Guide.
type TimestreamConfig struct {

	// The Amazon Resource Name (ARN) of the task execution role that grants Amazon
	// Web Services IoT FleetWise permission to deliver data to the Amazon Timestream
	// table.
	//
	// This member is required.
	ExecutionRoleArn *string

	// The Amazon Resource Name (ARN) of the Amazon Timestream table.
	//
	// This member is required.
	TimestreamTableArn *string

	noSmithyDocumentSerde
}

// Information about the registered Amazon Timestream resources or errors, if any.
type TimestreamRegistrationResponse struct {

	// The status of registering your Amazon Timestream resources. The status can be
	// one of REGISTRATION_SUCCESS , REGISTRATION_PENDING , REGISTRATION_FAILURE .
	//
	// This member is required.
	RegistrationStatus RegistrationStatus

	// The name of the Timestream database.
	//
	// This member is required.
	TimestreamDatabaseName *string

	// The name of the Timestream database table.
	//
	// This member is required.
	TimestreamTableName *string

	// A message associated with a registration error.
	ErrorMessage *string

	// The Amazon Resource Name (ARN) of the Timestream database.
	TimestreamDatabaseArn *string

	// The ARN of the Timestream database table.
	TimestreamTableArn *string

	noSmithyDocumentSerde
}

// The registered Amazon Timestream resources that Amazon Web Services IoT
// FleetWise edge agent software can transfer your vehicle data to.
type TimestreamResources struct {

	// The name of the registered Amazon Timestream database.
	//
	// This member is required.
	TimestreamDatabaseName *string

	// The name of the registered Amazon Timestream database table.
	//
	// This member is required.
	TimestreamTableName *string

	noSmithyDocumentSerde
}

// An HTTP error resulting from updating the description for a vehicle.
type UpdateVehicleError struct {

	// The relevant HTTP error code (400+).
	Code int32

	// A message associated with the error.
	Message *string

	// The ID of the vehicle with the error.
	VehicleName *string

	noSmithyDocumentSerde
}

// Information about the vehicle to update.
type UpdateVehicleRequestItem struct {

	// The unique ID of the vehicle to update.
	//
	// This member is required.
	VehicleName *string

	// The method the specified attributes will update the existing attributes on the
	// vehicle. Use Overwite to replace the vehicle attributes with the specified
	// attributes. Or use Merge to combine all attributes. This is required if
	// attributes are present in the input.
	AttributeUpdateMode UpdateMode

	// Static information about a vehicle in a key-value pair. For example:
	// "engineType" : "1.3 L R2"
	Attributes map[string]string

	// The ARN of the signal decoder manifest associated with the vehicle to update.
	DecoderManifestArn *string

	// The ARN of the vehicle model (model manifest) associated with the vehicle to
	// update.
	ModelManifestArn *string

	noSmithyDocumentSerde
}

// Information about the updated vehicle.
type UpdateVehicleResponseItem struct {

	// The Amazon Resource Name (ARN) of the updated vehicle.
	Arn *string

	// The unique ID of the updated vehicle.
	VehicleName *string

	noSmithyDocumentSerde
}

// A validation error due to mismatch between the expected data type, length, or
// pattern of the parameter and the input.
type ValidationExceptionField struct {

	// A message about the validation error.
	//
	// This member is required.
	Message *string

	// The name of the parameter field with the validation error.
	//
	// This member is required.
	Name *string

	noSmithyDocumentSerde
}

// The vehicle middleware defined as a type of network interface. Examples of
// vehicle middleware include ROS2 and SOME/IP .
type VehicleMiddleware struct {

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

	// The protocol name of the vehicle middleware.
	//
	// This member is required.
	ProtocolName VehicleMiddlewareProtocol

	noSmithyDocumentSerde
}

// Information about the state of a vehicle and how it relates to the status of a
// campaign.
type VehicleStatus struct {

	// The name of a campaign.
	CampaignName *string

	// The state of a vehicle, which can be one of the following:
	//   - CREATED - Amazon Web Services IoT FleetWise sucessfully created the vehicle.
	//   - READY - The vehicle is ready to receive a campaign deployment.
	//   - HEALTHY - A campaign deployment was delivered to the vehicle.
	//   - SUSPENDED - A campaign associated with the vehicle was suspended and data
	//   collection was paused.
	//   - DELETING - Amazon Web Services IoT FleetWise is removing a campaign from the
	//   vehicle.
	Status VehicleState

	// The unique ID of the vehicle.
	VehicleName *string

	noSmithyDocumentSerde
}

// Information about a vehicle. To return this information about vehicles in your
// account, you can use the API operation.
type VehicleSummary struct {

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

	// The time the vehicle was created in seconds since epoch (January 1, 1970 at
	// midnight UTC time).
	//
	// This member is required.
	CreationTime *time.Time

	// The ARN of a decoder manifest associated with the vehicle.
	//
	// This member is required.
	DecoderManifestArn *string

	// The time the vehicle was last updated in seconds since epoch (January 1, 1970
	// at midnight UTC time).
	//
	// This member is required.
	LastModificationTime *time.Time

	// The ARN of a vehicle model (model manifest) associated with the vehicle.
	//
	// This member is required.
	ModelManifestArn *string

	// The unique ID of the vehicle.
	//
	// This member is required.
	VehicleName *string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde

// UnknownUnionMember is returned when a union member is returned over the wire,
// but has an unknown tag.
type UnknownUnionMember struct {
	Tag   string
	Value []byte

	noSmithyDocumentSerde
}

func (*UnknownUnionMember) isCollectionScheme()           {}
func (*UnknownUnionMember) isDataDestinationConfig()      {}
func (*UnknownUnionMember) isFormattedVss()               {}
func (*UnknownUnionMember) isNetworkFileDefinition()      {}
func (*UnknownUnionMember) isNode()                       {}
func (*UnknownUnionMember) isPrimitiveMessageDefinition() {}
func (*UnknownUnionMember) isStructuredMessage()          {}