aws-sdk-iotfleetwise 1.37.0 → 1.39.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -257,11 +257,34 @@ module Aws::IoTFleetWise
257
257
  # Used when loading credentials from the shared credentials file
258
258
  # at HOME/.aws/credentials. When not specified, 'default' is used.
259
259
  #
260
+ # @option options [String] :request_checksum_calculation ("when_supported")
261
+ # Determines when a checksum will be calculated for request payloads. Values are:
262
+ #
263
+ # * `when_supported` - (default) When set, a checksum will be
264
+ # calculated for all request payloads of operations modeled with the
265
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
266
+ # `requestAlgorithmMember` is modeled.
267
+ # * `when_required` - When set, a checksum will only be calculated for
268
+ # request payloads of operations modeled with the `httpChecksum` trait where
269
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
270
+ # is modeled and supplied.
271
+ #
260
272
  # @option options [Integer] :request_min_compression_size_bytes (10240)
261
273
  # The minimum size in bytes that triggers compression for request
262
274
  # bodies. The value must be non-negative integer value between 0
263
275
  # and 10485780 bytes inclusive.
264
276
  #
277
+ # @option options [String] :response_checksum_validation ("when_supported")
278
+ # Determines when checksum validation will be performed on response payloads. Values are:
279
+ #
280
+ # * `when_supported` - (default) When set, checksum validation is performed on all
281
+ # response payloads of operations modeled with the `httpChecksum` trait where
282
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
283
+ # are supported.
284
+ # * `when_required` - When set, checksum validation is not performed on
285
+ # response payloads of operations unless the checksum algorithm is supported and
286
+ # the `requestValidationModeMember` member is set to `ENABLED`.
287
+ #
265
288
  # @option options [Proc] :retry_backoff
266
289
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
290
  # This option is only used in the `legacy` retry mode.
@@ -519,6 +542,21 @@ module Aws::IoTFleetWise
519
542
  # value: "TagValue", # required
520
543
  # },
521
544
  # ],
545
+ # state_templates: [
546
+ # {
547
+ # identifier: "ResourceIdentifier", # required
548
+ # state_template_update_strategy: { # required
549
+ # periodic: {
550
+ # state_template_update_rate: { # required
551
+ # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR
552
+ # value: 1, # required
553
+ # },
554
+ # },
555
+ # on_change: {
556
+ # },
557
+ # },
558
+ # },
559
+ # ],
522
560
  # },
523
561
  # ],
524
562
  # })
@@ -576,6 +614,22 @@ module Aws::IoTFleetWise
576
614
  # "attributeName" => "attributeValue",
577
615
  # },
578
616
  # attribute_update_mode: "Overwrite", # accepts Overwrite, Merge
617
+ # state_templates_to_add: [
618
+ # {
619
+ # identifier: "ResourceIdentifier", # required
620
+ # state_template_update_strategy: { # required
621
+ # periodic: {
622
+ # state_template_update_rate: { # required
623
+ # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR
624
+ # value: 1, # required
625
+ # },
626
+ # },
627
+ # on_change: {
628
+ # },
629
+ # },
630
+ # },
631
+ # ],
632
+ # state_templates_to_remove: ["ResourceIdentifier"],
579
633
  # },
580
634
  # ],
581
635
  # })
@@ -608,9 +662,15 @@ module Aws::IoTFleetWise
608
662
  # campaigns][1] in the *Amazon Web Services IoT FleetWise Developer
609
663
  # Guide*.
610
664
  #
665
+ # Access to certain Amazon Web Services IoT FleetWise features is
666
+ # currently gated. For more information, see [Amazon Web Services Region
667
+ # and feature availability][2] in the *Amazon Web Services IoT FleetWise
668
+ # Developer Guide*.
669
+ #
611
670
  #
612
671
  #
613
672
  # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html
673
+ # [2]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
614
674
  #
615
675
  # @option params [required, String] :name
616
676
  # The name of the campaign to create.
@@ -626,35 +686,33 @@ module Aws::IoTFleetWise
626
686
  # The ARN of the vehicle or fleet to deploy a campaign to.
627
687
  #
628
688
  # @option params [Time,DateTime,Date,Integer,String] :start_time
629
- # (Optional) The time, in milliseconds, to deliver a campaign after it
630
- # was approved. If it's not specified, `0` is used.
689
+ # The time, in milliseconds, to deliver a campaign after it was
690
+ # approved. If it's not specified, `0` is used.
631
691
  #
632
692
  # Default: `0`
633
693
  #
634
694
  # @option params [Time,DateTime,Date,Integer,String] :expiry_time
635
- # (Optional) The time the campaign expires, in seconds since epoch
636
- # (January 1, 1970 at midnight UTC time). Vehicle data isn't collected
637
- # after the campaign expires.
695
+ # The time the campaign expires, in seconds since epoch (January 1, 1970
696
+ # at midnight UTC time). Vehicle data isn't collected after the
697
+ # campaign expires.
638
698
  #
639
699
  # Default: 253402214400 (December 31, 9999, 00:00:00 UTC)
640
700
  #
641
701
  # @option params [Integer] :post_trigger_collection_duration
642
- # (Optional) How long (in milliseconds) to collect raw data after a
643
- # triggering event initiates the collection. If it's not specified, `0`
644
- # is used.
702
+ # How long (in milliseconds) to collect raw data after a triggering
703
+ # event initiates the collection. If it's not specified, `0` is used.
645
704
  #
646
705
  # Default: `0`
647
706
  #
648
707
  # @option params [String] :diagnostics_mode
649
- # (Optional) Option for a vehicle to send diagnostic trouble codes to
650
- # Amazon Web Services IoT FleetWise. If you want to send diagnostic
651
- # trouble codes, use `SEND_ACTIVE_DTCS`. If it's not specified, `OFF`
652
- # is used.
708
+ # Option for a vehicle to send diagnostic trouble codes to Amazon Web
709
+ # Services IoT FleetWise. If you want to send diagnostic trouble codes,
710
+ # use `SEND_ACTIVE_DTCS`. If it's not specified, `OFF` is used.
653
711
  #
654
712
  # Default: `OFF`
655
713
  #
656
714
  # @option params [String] :spooling_mode
657
- # (Optional) Whether to store collected data after a vehicle lost a
715
+ # Determines whether to store collected data after a vehicle lost a
658
716
  # connection with the cloud. After a connection is re-established, the
659
717
  # data is automatically forwarded to Amazon Web Services IoT FleetWise.
660
718
  # If you want to store collected data when a vehicle loses connection
@@ -663,29 +721,35 @@ module Aws::IoTFleetWise
663
721
  # Default: `OFF`
664
722
  #
665
723
  # @option params [String] :compression
666
- # (Optional) Whether to compress signals before transmitting data to
724
+ # Determines whether to compress signals before transmitting data to
667
725
  # Amazon Web Services IoT FleetWise. If you don't want to compress the
668
726
  # signals, use `OFF`. If it's not specified, `SNAPPY` is used.
669
727
  #
670
728
  # Default: `SNAPPY`
