lib/aws-sdk-iotfleetwise/client.rb in aws-sdk-iotfleetwise-1.37.0 vs lib/aws-sdk-iotfleetwise/client.rb in aws-sdk-iotfleetwise-1.38.0

- old
+ new

@@ -517,10 +517,25 @@ # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], + # state_templates: [ + # { + # identifier: "ResourceIdentifier", # required + # state_template_update_strategy: { # required + # periodic: { + # state_template_update_rate: { # required + # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR + # value: 1, # required + # }, + # }, + # on_change: { + # }, + # }, + # }, + # ], # }, # ], # }) # # @example Response structure @@ -574,10 +589,26 @@ # decoder_manifest_arn: "arn", # attributes: { # "attributeName" => "attributeValue", # }, # attribute_update_mode: "Overwrite", # accepts Overwrite, Merge + # state_templates_to_add: [ + # { + # identifier: "ResourceIdentifier", # required + # state_template_update_strategy: { # required + # periodic: { + # state_template_update_rate: { # required + # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR + # value: 1, # required + # }, + # }, + # on_change: { + # }, + # }, + # }, + # ], + # state_templates_to_remove: ["ResourceIdentifier"], # }, # ], # }) # # @example Response structure @@ -606,13 +637,19 @@ # # For more information, see [Collect and transfer data with # campaigns][1] in the *Amazon Web Services IoT FleetWise Developer # Guide*. # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][2] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. # # + # # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html + # [2]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html # # @option params [required, String] :name # The name of the campaign to create. # # @option params [String] :description @@ -624,70 +661,74 @@ # # @option params [required, String] :target_arn # The ARN of the vehicle or fleet to deploy a campaign to. # # @option params [Time,DateTime,Date,Integer,String] :start_time - # (Optional) The time, in milliseconds, to deliver a campaign after it - # was approved. If it's not specified, `0` is used. + # The time, in milliseconds, to deliver a campaign after it was + # approved. If it's not specified, `0` is used. # # Default: `0` # # @option params [Time,DateTime,Date,Integer,String] :expiry_time - # (Optional) The time the campaign expires, in seconds since epoch - # (January 1, 1970 at midnight UTC time). Vehicle data isn't collected - # after the campaign expires. + # The time the campaign expires, in seconds since epoch (January 1, 1970 + # at midnight UTC time). Vehicle data isn't collected after the + # campaign expires. # # Default: 253402214400 (December 31, 9999, 00:00:00 UTC) # # @option params [Integer] :post_trigger_collection_duration - # (Optional) How long (in milliseconds) to collect raw data after a - # triggering event initiates the collection. If it's not specified, `0` - # is used. + # How long (in milliseconds) to collect raw data after a triggering + # event initiates the collection. If it's not specified, `0` is used. # # Default: `0` # # @option params [String] :diagnostics_mode - # (Optional) Option for a vehicle to send diagnostic trouble codes to - # Amazon Web Services IoT FleetWise. If you want to send diagnostic - # trouble codes, use `SEND_ACTIVE_DTCS`. If it's not specified, `OFF` - # is used. + # Option for a vehicle to send diagnostic trouble codes to Amazon Web + # Services IoT FleetWise. If you want to send diagnostic trouble codes, + # use `SEND_ACTIVE_DTCS`. If it's not specified, `OFF` is used. # # Default: `OFF` # # @option params [String] :spooling_mode - # (Optional) Whether to store collected data after a vehicle lost a + # Determines whether to store collected data after a vehicle lost a # connection with the cloud. After a connection is re-established, the # data is automatically forwarded to Amazon Web Services IoT FleetWise. # If you want to store collected data when a vehicle loses connection # with the cloud, use `TO_DISK`. If it's not specified, `OFF` is used. # # Default: `OFF` # # @option params [String] :compression - # (Optional) Whether to compress signals before transmitting data to + # Determines whether to compress signals before transmitting data to # Amazon Web Services IoT FleetWise. If you don't want to compress the # signals, use `OFF`. If it's not specified, `SNAPPY` is used. # # Default: `SNAPPY` # # @option params [Integer] :priority - # (Optional) A number indicating the priority of one campaign over - # another campaign for a certain vehicle or fleet. A campaign with the - # lowest value is deployed to vehicles before any other campaigns. If - # it's not specified, `0` is used. + # A number indicating the priority of one campaign over another campaign + # for a certain vehicle or fleet. A campaign with the lowest value is + # deployed to vehicles before any other campaigns. If it's not + # specified, `0` is used. # # Default: `0` # # @option params [Array<Types::SignalInformation>] :signals_to_collect - # (Optional) A list of information about signals to collect. + # A list of information about signals to collect. # + # <note markdown="1"> If you upload a signal as a condition in a data partition for a + # campaign, then those same signals must be included in + # `signalsToCollect`. + # + # </note> + # # @option params [required, Types::CollectionScheme] :collection_scheme # The data collection scheme associated with the campaign. You can # specify a scheme that collects data based on time or an event. # # @option params [Array<String>] :data_extra_dimensions - # (Optional) A list of vehicle attributes to associate with a campaign. + # A list of vehicle attributes to associate with a campaign. # # Enrich the data with specified vehicle attributes. For example, add # `make` and `model` to the campaign, and Amazon Web Services IoT # FleetWise will associate the data with those attributes as dimensions # in Amazon Timestream. You can then query the data against `make` and @@ -697,13 +738,16 @@ # # @option params [Array<Types::Tag>] :tags # Metadata that can be used to manage the campaign. # # @option params [Array<Types::DataDestinationConfig>] :data_destination_configs - # The destination where the campaign sends data. You can choose to send - # data to be stored in Amazon S3 or Amazon Timestream. + # The destination where the campaign sends data. You can send data to an + # MQTT topic, or store it in Amazon S3 or Amazon Timestream. # + # MQTT is the publish/subscribe messaging protocol used by Amazon Web + # Services IoT to communicate with your devices. + # # Amazon S3 optimizes the cost of data storage and provides additional # mechanisms to use vehicle data, such as data lakes, centralized data # storage, data processing pipelines, and analytics. Amazon Web Services # IoT FleetWise supports at-least-once file delivery to S3. Your vehicle # data is stored on multiple Amazon Web Services IoT FleetWise servers @@ -711,10 +755,17 @@ # # You can use Amazon Timestream to access and analyze time series data, # and Timestream to query vehicle data so that you can identify trends # and patterns. # + # @option params [Array<Types::DataPartition>] :data_partitions + # The data partitions associated with the signals collected from the + # vehicle. + # + # @option params [Array<Types::SignalFetchInformation>] :signals_to_fetch + # A list of information about signals to fetch. + # # @return [Types::CreateCampaignResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::CreateCampaignResponse#name #name} => String # * {Types::CreateCampaignResponse#arn #arn} => String # @@ -735,10 +786,11 @@ # signals_to_collect: [ # { # name: "wildcardSignalName", # required # max_sample_count: 1, # minimum_sampling_interval_ms: 1, + # data_partition_id: "DataPartitionId", # }, # ], # collection_scheme: { # required # time_based_collection_scheme: { # period_ms: 1, # required @@ -767,12 +819,52 @@ # }, # timestream_config: { # timestream_table_arn: "TimestreamTableArn", # required # execution_role_arn: "IAMRoleArn", # required # }, + # mqtt_topic_config: { + # mqtt_topic_arn: "MqttTopicArn", # required + # execution_role_arn: "IAMRoleArn", # required + # }, # }, # ], + # data_partitions: [ + # { + # id: "DataPartitionId", # required + # storage_options: { # required + # maximum_size: { # required + # unit: "MB", # required, accepts MB, GB, TB + # value: 1, # required + # }, + # storage_location: "StorageLocation", # required + # minimum_time_to_live: { # required + # unit: "HOURS", # required, accepts HOURS, DAYS, WEEKS + # value: 1, # required + # }, + # }, + # upload_options: { + # expression: "eventExpression", # required + # condition_language_version: 1, + # }, + # }, + # ], + # signals_to_fetch: [ + # { + # fully_qualified_name: "NodePath", # required + # signal_fetch_config: { # required + # time_based: { + # execution_frequency_ms: 1, # required + # }, + # condition_based: { + # condition_expression: "fetchConfigEventExpression", # required + # trigger_mode: "ALWAYS", # required, accepts ALWAYS, RISING_EDGE + # }, + # }, + # condition_language_version: 1, + # actions: ["actionEventExpression"], # required + # }, + # ], # }) # # @example Response structure # # resp.name #=> String @@ -809,10 +901,23 @@ # A list of information about signal decoders. # # @option params [Array<Types::NetworkInterface>] :network_interfaces # A list of information about available network interfaces. # + # @option params [String] :default_for_unmapped_signals + # Use default decoders for all unmapped signals in the model. You don't + # need to provide any detailed decoding information. + # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # # @option params [Array<Types::Tag>] :tags # Metadata that can be used to manage the decoder manifest. # # @return [Types::CreateDecoderManifestResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -826,11 +931,11 @@ # description: "description", # model_manifest_arn: "arn", # required # signal_decoders: [ # { # fully_qualified_name: "FullyQualifiedName", # required - # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL + # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL, CUSTOM_DECODING_SIGNAL # interface_id: "InterfaceId", # required # can_signal: { # message_id: 1, # required # is_big_endian: false, # required # is_signed: false, # required @@ -878,16 +983,19 @@ # }, # }, # ], # }, # }, + # custom_decoding_signal: { + # id: "CustomDecodingId", # required + # }, # }, # ], # network_interfaces: [ # { # interface_id: "InterfaceId", # required - # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE + # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE, CUSTOM_DECODING_INTERFACE # can_interface: { # name: "CanInterfaceName", # required # protocol_name: "ProtocolName", # protocol_version: "ProtocolVersion", # }, @@ -902,12 +1010,16 @@ # }, # vehicle_middleware: { # name: "VehicleMiddlewareName", # required # protocol_name: "ROS_2", # required, accepts ROS_2 # }, + # custom_decoding_interface: { + # name: "CustomDecodingSignalInterfaceName", # required + # }, # }, # ], + # default_for_unmapped_signals: "CUSTOM_DECODING", # accepts CUSTOM_DECODING # tags: [ # { # key: "TagKey", # required # value: "TagValue", # required # }, @@ -1147,10 +1259,103 @@ def create_signal_catalog(params = {}, options = {}) req = build_request(:create_signal_catalog, params) req.send_request(options) end + # Creates a state template. State templates contain state properties, + # which are signals that belong to a signal catalog that is synchronized + # between the Amazon Web Services IoT FleetWise Edge and the Amazon Web + # Services Cloud. + # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # + # @option params [required, String] :name + # The name of the state template. + # + # @option params [String] :description + # A brief description of the state template. + # + # @option params [required, String] :signal_catalog_arn + # The ARN of the signal catalog associated with the state template. + # + # @option params [required, Array<String>] :state_template_properties + # A list of signals from which data is collected. The state template + # properties contain the fully qualified names of the signals. + # + # @option params [Array<String>] :data_extra_dimensions + # A list of vehicle attributes to associate with the payload published + # on the state template's MQTT topic. (See [ Processing last known + # state vehicle data using MQTT messaging][1]). For example, if you add + # `Vehicle.Attributes.Make` and `Vehicle.Attributes.Model` attributes, + # Amazon Web Services IoT FleetWise will enrich the protobuf encoded + # payload with those attributes in the `extraDimensions` field. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data + # + # @option params [Array<String>] :metadata_extra_dimensions + # A list of vehicle attributes to associate with user properties of the + # messages published on the state template's MQTT topic. (See [ + # Processing last known state vehicle data using MQTT messaging][1]). + # For example, if you add `Vehicle.Attributes.Make` and + # `Vehicle.Attributes.Model` attributes, Amazon Web Services IoT + # FleetWise will include these attributes as User Properties with the + # MQTT message. + # + # Default: An empty array + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data + # + # @option params [Array<Types::Tag>] :tags + # Metadata that can be used to manage the state template. + # + # @return [Types::CreateStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateStateTemplateResponse#name #name} => String + # * {Types::CreateStateTemplateResponse#arn #arn} => String + # * {Types::CreateStateTemplateResponse#id #id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.create_state_template({ + # name: "resourceName", # required + # description: "description", + # signal_catalog_arn: "arn", # required + # state_template_properties: ["NodePath"], # required + # data_extra_dimensions: ["NodePath"], + # metadata_extra_dimensions: ["NodePath"], + # tags: [ + # { + # key: "TagKey", # required + # value: "TagValue", # required + # }, + # ], + # }) + # + # @example Response structure + # + # resp.name #=> String + # resp.arn #=> String + # resp.id #=> String + # + # @overload create_state_template(params = {}) + # @param [Hash] params ({}) + def create_state_template(params = {}, options = {}) + req = build_request(:create_state_template, params) + req.send_request(options) + end + # Creates a vehicle, which is an instance of a vehicle model (model # manifest). Vehicles created from the same vehicle model consist of the # same signals inherited from the vehicle model. # # <note markdown="1"> If you have an existing Amazon Web Services IoT thing, you can use @@ -1177,12 +1382,14 @@ # # @option params [Hash<String,String>] :attributes # Static information about a vehicle in a key-value pair. For example: # `"engineType"` : `"1.3 L R2"` # - # A campaign must include the keys (attribute names) in - # `dataExtraDimensions` for them to display in Amazon Timestream. + # To use attributes with Campaigns or State Templates, you must include + # them using the request parameters `dataExtraDimensions` and/or + # `metadataExtraDimensions` (for state templates only) when creating + # your campaign/state template. # # @option params [String] :association_behavior # An option to create a new Amazon Web Services IoT thing when creating # a vehicle, or to validate an existing Amazon Web Services IoT thing as # a vehicle. @@ -1190,10 +1397,14 @@ # Default: `` # # @option params [Array<Types::Tag>] :tags # Metadata that can be used to manage the vehicle. # + # @option params [Array<Types::StateTemplateAssociation>] :state_templates + # Associate state templates with the vehicle. You can monitor the last + # known state of the vehicle in near real time. + # # @return [Types::CreateVehicleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::CreateVehicleResponse#vehicle_name #vehicle_name} => String # * {Types::CreateVehicleResponse#arn #arn} => String # * {Types::CreateVehicleResponse#thing_arn #thing_arn} => String @@ -1212,10 +1423,25 @@ # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], + # state_templates: [ + # { + # identifier: "ResourceIdentifier", # required + # state_template_update_strategy: { # required + # periodic: { + # state_template_update_rate: { # required + # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR + # value: 1, # required + # }, + # }, + # on_change: { + # }, + # }, + # }, + # ], # }) # # @example Response structure # # resp.vehicle_name #=> String @@ -1259,15 +1485,10 @@ end # Deletes a decoder manifest. You can't delete a decoder manifest if it # has vehicles associated with it. # - # <note markdown="1"> If the decoder manifest is successfully deleted, Amazon Web Services - # IoT FleetWise sends back an HTTP 200 response with an empty body. - # - # </note> - # # @option params [required, String] :name # The name of the decoder manifest to delete. # # @return [Types::DeleteDecoderManifestResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -1295,17 +1516,12 @@ # Deletes a fleet. Before you delete a fleet, all vehicles must be # dissociated from the fleet. For more information, see [Delete a fleet # (AWS CLI)][1] in the *Amazon Web Services IoT FleetWise Developer # Guide*. # - # <note markdown="1"> If the fleet is successfully deleted, Amazon Web Services IoT - # FleetWise sends back an HTTP 200 response with an empty body. # - # </note> # - # - # # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html # # @option params [required, String] :fleet_id # The ID of the fleet to delete. # @@ -1332,15 +1548,10 @@ req.send_request(options) end # Deletes a vehicle model (model manifest). # - # <note markdown="1"> If the vehicle model is successfully deleted, Amazon Web Services IoT - # FleetWise sends back an HTTP 200 response with an empty body. - # - # </note> - # # @option params [required, String] :name # The name of the model manifest to delete. # # @return [Types::DeleteModelManifestResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -1365,15 +1576,10 @@ req.send_request(options) end # Deletes a signal catalog. # - # <note markdown="1"> If the signal catalog is successfully deleted, Amazon Web Services IoT - # FleetWise sends back an HTTP 200 response with an empty body. - # - # </note> - # # @option params [required, String] :name # The name of the signal catalog to delete. # # @return [Types::DeleteSignalCatalogResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -1396,17 +1602,42 @@ def delete_signal_catalog(params = {}, options = {}) req = build_request(:delete_signal_catalog, params) req.send_request(options) end - # Deletes a vehicle and removes it from any campaigns. + # Deletes a state template. # - # <note markdown="1"> If the vehicle is successfully deleted, Amazon Web Services IoT - # FleetWise sends back an HTTP 200 response with an empty body. + # @option params [required, String] :identifier + # A unique, service-generated identifier. # - # </note> + # @return [Types::DeleteStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # + # * {Types::DeleteStateTemplateResponse#name #name} => String + # * {Types::DeleteStateTemplateResponse#arn #arn} => String + # * {Types::DeleteStateTemplateResponse#id #id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.delete_state_template({ + # identifier: "ResourceIdentifier", # required + # }) + # + # @example Response structure + # + # resp.name #=> String + # resp.arn #=> String + # resp.id #=> String + # + # @overload delete_state_template(params = {}) + # @param [Hash] params ({}) + def delete_state_template(params = {}, options = {}) + req = build_request(:delete_state_template, params) + req.send_request(options) + end + + # Deletes a vehicle and removes it from any campaigns. + # # @option params [required, String] :vehicle_name # The ID of the vehicle to delete. # # @return [Types::DeleteVehicleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -1432,16 +1663,10 @@ end # Removes, or disassociates, a vehicle from a fleet. Disassociating a # vehicle from a fleet doesn't delete the vehicle. # - # <note markdown="1"> If the vehicle is successfully dissociated from a fleet, Amazon Web - # Services IoT FleetWise sends back an HTTP 200 response with an empty - # body. - # - # </note> - # # @option params [required, String] :vehicle_name # The unique ID of the vehicle to disassociate from the fleet. # # @option params [required, String] :fleet_id # The unique ID of a fleet. @@ -1462,10 +1687,19 @@ req.send_request(options) end # Retrieves information about a campaign. # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # # @option params [required, String] :name # The name of the campaign to retrieve information about. # # @return [Types::GetCampaignResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # @@ -1486,10 +1720,12 @@ # * {Types::GetCampaignResponse#collection_scheme #collection_scheme} => Types::CollectionScheme # * {Types::GetCampaignResponse#data_extra_dimensions #data_extra_dimensions} => Array&lt;String&gt; # * {Types::GetCampaignResponse#creation_time #creation_time} => Time # * {Types::GetCampaignResponse#last_modification_time #last_modification_time} => Time # * {Types::GetCampaignResponse#data_destination_configs #data_destination_configs} => Array&lt;Types::DataDestinationConfig&gt; + # * {Types::GetCampaignResponse#data_partitions #data_partitions} => Array&lt;Types::DataPartition&gt; + # * {Types::GetCampaignResponse#signals_to_fetch #signals_to_fetch} => Array&lt;Types::SignalFetchInformation&gt; # # @example Request syntax with placeholder values # # resp = client.get_campaign({ # name: "campaignName", # required @@ -1512,10 +1748,11 @@ # resp.priority #=> Integer # resp.signals_to_collect #=> Array # resp.signals_to_collect[0].name #=> String # resp.signals_to_collect[0].max_sample_count #=> Integer # resp.signals_to_collect[0].minimum_sampling_interval_ms #=> Integer + # resp.signals_to_collect[0].data_partition_id #=> String # resp.collection_scheme.time_based_collection_scheme.period_ms #=> Integer # resp.collection_scheme.condition_based_collection_scheme.expression #=> String # resp.collection_scheme.condition_based_collection_scheme.minimum_trigger_interval_ms #=> Integer # resp.collection_scheme.condition_based_collection_scheme.trigger_mode #=> String, one of "ALWAYS", "RISING_EDGE" # resp.collection_scheme.condition_based_collection_scheme.condition_language_version #=> Integer @@ -1528,10 +1765,29 @@ # resp.data_destination_configs[0].s3_config.data_format #=> String, one of "JSON", "PARQUET" # resp.data_destination_configs[0].s3_config.storage_compression_format #=> String, one of "NONE", "GZIP" # resp.data_destination_configs[0].s3_config.prefix #=> String # resp.data_destination_configs[0].timestream_config.timestream_table_arn #=> String # resp.data_destination_configs[0].timestream_config.execution_role_arn #=> String + # resp.data_destination_configs[0].mqtt_topic_config.mqtt_topic_arn #=> String + # resp.data_destination_configs[0].mqtt_topic_config.execution_role_arn #=> String + # resp.data_partitions #=> Array + # resp.data_partitions[0].id #=> String + # resp.data_partitions[0].storage_options.maximum_size.unit #=> String, one of "MB", "GB", "TB" + # resp.data_partitions[0].storage_options.maximum_size.value #=> Integer + # resp.data_partitions[0].storage_options.storage_location #=> String + # resp.data_partitions[0].storage_options.minimum_time_to_live.unit #=> String, one of "HOURS", "DAYS", "WEEKS" + # resp.data_partitions[0].storage_options.minimum_time_to_live.value #=> Integer + # resp.data_partitions[0].upload_options.expression #=> String + # resp.data_partitions[0].upload_options.condition_language_version #=> Integer + # resp.signals_to_fetch #=> Array + # resp.signals_to_fetch[0].fully_qualified_name #=> String + # resp.signals_to_fetch[0].signal_fetch_config.time_based.execution_frequency_ms #=> Integer + # resp.signals_to_fetch[0].signal_fetch_config.condition_based.condition_expression #=> String + # resp.signals_to_fetch[0].signal_fetch_config.condition_based.trigger_mode #=> String, one of "ALWAYS", "RISING_EDGE" + # resp.signals_to_fetch[0].condition_language_version #=> Integer + # resp.signals_to_fetch[0].actions #=> Array + # resp.signals_to_fetch[0].actions[0] #=> String # # @overload get_campaign(params = {}) # @param [Hash] params ({}) def get_campaign(params = {}, options = {}) req = build_request(:get_campaign, params) @@ -1786,10 +2042,66 @@ def get_signal_catalog(params = {}, options = {}) req = build_request(:get_signal_catalog, params) req.send_request(options) end + # Retrieves information about a state template. + # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # + # @option params [required, String] :identifier + # A unique, service-generated identifier. + # + # @return [Types::GetStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetStateTemplateResponse#name #name} => String + # * {Types::GetStateTemplateResponse#arn #arn} => String + # * {Types::GetStateTemplateResponse#description #description} => String + # * {Types::GetStateTemplateResponse#signal_catalog_arn #signal_catalog_arn} => String + # * {Types::GetStateTemplateResponse#state_template_properties #state_template_properties} => Array&lt;String&gt; + # * {Types::GetStateTemplateResponse#data_extra_dimensions #data_extra_dimensions} => Array&lt;String&gt; + # * {Types::GetStateTemplateResponse#metadata_extra_dimensions #metadata_extra_dimensions} => Array&lt;String&gt; + # * {Types::GetStateTemplateResponse#creation_time #creation_time} => Time + # * {Types::GetStateTemplateResponse#last_modification_time #last_modification_time} => Time + # * {Types::GetStateTemplateResponse#id #id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.get_state_template({ + # identifier: "ResourceIdentifier", # required + # }) + # + # @example Response structure + # + # resp.name #=> String + # resp.arn #=> String + # resp.description #=> String + # resp.signal_catalog_arn #=> String + # resp.state_template_properties #=> Array + # resp.state_template_properties[0] #=> String + # resp.data_extra_dimensions #=> Array + # resp.data_extra_dimensions[0] #=> String + # resp.metadata_extra_dimensions #=> Array + # resp.metadata_extra_dimensions[0] #=> String + # resp.creation_time #=> Time + # resp.last_modification_time #=> Time + # resp.id #=> String + # + # @overload get_state_template(params = {}) + # @param [Hash] params ({}) + def get_state_template(params = {}, options = {}) + req = build_request(:get_state_template, params) + req.send_request(options) + end + # Retrieves information about a vehicle. # # @option params [required, String] :vehicle_name # The ID of the vehicle to retrieve information about. # @@ -1798,10 +2110,11 @@ # * {Types::GetVehicleResponse#vehicle_name #vehicle_name} => String # * {Types::GetVehicleResponse#arn #arn} => String # * {Types::GetVehicleResponse#model_manifest_arn #model_manifest_arn} => String # * {Types::GetVehicleResponse#decoder_manifest_arn #decoder_manifest_arn} => String # * {Types::GetVehicleResponse#attributes #attributes} => Hash&lt;String,String&gt; + # * {Types::GetVehicleResponse#state_templates #state_templates} => Array&lt;Types::StateTemplateAssociation&gt; # * {Types::GetVehicleResponse#creation_time #creation_time} => Time # * {Types::GetVehicleResponse#last_modification_time #last_modification_time} => Time # # @example Request syntax with placeholder values # @@ -1815,34 +2128,40 @@ # resp.arn #=> String # resp.model_manifest_arn #=> String # resp.decoder_manifest_arn #=> String # resp.attributes #=> Hash # resp.attributes["attributeName"] #=> String + # resp.state_templates #=> Array + # resp.state_templates[0].identifier #=> String + # resp.state_templates[0].state_template_update_strategy.periodic.state_template_update_rate.unit #=> String, one of "MILLISECOND", "SECOND", "MINUTE", "HOUR" + # resp.state_templates[0].state_template_update_strategy.periodic.state_template_update_rate.value #=> Integer # resp.creation_time #=> Time # resp.last_modification_time #=> Time # # @overload get_vehicle(params = {}) # @param [Hash] params ({}) def get_vehicle(params = {}, options = {}) req = build_request(:get_vehicle, params) req.send_request(options) end - # Retrieves information about the status of a vehicle with any - # associated campaigns. + # Retrieves information about the status of campaigns, decoder + # manifests, or state templates associated with a vehicle. # # @option params [String] :next_token # A pagination token for the next set of results. # # If the results of a search are large, only a portion of the results # are returned, and a `nextToken` pagination token is returned in the # response. To retrieve the next set of results, reissue the search # request and include the returned token. When all results have been - # returned, the response does not contain a pagination token value. + # returned, the response does not contain a pagination token value. This + # parameter is only supported for resources of type `CAMPAIGN`. # # @option params [Integer] :max_results # The maximum number of items to return, between 1 and 100, inclusive. + # This parameter is only supported for resources of type `CAMPAIGN`. # # @option params [required, String] :vehicle_name # The ID of the vehicle to retrieve information about. # # @return [Types::GetVehicleStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: @@ -1876,10 +2195,13 @@ end # Creates a decoder manifest using your existing CAN DBC file from your # local device. # + # The CAN signal name must be unique and not repeated across CAN message + # definitions in a .dbc file. + # # @option params [required, String] :name # The name of the decoder manifest to import. # # @option params [required, Array<Types::NetworkFileDefinition>] :network_file_definitions # The file to load into an Amazon Web Services account. @@ -1986,13 +2308,13 @@ # # @option params [Integer] :max_results # The maximum number of items to return, between 1 and 100, inclusive. # # @option params [String] :status - # Optional parameter to filter the results by the status of each created - # campaign in your account. The status can be one of: `CREATING`, - # `WAITING_FOR_APPROVAL`, `RUNNING`, or `SUSPENDED`. + # An optional parameter to filter the results by the status of each + # created campaign in your account. The status can be one of: + # `CREATING`, `WAITING_FOR_APPROVAL`, `RUNNING`, or `SUSPENDED`. # # @return [Types::ListCampaignsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListCampaignsResponse#campaign_summaries #campaign_summaries} => Array&lt;Types::CampaignSummary&gt; # * {Types::ListCampaignsResponse#next_token #next_token} => String @@ -2066,11 +2388,11 @@ # # @example Response structure # # resp.network_interfaces #=> Array # resp.network_interfaces[0].interface_id #=> String - # resp.network_interfaces[0].type #=> String, one of "CAN_INTERFACE", "OBD_INTERFACE", "VEHICLE_MIDDLEWARE" + # resp.network_interfaces[0].type #=> String, one of "CAN_INTERFACE", "OBD_INTERFACE", "VEHICLE_MIDDLEWARE", "CUSTOM_DECODING_INTERFACE" # resp.network_interfaces[0].can_interface.name #=> String # resp.network_interfaces[0].can_interface.protocol_name #=> String # resp.network_interfaces[0].can_interface.protocol_version #=> String # resp.network_interfaces[0].obd_interface.name #=> String # resp.network_interfaces[0].obd_interface.request_message_id #=> Integer @@ -2079,10 +2401,11 @@ # resp.network_interfaces[0].obd_interface.dtc_request_interval_seconds #=> Integer # resp.network_interfaces[0].obd_interface.use_extended_ids #=> Boolean # resp.network_interfaces[0].obd_interface.has_transmission_ecu #=> Boolean # resp.network_interfaces[0].vehicle_middleware.name #=> String # resp.network_interfaces[0].vehicle_middleware.protocol_name #=> String, one of "ROS_2" + # resp.network_interfaces[0].custom_decoding_interface.name #=> String # resp.next_token #=> String # # @overload list_decoder_manifest_network_interfaces(params = {}) # @param [Hash] params ({}) def list_decoder_manifest_network_interfaces(params = {}, options = {}) @@ -2130,11 +2453,11 @@ # # @example Response structure # # resp.signal_decoders #=> Array # resp.signal_decoders[0].fully_qualified_name #=> String - # resp.signal_decoders[0].type #=> String, one of "CAN_SIGNAL", "OBD_SIGNAL", "MESSAGE_SIGNAL" + # resp.signal_decoders[0].type #=> String, one of "CAN_SIGNAL", "OBD_SIGNAL", "MESSAGE_SIGNAL", "CUSTOM_DECODING_SIGNAL" # resp.signal_decoders[0].interface_id #=> String # resp.signal_decoders[0].can_signal.message_id #=> Integer # resp.signal_decoders[0].can_signal.is_big_endian #=> Boolean # resp.signal_decoders[0].can_signal.is_signed #=> Boolean # resp.signal_decoders[0].can_signal.start_bit #=> Integer @@ -2161,10 +2484,11 @@ # resp.signal_decoders[0].message_signal.structured_message.structured_message_list_definition.list_type #=> String, one of "FIXED_CAPACITY", "DYNAMIC_UNBOUNDED_CAPACITY", "DYNAMIC_BOUNDED_CAPACITY" # resp.signal_decoders[0].message_signal.structured_message.structured_message_list_definition.capacity #=> Integer # resp.signal_decoders[0].message_signal.structured_message.structured_message_definition #=> Array # resp.signal_decoders[0].message_signal.structured_message.structured_message_definition[0].field_name #=> String # resp.signal_decoders[0].message_signal.structured_message.structured_message_definition[0].data_type #=> Types::StructuredMessage + # resp.signal_decoders[0].custom_decoding_signal.id #=> String # resp.next_token #=> String # # @overload list_decoder_manifest_signals(params = {}) # @param [Hash] params ({}) def list_decoder_manifest_signals(params = {}, options = {}) @@ -2645,10 +2969,61 @@ def list_signal_catalogs(params = {}, options = {}) req = build_request(:list_signal_catalogs, params) req.send_request(options) end + # Lists information about created state templates. + # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # + # @option params [String] :next_token + # The token to retrieve the next set of results, or `null` if there are + # no more results. + # + # @option params [Integer] :max_results + # The maximum number of items to return, between 1 and 100, inclusive. + # + # @return [Types::ListStateTemplatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListStateTemplatesResponse#summaries #summaries} => Array&lt;Types::StateTemplateSummary&gt; + # * {Types::ListStateTemplatesResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_state_templates({ + # next_token: "nextToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.summaries #=> Array + # resp.summaries[0].name #=> String + # resp.summaries[0].arn #=> String + # resp.summaries[0].signal_catalog_arn #=> String + # resp.summaries[0].description #=> String + # resp.summaries[0].creation_time #=> Time + # resp.summaries[0].last_modification_time #=> Time + # resp.summaries[0].id #=> String + # resp.next_token #=> String + # + # @overload list_state_templates(params = {}) + # @param [Hash] params ({}) + def list_state_templates(params = {}, options = {}) + req = build_request(:list_state_templates, params) + req.send_request(options) + end + # Lists the tags (metadata) you have assigned to the resource. # # @option params [required, String] :resource_arn # The ARN of the resource. # @@ -2686,19 +3061,37 @@ # The Amazon Resource Name (ARN) of a vehicle model (model manifest). # You can use this optional parameter to list only the vehicles created # from a certain vehicle model. # # @option params [Array<String>] :attribute_names - # The fully qualified names of the attributes. For example, the fully - # qualified name of an attribute might be `Vehicle.Body.Engine.Type`. + # The fully qualified names of the attributes. You can use this optional + # parameter to list the vehicles containing all the attributes in the + # request. For example, `attributeNames` could be + # "`Vehicle.Body.Engine.Type, Vehicle.Color`" and the corresponding + # `attributeValues` could be "`1.3 L R2, Blue`" . In this case, the + # API will filter vehicles with an attribute name + # `Vehicle.Body.Engine.Type` that contains a value of `1.3 L R2` AND an + # attribute name `Vehicle.Color` that contains a value of "`Blue`". A + # request must contain unique values for the `attributeNames` filter and + # the matching number of `attributeValues` filters to return the subset + # of vehicles that match the attributes filter condition. # # @option params [Array<String>] :attribute_values # Static information about a vehicle attribute value in string format. - # For example: + # You can use this optional parameter in conjunction with + # `attributeNames` to list the vehicles containing all the + # `attributeValues` corresponding to the `attributeNames` filter. For + # example, `attributeValues` could be "`1.3 L R2, Blue`" and the + # corresponding `attributeNames` filter could be + # "`Vehicle.Body.Engine.Type, Vehicle.Color`". In this case, the API + # will filter vehicles with attribute name `Vehicle.Body.Engine.Type` + # that contains a value of `1.3 L R2` AND an attribute name + # `Vehicle.Color` that contains a value of "`Blue`". A request must + # contain unique values for the `attributeNames` filter and the matching + # number of `attributeValues` filter to return the subset of vehicles + # that match the attributes filter condition. # - # `"1.3 L R2"` - # # @option params [String] :next_token # A pagination token for the next set of results. # # If the results of a search are large, only a portion of the results # are returned, and a `nextToken` pagination token is returned in the @@ -3098,10 +3491,23 @@ # @option params [String] :status # The state of the decoder manifest. If the status is `ACTIVE`, the # decoder manifest can't be edited. If the status is `DRAFT`, you can # edit the decoder manifest. # + # @option params [String] :default_for_unmapped_signals + # Use default decoders for all unmapped signals in the model. You don't + # need to provide any detailed decoding information. + # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # # @return [Types::UpdateDecoderManifestResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::UpdateDecoderManifestResponse#name #name} => String # * {Types::UpdateDecoderManifestResponse#arn #arn} => String # @@ -3111,11 +3517,11 @@ # name: "resourceName", # required # description: "description", # signal_decoders_to_add: [ # { # fully_qualified_name: "FullyQualifiedName", # required - # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL + # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL, CUSTOM_DECODING_SIGNAL # interface_id: "InterfaceId", # required # can_signal: { # message_id: 1, # required # is_big_endian: false, # required # is_signed: false, # required @@ -3163,16 +3569,19 @@ # }, # }, # ], # }, # }, + # custom_decoding_signal: { + # id: "CustomDecodingId", # required + # }, # }, # ], # signal_decoders_to_update: [ # { # fully_qualified_name: "FullyQualifiedName", # required - # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL + # type: "CAN_SIGNAL", # required, accepts CAN_SIGNAL, OBD_SIGNAL, MESSAGE_SIGNAL, CUSTOM_DECODING_SIGNAL # interface_id: "InterfaceId", # required # can_signal: { # message_id: 1, # required # is_big_endian: false, # required # is_signed: false, # required @@ -3220,17 +3629,20 @@ # }, # }, # ], # }, # }, + # custom_decoding_signal: { + # id: "CustomDecodingId", # required + # }, # }, # ], # signal_decoders_to_remove: ["FullyQualifiedName"], # network_interfaces_to_add: [ # { # interface_id: "InterfaceId", # required - # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE + # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE, CUSTOM_DECODING_INTERFACE # can_interface: { # name: "CanInterfaceName", # required # protocol_name: "ProtocolName", # protocol_version: "ProtocolVersion", # }, @@ -3245,16 +3657,19 @@ # }, # vehicle_middleware: { # name: "VehicleMiddlewareName", # required # protocol_name: "ROS_2", # required, accepts ROS_2 # }, + # custom_decoding_interface: { + # name: "CustomDecodingSignalInterfaceName", # required + # }, # }, # ], # network_interfaces_to_update: [ # { # interface_id: "InterfaceId", # required - # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE + # type: "CAN_INTERFACE", # required, accepts CAN_INTERFACE, OBD_INTERFACE, VEHICLE_MIDDLEWARE, CUSTOM_DECODING_INTERFACE # can_interface: { # name: "CanInterfaceName", # required # protocol_name: "ProtocolName", # protocol_version: "ProtocolVersion", # }, @@ -3269,14 +3684,18 @@ # }, # vehicle_middleware: { # name: "VehicleMiddlewareName", # required # protocol_name: "ROS_2", # required, accepts ROS_2 # }, + # custom_decoding_interface: { + # name: "CustomDecodingSignalInterfaceName", # required + # }, # }, # ], # network_interfaces_to_remove: ["InterfaceId"], # status: "ACTIVE", # accepts ACTIVE, DRAFT, INVALID, VALIDATING + # default_for_unmapped_signals: "CUSTOM_DECODING", # accepts CUSTOM_DECODING # }) # # @example Response structure # # resp.name #=> String @@ -3289,15 +3708,10 @@ req.send_request(options) end # Updates the description of an existing fleet. # - # <note markdown="1"> If the fleet is successfully updated, Amazon Web Services IoT - # FleetWise sends back an HTTP 200 response with an empty HTTP body. - # - # </note> - # # @option params [required, String] :fleet_id # The ID of the fleet to update. # # @option params [String] :description # An updated description of the fleet. @@ -3542,10 +3956,92 @@ def update_signal_catalog(params = {}, options = {}) req = build_request(:update_signal_catalog, params) req.send_request(options) end + # Updates a state template. + # + # Access to certain Amazon Web Services IoT FleetWise features is + # currently gated. For more information, see [Amazon Web Services Region + # and feature availability][1] in the *Amazon Web Services IoT FleetWise + # Developer Guide*. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html + # + # @option params [required, String] :identifier + # A unique, service-generated identifier. + # + # @option params [String] :description + # A brief description of the state template. + # + # @option params [Array<String>] :state_template_properties_to_add + # Add signals from which data is collected as part of the state + # template. + # + # @option params [Array<String>] :state_template_properties_to_remove + # Remove signals from which data is collected as part of the state + # template. + # + # @option params [Array<String>] :data_extra_dimensions + # A list of vehicle attributes to associate with the payload published + # on the state template's MQTT topic. (See [ Processing last known + # state vehicle data using MQTT messaging][1]). For example, if you add + # `Vehicle.Attributes.Make` and `Vehicle.Attributes.Model` attributes, + # Amazon Web Services IoT FleetWise will enrich the protobuf encoded + # payload with those attributes in the `extraDimensions` field. + # + # Default: An empty array + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data + # + # @option params [Array<String>] :metadata_extra_dimensions + # A list of vehicle attributes to associate with user properties of the + # messages published on the state template's MQTT topic. (See [ + # Processing last known state vehicle data using MQTT messaging][1]). + # For example, if you add `Vehicle.Attributes.Make` and + # `Vehicle.Attributes.Model` attributes, Amazon Web Services IoT + # FleetWise will include these attributes as User Properties with the + # MQTT message. + # + # + # + # [1]: https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/process-visualize-data.html#process-last-known-state-vehicle-data + # + # @return [Types::UpdateStateTemplateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::UpdateStateTemplateResponse#name #name} => String + # * {Types::UpdateStateTemplateResponse#arn #arn} => String + # * {Types::UpdateStateTemplateResponse#id #id} => String + # + # @example Request syntax with placeholder values + # + # resp = client.update_state_template({ + # identifier: "ResourceIdentifier", # required + # description: "description", + # state_template_properties_to_add: ["NodePath"], + # state_template_properties_to_remove: ["NodePath"], + # data_extra_dimensions: ["NodePath"], + # metadata_extra_dimensions: ["NodePath"], + # }) + # + # @example Response structure + # + # resp.name #=> String + # resp.arn #=> String + # resp.id #=> String + # + # @overload update_state_template(params = {}) + # @param [Hash] params ({}) + def update_state_template(params = {}, options = {}) + req = build_request(:update_state_template, params) + req.send_request(options) + end + # Updates a vehicle. # # @option params [required, String] :vehicle_name # The unique ID of the vehicle to update. # @@ -3567,10 +4063,16 @@ # attributes with the specified attributes. Or use `Merge` to combine # all attributes. # # This is required if attributes are present in the input. # + # @option params [Array<Types::StateTemplateAssociation>] :state_templates_to_add + # Associate state templates with the vehicle. + # + # @option params [Array<String>] :state_templates_to_remove + # Remove state templates from the vehicle. + # # @return [Types::UpdateVehicleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::UpdateVehicleResponse#vehicle_name #vehicle_name} => String # * {Types::UpdateVehicleResponse#arn #arn} => String # @@ -3582,10 +4084,26 @@ # decoder_manifest_arn: "arn", # attributes: { # "attributeName" => "attributeValue", # }, # attribute_update_mode: "Overwrite", # accepts Overwrite, Merge + # state_templates_to_add: [ + # { + # identifier: "ResourceIdentifier", # required + # state_template_update_strategy: { # required + # periodic: { + # state_template_update_rate: { # required + # unit: "MILLISECOND", # required, accepts MILLISECOND, SECOND, MINUTE, HOUR + # value: 1, # required + # }, + # }, + # on_change: { + # }, + # }, + # }, + # ], + # state_templates_to_remove: ["ResourceIdentifier"], # }) # # @example Response structure # # resp.vehicle_name #=> String @@ -3614,10 +4132,10 @@ params: params, config: config, tracer: tracer ) context[:gem_name] = 'aws-sdk-iotfleetwise' - context[:gem_version] = '1.37.0' + context[:gem_version] = '1.38.0' Seahorse::Client::Request.new(handlers, context) end # @api private # @deprecated