671
729
  #
672
730
  # @option params [Integer] :priority
673
- # (Optional) A number indicating the priority of one campaign over
674
- # another campaign for a certain vehicle or fleet. A campaign with the
675
- # lowest value is deployed to vehicles before any other campaigns. If
676
- # it's not specified, `0` is used.
731
+ # A number indicating the priority of one campaign over another campaign
732
+ # for a certain vehicle or fleet. A campaign with the lowest value is
733
+ # deployed to vehicles before any other campaigns. If it's not
734
+ # specified, `0` is used.
677
735
  #
678
736
  # Default: `0`
679
737
  #
680
738
  # @option params [Array<Types::SignalInformation>] :signals_to_collect
681
- # (Optional) A list of information about signals to collect.
739
+ # A list of information about signals to collect.
740
+ #
741
+ # <note markdown="1"> If you upload a signal as a condition in a data partition for a
742
+ # campaign, then those same signals must be included in
743
+ # `signalsToCollect`.
744
+ #
745
+ # </note>
682
746
  #
683
747
  # @option params [required, Types::CollectionScheme] :collection_scheme
684
748
  # The data collection scheme associated with the campaign. You can
685
749
  # specify a scheme that collects data based on time or an event.
686
750
  #
687
751
  # @option params [Array<String>] :data_extra_dimensions
688
- # (Optional) A list of vehicle attributes to associate with a campaign.
752
+ # A list of vehicle attributes to associate with a campaign.
689
753
  #
690
754
  # Enrich the data with specified vehicle attributes. For example, add
691
755
  # `make` and `model` to the campaign, and Amazon Web Services IoT
@@ -699,8 +763,11 @@ module Aws::IoTFleetWise
699
763
  # Metadata that can be used to manage the campaign.
700
764
  #
701
765
  # @option params [Array<Types::DataDestinationConfig>] :data_destination_configs
702
- # The destination where the campaign sends data. You can choose to send
703
- # data to be stored in Amazon S3 or Amazon Timestream.
766
+ # The destination where the campaign sends data. You can send data to an
767
+ # MQTT topic, or store it in Amazon S3 or Amazon Timestream.
768
+ #
769
+ # MQTT is the publish/subscribe messaging protocol used by Amazon Web
770
+ # Services IoT to communicate with your devices.
704
771
  #
705
772
  # Amazon S3 optimizes the cost of data storage and provides additional
706
773
  # mechanisms to use vehicle data, such as data lakes, centralized data
@@ -713,6 +780,13 @@ module Aws::IoTFleetWise
713
780
  # and Timestream to query vehicle data so that you can identify trends
714
781
  # and patterns.
715
782
  #
783
+ # @option params [Array<Types::DataPartition>] :data_partitions
784
+ # The data partitions associated with the signals collected from the
785
+ # vehicle.
786
+ #
787
+ # @option params [Array<Types::SignalFetchInformation>] :signals_to_fetch
788
+ # A list of information about signals to fetch.
789
+ #
716
790
  # @return [Types::CreateCampaignResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
717
791
  #
718
792
  # * {Types::CreateCampaignResponse#name #name} => String
@@ -737,6 +811,7 @@ module Aws::IoTFleetWise
737
811
  # name: "wildcardSignalName", # required
738
812
  # max_sample_count: 1,
739
813
  # minimum_sampling_interval_ms: 1,
814
+ # data_partition_id: "DataPartitionId",
740
815
  # },
741
816
  # ],
742
817
  # collection_scheme: { # required
@@ -769,6 +844,46 @@ module Aws::IoTFleetWise
769
844
  # timestream_table_arn: "TimestreamTableArn", # required
770
845
  # execution_role_arn: "IAMRoleArn", # required
771
846
  # },
847
+ # mqtt_topic_config: {
848
+ # mqtt_topic_arn: "MqttTopicArn", # required
849
+ # execution_role_arn: "IAMRoleArn", # required
850
+ # },
851
+ # },
852
+ # ],
853
+ # data_partitions: [
854
+ # {
855
+ # id: "DataPartitionId", # required
856
+ # storage_options: { # required
857
+ # maximum_size: { # required
858
+ # unit: "MB", # required, accepts MB, GB, TB
859
+ # value: 1, # required
860
+ # },
861
+ # storage_location: "StorageLocation", # required
862
+ # minimum_time_to_live: { # required
863
+ # unit: "HOURS", # required, accepts HOURS, DAYS, WEEKS
864
+ # value: 1, # required
865
+ # },
866
+ # },
867
+ # upload_options: {
868
+ # expression: "eventExpression", # required
869
+ # condition_language_version: 1,
870
+ # },
871
+ # },
872
+ # ],
873
+ # signals_to_fetch: [
874
+ # {
875
+ # fully_qualified_name: "NodePath", # required
876
+ # signal_fetch_config: { # required
877
+ # time_based: {
878
+ # execution_frequency_ms: 1, # required
879
+ # },
880
+ # condition_based: {
881
+ # condition_expression: "fetchConfigEventExpression", # required
882
+ # trigger_mode: "ALWAYS", # required, accepts ALWAYS, RISING_EDGE
883
+ # },
884
+ # },
885
+ # condition_language_version: 1,
886
+ # actions: ["actionEventExpression"], # required
772
887
  # },
773
888
  # ],
774
889
  # })
@@ -811,6 +926,19 @@ module Aws::IoTFleetWise
811
926
  # @option params [Array<Types::NetworkInterface>] :network_interfaces
812
927
  # A list of information about available network interfaces.
813
928
  #
929
+ # @option params [String] :default_for_unmapped_signals
930
+ # Use default decoders for all unmapped signals in the model. You don't
931
+ # need to provide any detailed decoding information.
932
+ #
933
+ # Access to certain Amazon Web Services IoT FleetWise features is
934
+ # currently gated. For more information, see [Amazon Web Services Region
935
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
936
+ # Developer Guide*.
937
+ #
938
+ #
939
+ #
940
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
941
+ #
814
942
  # @option params [Array<Types::Tag>] :tags
815
943
  # Metadata that can be used to manage the decoder manifest.
816
944
  #
@@ -828,7 +956,7 @@ module Aws::IoTFleetWise
828
956
  # signal_decoders: [
829
957
  # {
830
958
  # fully_qualified_name: "FullyQualifiedName", # required
831
- # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL
959
+ # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL, CUSTOM_DECODING_SIGNAL
832
960
  # interface_id: "InterfaceId", # required
833
961
  # can_signal: {
834
962
  # message_id: 1, # required
@@ -880,12 +1008,15 @@ module Aws::IoTFleetWise
880
1008
  # ],
881
1009
  # },
882
1010
  # },
1011
+ # custom_decoding_signal: {
1012
+ # id: "CustomDecodingId", # required
1013
+ # },
883
1014
  # },
884
1015
  # ],
885
1016
  # network_interfaces: [
886
1017
  # {
887
1018
  # interface_id: "InterfaceId", # required
888
- # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE
1019
+ # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE, CUSTOM_DECODING_INTERFACE
889
1020
  # can_interface: {
890
1021
  # name: "CanInterfaceName", # required
891
1022
  # protocol_name: "ProtocolName",
@@ -904,8 +1035,12 @@ module Aws::IoTFleetWise
904
1035
  # name: "VehicleMiddlewareName", # required
905
1036
  # protocol_name: "ROS_2", # required, accepts ROS_2
906
1037
  # },
1038
+ # custom_decoding_interface: {
1039
+ # name: "CustomDecodingSignalInterfaceName", # required
1040
+ # },
907
1041
  # },
908
1042
  # ],
1043
+ # default_for_unmapped_signals: "CUSTOM_DECODING", # accepts CUSTOM_DECODING
909
1044
  # tags: [
910
1045
  # {
911
1046
  # key: "TagKey", # required
@@ -1149,6 +1284,99 @@ module Aws::IoTFleetWise
1149
1284
  req.send_request(options)
1150
1285
  end
1151
1286
 
1287
+ # Creates a state template. State templates contain state properties,
1288
+ # which are signals that belong to a signal catalog that is synchronized
1289
+ # between the Amazon Web Services IoT FleetWise Edge and the Amazon Web
1290
+ # Services Cloud.
1291
+ #
1292
+ # Access to certain Amazon Web Services IoT FleetWise features is
1293
+ # currently gated. For more information, see [Amazon Web Services Region
1294
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
1295
+ # Developer Guide*.
1296
+ #
1297
+ #
1298
+ #
1299
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
1300
+ #
1301
+ # @option params [required, String] :name
1302
+ # The name of the state template.
1303
+ #
1304
+ # @option params [String] :description
1305
+ # A brief description of the state template.
1306
+ #
1307
+ # @option params [required, String] :signal_catalog_arn
1308
+ # The ARN of the signal catalog associated with the state template.
1309
+ #
1310
+ # @option params [required, Array<String>] :state_template_properties
1311
+ # A list of signals from which data is collected. The state template
1312
+ # properties contain the fully qualified names of the signals.
1313
+ #
1314
+ # @option params [Array<String>] :data_extra_dimensions
1315
+ # A list of vehicle attributes to associate with the payload published
1316
+ # on the state template's MQTT topic. (See [ Processing last known
1317
+ # state vehicle data using MQTT messaging][1]). For example, if you add
1318
+ # `Vehicle.Attributes.Make` and `Vehicle.Attributes.Model` attributes,
1319
+ # Amazon Web Services IoT FleetWise will enrich the protobuf encoded
1320
+ # payload with those attributes in the `extraDimensions` field.
1321
+ #
1322
+ #
1323
+ #
1324
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data
1325
+ #
1326
+ # @option params [Array<String>] :metadata_extra_dimensions
1327
+ # A list of vehicle attributes to associate with user properties of the
1328
+ # messages published on the state template's MQTT topic. (See [
1329
+ # Processing last known state vehicle data using MQTT messaging][1]).
1330
+ # For example, if you add `Vehicle.Attributes.Make` and
1331
+ # `Vehicle.Attributes.Model` attributes, Amazon Web Services IoT
1332
+ # FleetWise will include these attributes as User Properties with the
1333
+ # MQTT message.
1334
+ #
1335
+ # Default: An empty array
1336
+ #
1337
+ #
1338
+ #
1339
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data
1340
+ #
1341
+ # @option params [Array<Types::Tag>] :tags
1342
+ # Metadata that can be used to manage the state template.
1343
+ #
1344
+ # @return [Types::CreateStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1345
+ #
1346
+ # * {Types::CreateStateTemplateResponse#name #name} => String
1347
+ # * {Types::CreateStateTemplateResponse#arn #arn} => String
1348
+ # * {Types::CreateStateTemplateResponse#id #id} => String
1349
+ #
1350
+ # @example Request syntax with placeholder values
1351
+ #
1352
+ # resp = client.create_state_template({
1353
+ # name: "resourceName", # required
1354
+ # description: "description",
1355
+ # signal_catalog_arn: "arn", # required
1356
+ # state_template_properties: ["NodePath"], # required
1357
+ # data_extra_dimensions: ["NodePath"],
1358
+ # metadata_extra_dimensions: ["NodePath"],
1359
+ # tags: [
1360
+ # {
1361
+ # key: "TagKey", # required
1362
+ # value: "TagValue", # required
1363
+ # },
1364
+ # ],
1365
+ # })
1366
+ #
1367
+ # @example Response structure
1368
+ #
1369
+ # resp.name #=> String
1370
+ # resp.arn #=> String
1371
+ # resp.id #=> String
1372
+ #
1373
+ # @overload create_state_template(params = {})
1374
+ # @param [Hash] params ({})
1375
+ def create_state_template(params = {}, options = {})
1376
+ req = build_request(:create_state_template, params)
1377
+ req.send_request(options)
1378
+ end
1379
+
1152
1380
  # Creates a vehicle, which is an instance of a vehicle model (model
1153
1381
  # manifest). Vehicles created from the same vehicle model consist of the
1154
1382
  # same signals inherited from the vehicle model.
@@ -1179,8 +1407,10 @@ module Aws::IoTFleetWise
1179
1407
  # Static information about a vehicle in a key-value pair. For example:
1180
1408
  # `"engineType"` : `"1.3 L R2"`
1181
1409
  #
1182
- # A campaign must include the keys (attribute names) in
1183
- # `dataExtraDimensions` for them to display in Amazon Timestream.
1410
+ # To use attributes with Campaigns or State Templates, you must include
1411
+ # them using the request parameters `dataExtraDimensions` and/or
1412
+ # `metadataExtraDimensions` (for state templates only) when creating
1413
+ # your campaign/state template.
1184
1414
  #
1185
1415
  # @option params [String] :association_behavior
1186
1416
  # An option to create a new Amazon Web Services IoT thing when creating
@@ -1192,6 +1422,10 @@ module Aws::IoTFleetWise
1192
1422
  # @option params [Array<Types::Tag>] :tags
1193
1423
  # Metadata that can be used to manage the vehicle.
1194
1424
  #
1425
+ # @option params [Array<Types::StateTemplateAssociation>] :state_templates
1426
+ # Associate state templates with the vehicle. You can monitor the last
1427
+ # known state of the vehicle in near real time.
1428
+ #
1195
1429
  # @return [Types::CreateVehicleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1196
1430
  #
1197
1431
  # * {Types::CreateVehicleResponse#vehicle_name #vehicle_name} => String
@@ -1214,6 +1448,21 @@ module Aws::IoTFleetWise
1214
1448
  # value: "TagValue", # required
1215
1449
  # },
1216
1450
  # ],
1451
+ # state_templates: [
1452
+ # {
1453
+ # identifier: "ResourceIdentifier", # required
1454
+ # state_template_update_strategy: { # required
1455
+ # periodic: {
1456
+ # state_template_update_rate: { # required
1457
+ # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR
1458
+ # value: 1, # required
1459
+ # },
1460
+ # },
1461
+ # on_change: {
1462
+ # },
1463
+ # },
1464
+ # },
1465
+ # ],
1217
1466
  # })
1218
1467
  #
1219
1468
  # @example Response structure
@@ -1261,11 +1510,6 @@ module Aws::IoTFleetWise
1261
1510
  # Deletes a decoder manifest. You can't delete a decoder manifest if it
1262
1511
  # has vehicles associated with it.
1263
1512
  #
1264
- # <note markdown="1"> If the decoder manifest is successfully deleted, Amazon Web Services
1265
- # IoT FleetWise sends back an HTTP 200 response with an empty body.
1266
- #
1267
- # </note>
1268
- #
1269
1513
  # @option params [required, String] :name
1270
1514
  # The name of the decoder manifest to delete.
1271
1515
  #
@@ -1297,11 +1541,6 @@ module Aws::IoTFleetWise
1297
1541
  # (AWS CLI)][1] in the *Amazon Web Services IoT FleetWise Developer
1298
1542
  # Guide*.
1299
1543
  #
1300
- # <note markdown="1"> If the fleet is successfully deleted, Amazon Web Services IoT
1301
- # FleetWise sends back an HTTP 200 response with an empty body.
1302
- #
1303
- # </note>
1304
- #
1305
1544
  #
1306
1545
  #
1307
1546
  # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html
@@ -1334,11 +1573,6 @@ module Aws::IoTFleetWise
1334
1573
 
1335
1574
  # Deletes a vehicle model (model manifest).
1336
1575
  #
1337
- # <note markdown="1"> If the vehicle model is successfully deleted, Amazon Web Services IoT
1338
- # FleetWise sends back an HTTP 200 response with an empty body.
1339
- #
1340
- # </note>
1341
- #
1342
1576
  # @option params [required, String] :name
1343
1577
  # The name of the model manifest to delete.
1344
1578
  #
@@ -1367,11 +1601,6 @@ module Aws::IoTFleetWise
1367
1601
 
1368
1602
  # Deletes a signal catalog.
1369
1603
  #
1370
- # <note markdown="1"> If the signal catalog is successfully deleted, Amazon Web Services IoT
1371
- # FleetWise sends back an HTTP 200 response with an empty body.
1372
- #
1373
- # </note>
1374
- #
1375
1604
  # @option params [required, String] :name
1376
1605
  # The name of the signal catalog to delete.
1377
1606
  #
@@ -1398,12 +1627,37 @@ module Aws::IoTFleetWise
1398
1627
  req.send_request(options)
1399
1628
  end
1400
1629
 
1401
- # Deletes a vehicle and removes it from any campaigns.
1630
+ # Deletes a state template.
1402
1631
  #
1403
- # <note markdown="1"> If the vehicle is successfully deleted, Amazon Web Services IoT
1404
- # FleetWise sends back an HTTP 200 response with an empty body.
1632
+ # @option params [required, String] :identifier
1633
+ # A unique, service-generated identifier.
1405
1634
  #
1406
- # </note>
1635
+ # @return [Types::DeleteStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1636
+ #
1637
+ # * {Types::DeleteStateTemplateResponse#name #name} => String
1638
+ # * {Types::DeleteStateTemplateResponse#arn #arn} => String
1639
+ # * {Types::DeleteStateTemplateResponse#id #id} => String
1640
+ #
1641
+ # @example Request syntax with placeholder values
1642
+ #
1643
+ # resp = client.delete_state_template({
1644
+ # identifier: "ResourceIdentifier", # required
1645
+ # })
1646
+ #
1647
+ # @example Response structure
1648
+ #
1649
+ # resp.name #=> String
1650
+ # resp.arn #=> String
1651
+ # resp.id #=> String
1652
+ #
1653
+ # @overload delete_state_template(params = {})
1654
+ # @param [Hash] params ({})
1655
+ def delete_state_template(params = {}, options = {})
1656
+ req = build_request(:delete_state_template, params)
1657
+ req.send_request(options)
1658
+ end
1659
+
1660
+ # Deletes a vehicle and removes it from any campaigns.
1407
1661
  #
1408
1662
  # @option params [required, String] :vehicle_name
1409
1663
  # The ID of the vehicle to delete.
@@ -1434,12 +1688,6 @@ module Aws::IoTFleetWise
1434
1688
  # Removes, or disassociates, a vehicle from a fleet. Disassociating a
1435
1689
  # vehicle from a fleet doesn't delete the vehicle.
1436
1690
  #
1437
- # <note markdown="1"> If the vehicle is successfully dissociated from a fleet, Amazon Web
1438
- # Services IoT FleetWise sends back an HTTP 200 response with an empty
1439
- # body.
1440
- #
1441
- # </note>
1442
- #
1443
1691
  # @option params [required, String] :vehicle_name
1444
1692
  # The unique ID of the vehicle to disassociate from the fleet.
1445
1693
  #
@@ -1464,6 +1712,15 @@ module Aws::IoTFleetWise
1464
1712
 
1465
1713
  # Retrieves information about a campaign.
1466
1714
  #
1715
+ # Access to certain Amazon Web Services IoT FleetWise features is
1716
+ # currently gated. For more information, see [Amazon Web Services Region
1717
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
1718
+ # Developer Guide*.
1719
+ #
1720
+ #
1721
+ #
1722
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
1723
+ #
1467
1724
  # @option params [required, String] :name
1468
1725
  # The name of the campaign to retrieve information about.
1469
1726
  #
@@ -1488,6 +1745,8 @@ module Aws::IoTFleetWise
1488
1745
  # * {Types::GetCampaignResponse#creation_time #creation_time} => Time
1489
1746
  # * {Types::GetCampaignResponse#last_modification_time #last_modification_time} => Time
1490
1747
  # * {Types::GetCampaignResponse#data_destination_configs #data_destination_configs} => Array&lt;Types::DataDestinationConfig&gt;
1748
+ # * {Types::GetCampaignResponse#data_partitions #data_partitions} => Array&lt;Types::DataPartition&gt;
1749
+ # * {Types::GetCampaignResponse#signals_to_fetch #signals_to_fetch} => Array&lt;Types::SignalFetchInformation&gt;
1491
1750
  #
1492
1751
  # @example Request syntax with placeholder values
1493
1752
  #
@@ -1514,6 +1773,7 @@ module Aws::IoTFleetWise
1514
1773
  # resp.signals_to_collect[0].name #=> String
1515
1774
  # resp.signals_to_collect[0].max_sample_count #=> Integer
1516
1775
  # resp.signals_to_collect[0].minimum_sampling_interval_ms #=> Integer
1776
+ # resp.signals_to_collect[0].data_partition_id #=> String
1517
1777
  # resp.collection_scheme.time_based_collection_scheme.period_ms #=> Integer
1518
1778
  # resp.collection_scheme.condition_based_collection_scheme.expression #=> String
1519
1779
  # resp.collection_scheme.condition_based_collection_scheme.minimum_trigger_interval_ms #=> Integer
@@ -1530,6 +1790,25 @@ module Aws::IoTFleetWise
1530
1790
  # resp.data_destination_configs[0].s3_config.prefix #=> String
1531
1791
  # resp.data_destination_configs[0].timestream_config.timestream_table_arn #=> String
1532
1792
  # resp.data_destination_configs[0].timestream_config.execution_role_arn #=> String
1793
+ # resp.data_destination_configs[0].mqtt_topic_config.mqtt_topic_arn #=> String
1794
+ # resp.data_destination_configs[0].mqtt_topic_config.execution_role_arn #=> String
1795
+ # resp.data_partitions #=> Array
1796
+ # resp.data_partitions[0].id #=> String
1797
+ # resp.data_partitions[0].storage_options.maximum_size.unit #=> String, one of "MB", "GB", "TB"
1798
+ # resp.data_partitions[0].storage_options.maximum_size.value #=> Integer
1799
+ # resp.data_partitions[0].storage_options.storage_location #=> String
1800
+ # resp.data_partitions[0].storage_options.minimum_time_to_live.unit #=> String, one of "HOURS", "DAYS", "WEEKS"
1801
+ # resp.data_partitions[0].storage_options.minimum_time_to_live.value #=> Integer
1802
+ # resp.data_partitions[0].upload_options.expression #=> String
1803
+ # resp.data_partitions[0].upload_options.condition_language_version #=> Integer
1804
+ # resp.signals_to_fetch #=> Array
1805
+ # resp.signals_to_fetch[0].fully_qualified_name #=> String
1806
+ # resp.signals_to_fetch[0].signal_fetch_config.time_based.execution_frequency_ms #=> Integer
1807
+ # resp.signals_to_fetch[0].signal_fetch_config.condition_based.condition_expression #=> String
1808
+ # resp.signals_to_fetch[0].signal_fetch_config.condition_based.trigger_mode #=> String, one of "ALWAYS", "RISING_EDGE"
1809
+ # resp.signals_to_fetch[0].condition_language_version #=> Integer
1810
+ # resp.signals_to_fetch[0].actions #=> Array
1811
+ # resp.signals_to_fetch[0].actions[0] #=> String
1533
1812
  #
1534
1813
  # @overload get_campaign(params = {})
1535
1814
  # @param [Hash] params ({})
@@ -1788,6 +2067,62 @@ module Aws::IoTFleetWise
1788
2067
  req.send_request(options)
1789
2068
  end
1790
2069
 
2070
+ # Retrieves information about a state template.
2071
+ #
2072
+ # Access to certain Amazon Web Services IoT FleetWise features is
2073
+ # currently gated. For more information, see [Amazon Web Services Region
2074
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
2075
+ # Developer Guide*.
2076
+ #
2077
+ #
2078
+ #
2079
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
2080
+ #
2081
+ # @option params [required, String] :identifier
2082
+ # A unique, service-generated identifier.
2083
+ #
2084
+ # @return [Types::GetStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2085
+ #
2086
+ # * {Types::GetStateTemplateResponse#name #name} => String
2087
+ # * {Types::GetStateTemplateResponse#arn #arn} => String
2088
+ # * {Types::GetStateTemplateResponse#description #description} => String
2089
+ # * {Types::GetStateTemplateResponse#signal_catalog_arn #signal_catalog_arn} => String
2090
+ # * {Types::GetStateTemplateResponse#state_template_properties #state_template_properties} => Array&lt;String&gt;
2091
+ # * {Types::GetStateTemplateResponse#data_extra_dimensions #data_extra_dimensions} => Array&lt;String&gt;
2092
+ # * {Types::GetStateTemplateResponse#metadata_extra_dimensions #metadata_extra_dimensions} => Array&lt;String&gt;
2093
+ # * {Types::GetStateTemplateResponse#creation_time #creation_time} => Time
2094
+ # * {Types::GetStateTemplateResponse#last_modification_time #last_modification_time} => Time
2095
+ # * {Types::GetStateTemplateResponse#id #id} => String
2096
+ #
2097
+ # @example Request syntax with placeholder values
2098
+ #
2099
+ # resp = client.get_state_template({
2100
+ # identifier: "ResourceIdentifier", # required
2101
+ # })
2102
+ #
2103
+ # @example Response structure
2104
+ #
2105
+ # resp.name #=> String
2106
+ # resp.arn #=> String
2107
+ # resp.description #=> String
2108
+ # resp.signal_catalog_arn #=> String
2109
+ # resp.state_template_properties #=> Array
2110
+ # resp.state_template_properties[0] #=> String
2111
+ # resp.data_extra_dimensions #=> Array
2112
+ # resp.data_extra_dimensions[0] #=> String
2113
+ # resp.metadata_extra_dimensions #=> Array
2114
+ # resp.metadata_extra_dimensions[0] #=> String
2115
+ # resp.creation_time #=> Time
2116
+ # resp.last_modification_time #=> Time
2117
+ # resp.id #=> String
2118
+ #
2119
+ # @overload get_state_template(params = {})
2120
+ # @param [Hash] params ({})
2121
+ def get_state_template(params = {}, options = {})
2122
+ req = build_request(:get_state_template, params)
2123
+ req.send_request(options)
2124
+ end
2125
+
1791
2126
  # Retrieves information about a vehicle.
1792
2127
  #
1793
2128
  # @option params [required, String] :vehicle_name
@@ -1800,6 +2135,7 @@ module Aws::IoTFleetWise
1800
2135
  # * {Types::GetVehicleResponse#model_manifest_arn #model_manifest_arn} => String
1801
2136
  # * {Types::GetVehicleResponse#decoder_manifest_arn #decoder_manifest_arn} => String
1802
2137
  # * {Types::GetVehicleResponse#attributes #attributes} => Hash&lt;String,String&gt;
2138
+ # * {Types::GetVehicleResponse#state_templates #state_templates} => Array&lt;Types::StateTemplateAssociation&gt;
1803
2139
  # * {Types::GetVehicleResponse#creation_time #creation_time} => Time
1804
2140
  # * {Types::GetVehicleResponse#last_modification_time #last_modification_time} => Time
1805
2141
  #
@@ -1817,6 +2153,10 @@ module Aws::IoTFleetWise
1817
2153
  # resp.decoder_manifest_arn #=> String
1818
2154
  # resp.attributes #=> Hash
1819
2155
  # resp.attributes["attributeName"] #=> String
2156
+ # resp.state_templates #=> Array
2157
+ # resp.state_templates[0].identifier #=> String
2158
+ # resp.state_templates[0].state_template_update_strategy.periodic.state_template_update_rate.unit #=> String, one of "MILLISECOND", "SECOND", "MINUTE", "HOUR"
2159
+ # resp.state_templates[0].state_template_update_strategy.periodic.state_template_update_rate.value #=> Integer
1820
2160
  # resp.creation_time #=> Time
1821
2161
  # resp.last_modification_time #=> Time
1822
2162
  #
@@ -1827,8 +2167,8 @@ module Aws::IoTFleetWise
1827
2167
  req.send_request(options)
1828
2168
  end
1829
2169
 
1830
- # Retrieves information about the status of a vehicle with any
1831
- # associated campaigns.
2170
+ # Retrieves information about the status of campaigns, decoder
2171
+ # manifests, or state templates associated with a vehicle.
1832
2172
  #
1833
2173
  # @option params [String] :next_token
1834
2174
  # A pagination token for the next set of results.
@@ -1837,10 +2177,12 @@ module Aws::IoTFleetWise
1837
2177
  # are returned, and a `nextToken` pagination token is returned in the
1838
2178
  # response. To retrieve the next set of results, reissue the search
1839
2179
  # request and include the returned token. When all results have been
1840
- # returned, the response does not contain a pagination token value.
2180
+ # returned, the response does not contain a pagination token value. This
2181
+ # parameter is only supported for resources of type `CAMPAIGN`.
1841
2182
  #
1842
2183
  # @option params [Integer] :max_results
1843
2184
  # The maximum number of items to return, between 1 and 100, inclusive.
2185
+ # This parameter is only supported for resources of type `CAMPAIGN`.
1844
2186
  #
1845
2187
  # @option params [required, String] :vehicle_name
1846
2188
  # The ID of the vehicle to retrieve information about.
@@ -1878,6 +2220,9 @@ module Aws::IoTFleetWise
1878
2220
  # Creates a decoder manifest using your existing CAN DBC file from your
1879
2221
  # local device.
1880
2222
  #
2223
+ # The CAN signal name must be unique and not repeated across CAN message
2224
+ # definitions in a .dbc file.
2225
+ #
1881
2226
  # @option params [required, String] :name
1882
2227
  # The name of the decoder manifest to import.
1883
2228
  #
@@ -1988,9 +2333,9 @@ module Aws::IoTFleetWise
1988
2333
  # The maximum number of items to return, between 1 and 100, inclusive.
1989
2334
  #
1990
2335
  # @option params [String] :status
1991
- # Optional parameter to filter the results by the status of each created
1992
- # campaign in your account. The status can be one of: `CREATING`,
1993
- # `WAITING_FOR_APPROVAL`, `RUNNING`, or `SUSPENDED`.
2336
+ # An optional parameter to filter the results by the status of each
2337
+ # created campaign in your account. The status can be one of:
2338
+ # `CREATING`, `WAITING_FOR_APPROVAL`, `RUNNING`, or `SUSPENDED`.
1994
2339
  #
1995
2340
  # @return [Types::ListCampaignsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1996
2341
  #
@@ -2068,7 +2413,7 @@ module Aws::IoTFleetWise
2068
2413
  #
2069
2414
  # resp.network_interfaces #=> Array
2070
2415
  # resp.network_interfaces[0].interface_id #=> String
2071
- # resp.network_interfaces[0].type #=> String, one of "CAN_INTERFACE", "OBD_INTERFACE", "VEHICLE_MIDDLEWARE"
2416
+ # resp.network_interfaces[0].type #=> String, one of "CAN_INTERFACE", "OBD_INTERFACE", "VEHICLE_MIDDLEWARE", "CUSTOM_DECODING_INTERFACE"
2072
2417
  # resp.network_interfaces[0].can_interface.name #=> String
2073
2418
  # resp.network_interfaces[0].can_interface.protocol_name #=> String
2074
2419
  # resp.network_interfaces[0].can_interface.protocol_version #=> String
@@ -2081,6 +2426,7 @@ module Aws::IoTFleetWise
2081
2426
  # resp.network_interfaces[0].obd_interface.has_transmission_ecu #=> Boolean
2082
2427
  # resp.network_interfaces[0].vehicle_middleware.name #=> String
2083
2428
  # resp.network_interfaces[0].vehicle_middleware.protocol_name #=> String, one of "ROS_2"
2429
+ # resp.network_interfaces[0].custom_decoding_interface.name #=> String
2084
2430
  # resp.next_token #=> String
2085
2431
  #
2086
2432
  # @overload list_decoder_manifest_network_interfaces(params = {})
@@ -2132,7 +2478,7 @@ module Aws::IoTFleetWise
2132
2478
  #
2133
2479
  # resp.signal_decoders #=> Array
2134
2480
  # resp.signal_decoders[0].fully_qualified_name #=> String
2135
- # resp.signal_decoders[0].type #=> String, one of "CAN_SIGNAL", "OBD_SIGNAL", "MESSAGE_SIGNAL"
2481
+ # resp.signal_decoders[0].type #=> String, one of "CAN_SIGNAL", "OBD_SIGNAL", "MESSAGE_SIGNAL", "CUSTOM_DECODING_SIGNAL"
2136
2482
  # resp.signal_decoders[0].interface_id #=> String
2137
2483
  # resp.signal_decoders[0].can_signal.message_id #=> Integer
2138
2484
  # resp.signal_decoders[0].can_signal.is_big_endian #=> Boolean
@@ -2163,6 +2509,7 @@ module Aws::IoTFleetWise
2163
2509
  # resp.signal_decoders[0].message_signal.structured_message.structured_message_definition #=> Array
2164
2510
  # resp.signal_decoders[0].message_signal.structured_message.structured_message_definition[0].field_name #=> String
2165
2511
  # resp.signal_decoders[0].message_signal.structured_message.structured_message_definition[0].data_type #=> Types::StructuredMessage
2512
+ # resp.signal_decoders[0].custom_decoding_signal.id #=> String
2166
2513
  # resp.next_token #=> String
2167
2514
  #
2168
2515
  # @overload list_decoder_manifest_signals(params = {})
@@ -2647,6 +2994,57 @@ module Aws::IoTFleetWise
2647
2994
  req.send_request(options)
2648
2995
  end
2649
2996
 
2997
+ # Lists information about created state templates.
2998
+ #
2999
+ # Access to certain Amazon Web Services IoT FleetWise features is
3000
+ # currently gated. For more information, see [Amazon Web Services Region
3001
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
3002
+ # Developer Guide*.
3003
+ #
3004
+ #
3005
+ #
3006
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
3007
+ #
3008
+ # @option params [String] :next_token
3009
+ # The token to retrieve the next set of results, or `null` if there are
3010
+ # no more results.
3011
+ #
3012
+ # @option params [Integer] :max_results
3013
+ # The maximum number of items to return, between 1 and 100, inclusive.
3014
+ #
3015
+ # @return [Types::ListStateTemplatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3016
+ #
3017
+ # * {Types::ListStateTemplatesResponse#summaries #summaries} => Array&lt;Types::StateTemplateSummary&gt;
3018
+ # * {Types::ListStateTemplatesResponse#next_token #next_token} => String
3019
+ #
3020
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
3021
+ #
3022
+ # @example Request syntax with placeholder values
3023
+ #
3024
+ # resp = client.list_state_templates({
3025
+ # next_token: "nextToken",
3026
+ # max_results: 1,
3027
+ # })
3028
+ #
3029
+ # @example Response structure
3030
+ #
3031
+ # resp.summaries #=> Array
3032
+ # resp.summaries[0].name #=> String
3033
+ # resp.summaries[0].arn #=> String
3034
+ # resp.summaries[0].signal_catalog_arn #=> String
3035
+ # resp.summaries[0].description #=> String
3036
+ # resp.summaries[0].creation_time #=> Time
3037
+ # resp.summaries[0].last_modification_time #=> Time
3038
+ # resp.summaries[0].id #=> String
3039
+ # resp.next_token #=> String
3040
+ #
3041
+ # @overload list_state_templates(params = {})
3042
+ # @param [Hash] params ({})
3043
+ def list_state_templates(params = {}, options = {})
3044
+ req = build_request(:list_state_templates, params)
3045
+ req.send_request(options)
3046
+ end
3047
+
2650
3048
  # Lists the tags (metadata) you have assigned to the resource.
2651
3049
  #
2652
3050
  # @option params [required, String] :resource_arn
@@ -2688,14 +3086,32 @@ module Aws::IoTFleetWise
2688
3086
  # from a certain vehicle model.
2689
3087
  #
2690
3088
  # @option params [Array<String>] :attribute_names
2691
- # The fully qualified names of the attributes. For example, the fully
2692
- # qualified name of an attribute might be `Vehicle.Body.Engine.Type`.
3089
+ # The fully qualified names of the attributes. You can use this optional
3090
+ # parameter to list the vehicles containing all the attributes in the
3091
+ # request. For example, `attributeNames` could be
3092
+ # "`Vehicle.Body.Engine.Type, Vehicle.Color`" and the corresponding
3093
+ # `attributeValues` could be "`1.3 L R2, Blue`" . In this case, the
3094
+ # API will filter vehicles with an attribute name
3095
+ # `Vehicle.Body.Engine.Type` that contains a value of `1.3 L R2` AND an
3096
+ # attribute name `Vehicle.Color` that contains a value of "`Blue`". A
3097
+ # request must contain unique values for the `attributeNames` filter and
3098
+ # the matching number of `attributeValues` filters to return the subset
3099
+ # of vehicles that match the attributes filter condition.
2693
3100
  #
2694
3101
  # @option params [Array<String>] :attribute_values
2695
3102
  # Static information about a vehicle attribute value in string format.
2696
- # For example:
2697
- #
2698
- # `"1.3 L R2"`
3103
+ # You can use this optional parameter in conjunction with
3104
+ # `attributeNames` to list the vehicles containing all the
3105
+ # `attributeValues` corresponding to the `attributeNames` filter. For
3106
+ # example, `attributeValues` could be "`1.3 L R2, Blue`" and the
3107
+ # corresponding `attributeNames` filter could be
3108
+ # "`Vehicle.Body.Engine.Type, Vehicle.Color`". In this case, the API
3109
+ # will filter vehicles with attribute name `Vehicle.Body.Engine.Type`
3110
+ # that contains a value of `1.3 L R2` AND an attribute name
3111
+ # `Vehicle.Color` that contains a value of "`Blue`". A request must
3112
+ # contain unique values for the `attributeNames` filter and the matching
3113
+ # number of `attributeValues` filter to return the subset of vehicles
3114
+ # that match the attributes filter condition.
2699
3115
  #
2700
3116
  # @option params [String] :next_token
2701
3117
  # A pagination token for the next set of results.
@@ -3100,6 +3516,19 @@ module Aws::IoTFleetWise
3100
3516
  # decoder manifest can't be edited. If the status is `DRAFT`, you can
3101
3517
  # edit the decoder manifest.
3102
3518
  #
3519
+ # @option params [String] :default_for_unmapped_signals
3520
+ # Use default decoders for all unmapped signals in the model. You don't
3521
+ # need to provide any detailed decoding information.
3522
+ #
3523
+ # Access to certain Amazon Web Services IoT FleetWise features is
3524
+ # currently gated. For more information, see [Amazon Web Services Region
3525
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
3526
+ # Developer Guide*.
3527
+ #
3528
+ #
3529
+ #
3530
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
3531
+ #
3103
3532
  # @return [Types::UpdateDecoderManifestResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3104
3533
  #
3105
3534
  # * {Types::UpdateDecoderManifestResponse#name #name} => String
@@ -3113,7 +3542,7 @@ module Aws::IoTFleetWise
3113
3542
  # signal_decoders_to_add: [
3114
3543
  # {
3115
3544
  # fully_qualified_name: "FullyQualifiedName", # required
3116
- # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL
3545
+ # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL, CUSTOM_DECODING_SIGNAL
3117
3546
  # interface_id: "InterfaceId", # required
3118
3547
  # can_signal: {
3119
3548
  # message_id: 1, # required
@@ -3165,12 +3594,15 @@ module Aws::IoTFleetWise
3165
3594
  # ],
3166
3595
  # },
3167
3596
  # },
3597
+ # custom_decoding_signal: {
3598
+ # id: "CustomDecodingId", # required
3599
+ # },
3168
3600
  # },
3169
3601
  # ],
3170
3602
  # signal_decoders_to_update: [
3171
3603
  # {
3172
3604
  # fully_qualified_name: "FullyQualifiedName", # required
3173
- # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL
3605
+ # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL, CUSTOM_DECODING_SIGNAL
3174
3606
  # interface_id: "InterfaceId", # required
3175
3607
  # can_signal: {
3176
3608
  # message_id: 1, # required
@@ -3222,13 +3654,16 @@ module Aws::IoTFleetWise
3222
3654
  # ],
3223
3655
  # },
3224
3656
  # },
3657
+ # custom_decoding_signal: {
3658
+ # id: "CustomDecodingId", # required
3659
+ # },
3225
3660
  # },
3226
3661
  # ],
3227
3662
  # signal_decoders_to_remove: ["FullyQualifiedName"],
3228
3663
  # network_interfaces_to_add: [
3229
3664
  # {
3230
3665
  # interface_id: "InterfaceId", # required
3231
- # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE
3666
+ # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE, CUSTOM_DECODING_INTERFACE
3232
3667
  # can_interface: {
3233
3668
  # name: "CanInterfaceName", # required
3234
3669
  # protocol_name: "ProtocolName",
@@ -3247,12 +3682,15 @@ module Aws::IoTFleetWise
3247
3682
  # name: "VehicleMiddlewareName", # required
3248
3683
  # protocol_name: "ROS_2", # required, accepts ROS_2
3249
3684
  # },
3685
+ # custom_decoding_interface: {
3686
+ # name: "CustomDecodingSignalInterfaceName", # required
3687
+ # },
3250
3688
  # },
3251
3689
  # ],
3252
3690
  # network_interfaces_to_update: [
3253
3691
  # {
3254
3692
  # interface_id: "InterfaceId", # required
3255
- # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE
3693
+ # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE, CUSTOM_DECODING_INTERFACE
3256
3694
  # can_interface: {
3257
3695
  # name: "CanInterfaceName", # required
3258
3696
  # protocol_name: "ProtocolName",
@@ -3271,10 +3709,14 @@ module Aws::IoTFleetWise
3271
3709
  # name: "VehicleMiddlewareName", # required
3272
3710
  # protocol_name: "ROS_2", # required, accepts ROS_2
3273
3711
  # },
3712
+ # custom_decoding_interface: {
3713
+ # name: "CustomDecodingSignalInterfaceName", # required
3714
+ # },
3274
3715
  # },
3275
3716
  # ],
3276
3717
  # network_interfaces_to_remove: ["InterfaceId"],
3277
3718
  # status: "ACTIVE", # accepts ACTIVE, DRAFT, INVALID, VALIDATING
3719
+ # default_for_unmapped_signals: "CUSTOM_DECODING", # accepts CUSTOM_DECODING
3278
3720
  # })
3279
3721
  #
3280
3722
  # @example Response structure
@@ -3291,11 +3733,6 @@ module Aws::IoTFleetWise
3291
3733
 
3292
3734
  # Updates the description of an existing fleet.
3293
3735
  #
3294
- # <note markdown="1"> If the fleet is successfully updated, Amazon Web Services IoT
3295
- # FleetWise sends back an HTTP 200 response with an empty HTTP body.
3296
- #
3297
- # </note>
3298
- #
3299
3736
  # @option params [required, String] :fleet_id
3300
3737
  # The ID of the fleet to update.
3301
3738
  #
@@ -3544,6 +3981,88 @@ module Aws::IoTFleetWise
3544
3981
  req.send_request(options)
3545
3982
  end
3546
3983
 
3984
+ # Updates a state template.
3985
+ #
3986
+ # Access to certain Amazon Web Services IoT FleetWise features is
3987
+ # currently gated. For more information, see [Amazon Web Services Region
3988
+ # and feature availability][1] in the *Amazon Web Services IoT FleetWise
3989
+ # Developer Guide*.
3990
+ #
3991
+ #
3992
+ #
3993
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html
3994
+ #
3995
+ # @option params [required, String] :identifier
3996
+ # A unique, service-generated identifier.
3997
+ #
3998
+ # @option params [String] :description
3999
+ # A brief description of the state template.
4000
+ #
4001
+ # @option params [Array<String>] :state_template_properties_to_add
4002
+ # Add signals from which data is collected as part of the state
4003
+ # template.
4004
+ #
4005
+ # @option params [Array<String>] :state_template_properties_to_remove
4006
+ # Remove signals from which data is collected as part of the state
4007
+ # template.
4008
+ #
4009
+ # @option params [Array<String>] :data_extra_dimensions
4010
+ # A list of vehicle attributes to associate with the payload published
4011
+ # on the state template's MQTT topic. (See [ Processing last known
4012
+ # state vehicle data using MQTT messaging][1]). For example, if you add
4013
+ # `Vehicle.Attributes.Make` and `Vehicle.Attributes.Model` attributes,
4014
+ # Amazon Web Services IoT FleetWise will enrich the protobuf encoded
4015
+ # payload with those attributes in the `extraDimensions` field.
4016
+ #
4017
+ # Default: An empty array
4018
+ #
4019
+ #
4020
+ #
4021
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data
4022
+ #
4023
+ # @option params [Array<String>] :metadata_extra_dimensions
4024
+ # A list of vehicle attributes to associate with user properties of the
4025
+ # messages published on the state template's MQTT topic. (See [
4026
+ # Processing last known state vehicle data using MQTT messaging][1]).
4027
+ # For example, if you add `Vehicle.Attributes.Make` and
4028
+ # `Vehicle.Attributes.Model` attributes, Amazon Web Services IoT
4029
+ # FleetWise will include these attributes as User Properties with the
4030
+ # MQTT message.
4031
+ #
4032
+ #
4033
+ #
4034
+ # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data
4035
+ #
4036
+ # @return [Types::UpdateStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4037
+ #
4038
+ # * {Types::UpdateStateTemplateResponse#name #name} => String
4039
+ # * {Types::UpdateStateTemplateResponse#arn #arn} => String
4040
+ # * {Types::UpdateStateTemplateResponse#id #id} => String
4041
+ #
4042
+ # @example Request syntax with placeholder values
4043
+ #
4044
+ # resp = client.update_state_template({
4045
+ # identifier: "ResourceIdentifier", # required
4046
+ # description: "description",
4047
+ # state_template_properties_to_add: ["NodePath"],
4048
+ # state_template_properties_to_remove: ["NodePath"],
4049
+ # data_extra_dimensions: ["NodePath"],
4050
+ # metadata_extra_dimensions: ["NodePath"],
4051
+ # })
4052
+ #
4053
+ # @example Response structure
4054
+ #
4055
+ # resp.name #=> String
4056
+ # resp.arn #=> String
4057
+ # resp.id #=> String
4058
+ #
4059
+ # @overload update_state_template(params = {})
4060
+ # @param [Hash] params ({})
4061
+ def update_state_template(params = {}, options = {})
4062
+ req = build_request(:update_state_template, params)
4063
+ req.send_request(options)
4064
+ end
4065
+
3547
4066
  # Updates a vehicle.
3548
4067
  #
3549
4068
  # @option params [required, String] :vehicle_name
@@ -3569,6 +4088,12 @@ module Aws::IoTFleetWise
3569
4088
  #
3570
4089
  # This is required if attributes are present in the input.
3571
4090
  #
4091
+ # @option params [Array<Types::StateTemplateAssociation>] :state_templates_to_add
4092
+ # Associate state templates with the vehicle.
4093
+ #
4094
+ # @option params [Array<String>] :state_templates_to_remove
4095
+ # Remove state templates from the vehicle.
4096
+ #
3572
4097
  # @return [Types::UpdateVehicleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3573
4098
  #
3574
4099
  # * {Types::UpdateVehicleResponse#vehicle_name #vehicle_name} => String
@@ -3584,6 +4109,22 @@ module Aws::IoTFleetWise
3584
4109
  # "attributeName" => "attributeValue",
3585
4110
  # },
3586
4111
  # attribute_update_mode: "Overwrite", # accepts Overwrite, Merge
4112
+ # state_templates_to_add: [
4113
+ # {
4114
+ # identifier: "ResourceIdentifier", # required
4115
+ # state_template_update_strategy: { # required
4116
+ # periodic: {
4117
+ # state_template_update_rate: { # required
4118
+ # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR
4119
+ # value: 1, # required
4120
+ # },
4121
+ # },
4122
+ # on_change: {
4123
+ # },
4124
+ # },
4125
+ # },
4126
+ # ],
4127
+ # state_templates_to_remove: ["ResourceIdentifier"],
3587
4128
  # })
3588
4129
  #
3589
4130
  # @example Response structure
@@ -3616,7 +4157,7 @@ module Aws::IoTFleetWise
3616
4157
  tracer: tracer
3617
4158
  )
3618
4159
  context[:gem_name] = 'aws-sdk-iotfleetwise'
3619
- context[:gem_version] = '1.37.0'
4160
+ context[:gem_version] = '1.39.0'
3620
4161
  Seahorse::Client::Request.new(handlers, context)
3621
4162
  end
3622
4163