aws-sdk-iotwireless 1.12.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -275,6 +275,15 @@ module Aws::IoTWireless
275
275
  # ** Please note ** When response stubbing is enabled, no HTTP
276
276
  # requests are made, and retries are disabled.
277
277
  #
278
+ # @option options [Boolean] :use_dualstack_endpoint
279
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
280
+ # will be used if available.
281
+ #
282
+ # @option options [Boolean] :use_fips_endpoint
283
+ # When set to `true`, fips compatible endpoints will be used if available.
284
+ # When a `fips` region is used, the region is normalized and this config
285
+ # is set to `true`.
286
+ #
278
287
  # @option options [Boolean] :validate_params (true)
279
288
  # When `true`, request parameters are validated before
280
289
  # sending the request.
@@ -379,6 +388,78 @@ module Aws::IoTWireless
379
388
  req.send_request(options)
380
389
  end
381
390
 
391
+ # Associate a multicast group with a FUOTA task.
392
+ #
393
+ # @option params [required, String] :id
394
+ # The ID of a FUOTA task.
395
+ #
396
+ # @option params [required, String] :multicast_group_id
397
+ # The ID of the multicast group.
398
+ #
399
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
400
+ #
401
+ # @example Request syntax with placeholder values
402
+ #
403
+ # resp = client.associate_multicast_group_with_fuota_task({
404
+ # id: "FuotaTaskId", # required
405
+ # multicast_group_id: "MulticastGroupId", # required
406
+ # })
407
+ #
408
+ # @overload associate_multicast_group_with_fuota_task(params = {})
409
+ # @param [Hash] params ({})
410
+ def associate_multicast_group_with_fuota_task(params = {}, options = {})
411
+ req = build_request(:associate_multicast_group_with_fuota_task, params)
412
+ req.send_request(options)
413
+ end
414
+
415
+ # Associate a wireless device with a FUOTA task.
416
+ #
417
+ # @option params [required, String] :id
418
+ # The ID of a FUOTA task.
419
+ #
420
+ # @option params [required, String] :wireless_device_id
421
+ # The ID of the wireless device.
422
+ #
423
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
424
+ #
425
+ # @example Request syntax with placeholder values
426
+ #
427
+ # resp = client.associate_wireless_device_with_fuota_task({
428
+ # id: "FuotaTaskId", # required
429
+ # wireless_device_id: "WirelessDeviceId", # required
430
+ # })
431
+ #
432
+ # @overload associate_wireless_device_with_fuota_task(params = {})
433
+ # @param [Hash] params ({})
434
+ def associate_wireless_device_with_fuota_task(params = {}, options = {})
435
+ req = build_request(:associate_wireless_device_with_fuota_task, params)
436
+ req.send_request(options)
437
+ end
438
+
439
+ # Associates a wireless device with a multicast group.
440
+ #
441
+ # @option params [required, String] :id
442
+ # The ID of the multicast group.
443
+ #
444
+ # @option params [required, String] :wireless_device_id
445
+ # The ID of the wireless device.
446
+ #
447
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
448
+ #
449
+ # @example Request syntax with placeholder values
450
+ #
451
+ # resp = client.associate_wireless_device_with_multicast_group({
452
+ # id: "MulticastGroupId", # required
453
+ # wireless_device_id: "WirelessDeviceId", # required
454
+ # })
455
+ #
456
+ # @overload associate_wireless_device_with_multicast_group(params = {})
457
+ # @param [Hash] params ({})
458
+ def associate_wireless_device_with_multicast_group(params = {}, options = {})
459
+ req = build_request(:associate_wireless_device_with_multicast_group, params)
460
+ req.send_request(options)
461
+ end
462
+
382
463
  # Associates a wireless device with a thing.
383
464
  #
384
465
  # @option params [required, String] :id
@@ -457,6 +538,26 @@ module Aws::IoTWireless
457
538
  req.send_request(options)
458
539
  end
459
540
 
541
+ # Cancels an existing multicast group session.
542
+ #
543
+ # @option params [required, String] :id
544
+ # The ID of the multicast group.
545
+ #
546
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
547
+ #
548
+ # @example Request syntax with placeholder values
549
+ #
550
+ # resp = client.cancel_multicast_group_session({
551
+ # id: "MulticastGroupId", # required
552
+ # })
553
+ #
554
+ # @overload cancel_multicast_group_session(params = {})
555
+ # @param [Hash] params ({})
556
+ def cancel_multicast_group_session(params = {}, options = {})
557
+ req = build_request(:cancel_multicast_group_session, params)
558
+ req.send_request(options)
559
+ end
560
+
460
561
  # Creates a new destination that maps a device message to an AWS IoT
461
562
  # rule.
462
563
  #
@@ -594,6 +695,132 @@ module Aws::IoTWireless
594
695
  req.send_request(options)
595
696
  end
596
697
 
698
+ # Creates a FUOTA task.
699
+ #
700
+ # @option params [String] :name
701
+ # The name of a FUOTA task.
702
+ #
703
+ # @option params [String] :description
704
+ # The description of the new resource.
705
+ #
706
+ # @option params [String] :client_request_token
707
+ # Each resource must have a unique client request token. If you try to
708
+ # create a new resource with the same token as a resource that already
709
+ # exists, an exception occurs. If you omit this value, AWS SDKs will
710
+ # automatically generate a unique client request.
711
+ #
712
+ # **A suitable default value is auto-generated.** You should normally
713
+ # not need to pass this option.**
714
+ #
715
+ # @option params [Types::LoRaWANFuotaTask] :lo_ra_wan
716
+ # The LoRaWAN information used with a FUOTA task.
717
+ #
718
+ # @option params [required, String] :firmware_update_image
719
+ # The S3 URI points to a firmware update image that is to be used with a
720
+ # FUOTA task.
721
+ #
722
+ # @option params [required, String] :firmware_update_role
723
+ # The firmware update role that is to be used with a FUOTA task.
724
+ #
725
+ # @option params [Array<Types::Tag>] :tags
726
+ # The tag to attach to the specified resource. Tags are metadata that
727
+ # you can use to manage a resource.
728
+ #
729
+ # @return [Types::CreateFuotaTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
730
+ #
731
+ # * {Types::CreateFuotaTaskResponse#arn #arn} => String
732
+ # * {Types::CreateFuotaTaskResponse#id #id} => String
733
+ #
734
+ # @example Request syntax with placeholder values
735
+ #
736
+ # resp = client.create_fuota_task({
737
+ # name: "FuotaTaskName",
738
+ # description: "Description",
739
+ # client_request_token: "ClientRequestToken",
740
+ # lo_ra_wan: {
741
+ # rf_region: "EU868", # accepts EU868, US915, AU915, AS923-1
742
+ # },
743
+ # firmware_update_image: "FirmwareUpdateImage", # required
744
+ # firmware_update_role: "FirmwareUpdateRole", # required
745
+ # tags: [
746
+ # {
747
+ # key: "TagKey", # required
748
+ # value: "TagValue", # required
749
+ # },
750
+ # ],
751
+ # })
752
+ #
753
+ # @example Response structure
754
+ #
755
+ # resp.arn #=> String
756
+ # resp.id #=> String
757
+ #
758
+ # @overload create_fuota_task(params = {})
759
+ # @param [Hash] params ({})
760
+ def create_fuota_task(params = {}, options = {})
761
+ req = build_request(:create_fuota_task, params)
762
+ req.send_request(options)
763
+ end
764
+
765
+ # Creates a multicast group.
766
+ #
767
+ # @option params [String] :name
768
+ # The name of the multicast group.
769
+ #
770
+ # @option params [String] :description
771
+ # The description of the multicast group.
772
+ #
773
+ # @option params [String] :client_request_token
774
+ # Each resource must have a unique client request token. If you try to
775
+ # create a new resource with the same token as a resource that already
776
+ # exists, an exception occurs. If you omit this value, AWS SDKs will
777
+ # automatically generate a unique client request.
778
+ #
779
+ # **A suitable default value is auto-generated.** You should normally
780
+ # not need to pass this option.**
781
+ #
782
+ # @option params [required, Types::LoRaWANMulticast] :lo_ra_wan
783
+ # The LoRaWAN information that is to be used with the multicast group.
784
+ #
785
+ # @option params [Array<Types::Tag>] :tags
786
+ # The tag to attach to the specified resource. Tags are metadata that
787
+ # you can use to manage a resource.
788
+ #
789
+ # @return [Types::CreateMulticastGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
790
+ #
791
+ # * {Types::CreateMulticastGroupResponse#arn #arn} => String
792
+ # * {Types::CreateMulticastGroupResponse#id #id} => String
793
+ #
794
+ # @example Request syntax with placeholder values
795
+ #
796
+ # resp = client.create_multicast_group({
797
+ # name: "MulticastGroupName",
798
+ # description: "Description",
799
+ # client_request_token: "ClientRequestToken",
800
+ # lo_ra_wan: { # required
801
+ # rf_region: "EU868", # accepts EU868, US915, AU915, AS923-1
802
+ # dl_class: "ClassB", # accepts ClassB, ClassC
803
+ # },
804
+ # tags: [
805
+ # {
806
+ # key: "TagKey", # required
807
+ # value: "TagValue", # required
808
+ # },
809
+ # ],
810
+ # })
811
+ #
812
+ # @example Response structure
813
+ #
814
+ # resp.arn #=> String
815
+ # resp.id #=> String
816
+ #
817
+ # @overload create_multicast_group(params = {})
818
+ # @param [Hash] params ({})
819
+ def create_multicast_group(params = {}, options = {})
820
+ req = build_request(:create_multicast_group, params)
821
+ req.send_request(options)
822
+ end
823
+
597
824
  # Creates a new service profile.
598
825
  #
599
826
  # @option params [String] :name
@@ -704,6 +931,7 @@ module Aws::IoTWireless
704
931
  # otaa_v1_0_x: {
705
932
  # app_key: "AppKey",
706
933
  # app_eui: "AppEui",
934
+ # gen_app_key: "GenAppKey",
707
935
  # },
708
936
  # abp_v1_1: {
709
937
  # dev_addr: "DevAddr",
@@ -721,6 +949,11 @@ module Aws::IoTWireless
721
949
  # app_s_key: "AppSKey",
722
950
  # },
723
951
  # },
952
+ # f_ports: {
953
+ # fuota: 1,
954
+ # multicast: 1,
955
+ # clock_sync: 1,
956
+ # },
724
957
  # },
725
958
  # tags: [
726
959
  # {
@@ -954,6 +1187,46 @@ module Aws::IoTWireless
954
1187
  req.send_request(options)
955
1188
  end
956
1189
 
1190
+ # Deletes a FUOTA task.
1191
+ #
1192
+ # @option params [required, String] :id
1193
+ # The ID of a FUOTA task.
1194
+ #
1195
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1196
+ #
1197
+ # @example Request syntax with placeholder values
1198
+ #
1199
+ # resp = client.delete_fuota_task({
1200
+ # id: "FuotaTaskId", # required
1201
+ # })
1202
+ #
1203
+ # @overload delete_fuota_task(params = {})
1204
+ # @param [Hash] params ({})
1205
+ def delete_fuota_task(params = {}, options = {})
1206
+ req = build_request(:delete_fuota_task, params)
1207
+ req.send_request(options)
1208
+ end
1209
+
1210
+ # Deletes a multicast group if it is not in use by a fuota task.
1211
+ #
1212
+ # @option params [required, String] :id
1213
+ # The ID of the multicast group.
1214
+ #
1215
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1216
+ #
1217
+ # @example Request syntax with placeholder values
1218
+ #
1219
+ # resp = client.delete_multicast_group({
1220
+ # id: "MulticastGroupId", # required
1221
+ # })
1222
+ #
1223
+ # @overload delete_multicast_group(params = {})
1224
+ # @param [Hash] params ({})
1225
+ def delete_multicast_group(params = {}, options = {})
1226
+ req = build_request(:delete_multicast_group, params)
1227
+ req.send_request(options)
1228
+ end
1229
+
957
1230
  # Deletes a service profile.
958
1231
  #
959
1232
  # @option params [required, String] :id
@@ -1081,6 +1354,78 @@ module Aws::IoTWireless
1081
1354
  req.send_request(options)
1082
1355
  end
1083
1356
 
1357
+ # Disassociates a multicast group from a fuota task.
1358
+ #
1359
+ # @option params [required, String] :id
1360
+ # The ID of a FUOTA task.
1361
+ #
1362
+ # @option params [required, String] :multicast_group_id
1363
+ # The ID of the multicast group.
1364
+ #
1365
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1366
+ #
1367
+ # @example Request syntax with placeholder values
1368
+ #
1369
+ # resp = client.disassociate_multicast_group_from_fuota_task({
1370
+ # id: "FuotaTaskId", # required
1371
+ # multicast_group_id: "MulticastGroupId", # required
1372
+ # })
1373
+ #
1374
+ # @overload disassociate_multicast_group_from_fuota_task(params = {})
1375
+ # @param [Hash] params ({})
1376
+ def disassociate_multicast_group_from_fuota_task(params = {}, options = {})
1377
+ req = build_request(:disassociate_multicast_group_from_fuota_task, params)
1378
+ req.send_request(options)
1379
+ end
1380
+
1381
+ # Disassociates a wireless device from a FUOTA task.
1382
+ #
1383
+ # @option params [required, String] :id
1384
+ # The ID of a FUOTA task.
1385
+ #
1386
+ # @option params [required, String] :wireless_device_id
1387
+ # The ID of the wireless device.
1388
+ #
1389
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1390
+ #
1391
+ # @example Request syntax with placeholder values
1392
+ #
1393
+ # resp = client.disassociate_wireless_device_from_fuota_task({
1394
+ # id: "FuotaTaskId", # required
1395
+ # wireless_device_id: "WirelessDeviceId", # required
1396
+ # })
1397
+ #
1398
+ # @overload disassociate_wireless_device_from_fuota_task(params = {})
1399
+ # @param [Hash] params ({})
1400
+ def disassociate_wireless_device_from_fuota_task(params = {}, options = {})
1401
+ req = build_request(:disassociate_wireless_device_from_fuota_task, params)
1402
+ req.send_request(options)
1403
+ end
1404
+
1405
+ # Disassociates a wireless device from a multicast group.
1406
+ #
1407
+ # @option params [required, String] :id
1408
+ # The ID of the multicast group.
1409
+ #
1410
+ # @option params [required, String] :wireless_device_id
1411
+ # The ID of the wireless device.
1412
+ #
1413
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1414
+ #
1415
+ # @example Request syntax with placeholder values
1416
+ #
1417
+ # resp = client.disassociate_wireless_device_from_multicast_group({
1418
+ # id: "MulticastGroupId", # required
1419
+ # wireless_device_id: "WirelessDeviceId", # required
1420
+ # })
1421
+ #
1422
+ # @overload disassociate_wireless_device_from_multicast_group(params = {})
1423
+ # @param [Hash] params ({})
1424
+ def disassociate_wireless_device_from_multicast_group(params = {}, options = {})
1425
+ req = build_request(:disassociate_wireless_device_from_multicast_group, params)
1426
+ req.send_request(options)
1427
+ end
1428
+
1084
1429
  # Disassociates a wireless device from its currently associated thing.
1085
1430
  #
1086
1431
  # @option params [required, String] :id
@@ -1229,6 +1574,49 @@ module Aws::IoTWireless
1229
1574
  req.send_request(options)
1230
1575
  end
1231
1576
 
1577
+ # Gets information about a FUOTA task.
1578
+ #
1579
+ # @option params [required, String] :id
1580
+ # The ID of a FUOTA task.
1581
+ #
1582
+ # @return [Types::GetFuotaTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1583
+ #
1584
+ # * {Types::GetFuotaTaskResponse#arn #arn} => String
1585
+ # * {Types::GetFuotaTaskResponse#id #id} => String
1586
+ # * {Types::GetFuotaTaskResponse#status #status} => String
1587
+ # * {Types::GetFuotaTaskResponse#name #name} => String
1588
+ # * {Types::GetFuotaTaskResponse#description #description} => String
1589
+ # * {Types::GetFuotaTaskResponse#lo_ra_wan #lo_ra_wan} => Types::LoRaWANFuotaTaskGetInfo
1590
+ # * {Types::GetFuotaTaskResponse#firmware_update_image #firmware_update_image} => String
1591
+ # * {Types::GetFuotaTaskResponse#firmware_update_role #firmware_update_role} => String
1592
+ # * {Types::GetFuotaTaskResponse#created_at #created_at} => Time
1593
+ #
1594
+ # @example Request syntax with placeholder values
1595
+ #
1596
+ # resp = client.get_fuota_task({
1597
+ # id: "FuotaTaskId", # required
1598
+ # })
1599
+ #
1600
+ # @example Response structure
1601
+ #
1602
+ # resp.arn #=> String
1603
+ # resp.id #=> String
1604
+ # resp.status #=> String, one of "Pending", "FuotaSession_Waiting", "In_FuotaSession", "FuotaDone", "Delete_Waiting"
1605
+ # resp.name #=> String
1606
+ # resp.description #=> String
1607
+ # resp.lo_ra_wan.rf_region #=> String
1608
+ # resp.lo_ra_wan.start_time #=> Time
1609
+ # resp.firmware_update_image #=> String
1610
+ # resp.firmware_update_role #=> String
1611
+ # resp.created_at #=> Time
1612
+ #
1613
+ # @overload get_fuota_task(params = {})
1614
+ # @param [Hash] params ({})
1615
+ def get_fuota_task(params = {}, options = {})
1616
+ req = build_request(:get_fuota_task, params)
1617
+ req.send_request(options)
1618
+ end
1619
+
1232
1620
  # Returns current default log levels or log levels by resource types.
1233
1621
  # Based on resource types, log levels can be for wireless device log
1234
1622
  # options or wireless gateway log options.
@@ -1262,19 +1650,89 @@ module Aws::IoTWireless
1262
1650
  req.send_request(options)
1263
1651
  end
1264
1652
 
1265
- # Gets information about a partner account. If `PartnerAccountId` and
1266
- # `PartnerType` are `null`, returns all partner accounts.
1267
- #
1268
- # @option params [required, String] :partner_account_id
1269
- # The partner account ID to disassociate from the AWS account.
1653
+ # Gets information about a multicast group.
1270
1654
  #
1271
- # @option params [required, String] :partner_type
1272
- # The partner type.
1655
+ # @option params [required, String] :id
1656
+ # The ID of the multicast group.
1273
1657
  #
1274
- # @return [Types::GetPartnerAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1658
+ # @return [Types::GetMulticastGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1275
1659
  #
1276
- # * {Types::GetPartnerAccountResponse#sidewalk #sidewalk} => Types::SidewalkAccountInfoWithFingerprint
1277
- # * {Types::GetPartnerAccountResponse#account_linked #account_linked} => Boolean
1660
+ # * {Types::GetMulticastGroupResponse#arn #arn} => String
1661
+ # * {Types::GetMulticastGroupResponse#id #id} => String
1662
+ # * {Types::GetMulticastGroupResponse#name #name} => String
1663
+ # * {Types::GetMulticastGroupResponse#description #description} => String
1664
+ # * {Types::GetMulticastGroupResponse#status #status} => String
1665
+ # * {Types::GetMulticastGroupResponse#lo_ra_wan #lo_ra_wan} => Types::LoRaWANMulticastGet
1666
+ # * {Types::GetMulticastGroupResponse#created_at #created_at} => Time
1667
+ #
1668
+ # @example Request syntax with placeholder values
1669
+ #
1670
+ # resp = client.get_multicast_group({
1671
+ # id: "MulticastGroupId", # required
1672
+ # })
1673
+ #
1674
+ # @example Response structure
1675
+ #
1676
+ # resp.arn #=> String
1677
+ # resp.id #=> String
1678
+ # resp.name #=> String
1679
+ # resp.description #=> String
1680
+ # resp.status #=> String
1681
+ # resp.lo_ra_wan.rf_region #=> String, one of "EU868", "US915", "AU915", "AS923-1"
1682
+ # resp.lo_ra_wan.dl_class #=> String, one of "ClassB", "ClassC"
1683
+ # resp.lo_ra_wan.number_of_devices_requested #=> Integer
1684
+ # resp.lo_ra_wan.number_of_devices_in_group #=> Integer
1685
+ # resp.created_at #=> Time
1686
+ #
1687
+ # @overload get_multicast_group(params = {})
1688
+ # @param [Hash] params ({})
1689
+ def get_multicast_group(params = {}, options = {})
1690
+ req = build_request(:get_multicast_group, params)
1691
+ req.send_request(options)
1692
+ end
1693
+
1694
+ # Gets information about a multicast group session.
1695
+ #
1696
+ # @option params [required, String] :id
1697
+ # The ID of the multicast group.
1698
+ #
1699
+ # @return [Types::GetMulticastGroupSessionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1700
+ #
1701
+ # * {Types::GetMulticastGroupSessionResponse#lo_ra_wan #lo_ra_wan} => Types::LoRaWANMulticastSession
1702
+ #
1703
+ # @example Request syntax with placeholder values
1704
+ #
1705
+ # resp = client.get_multicast_group_session({
1706
+ # id: "MulticastGroupId", # required
1707
+ # })
1708
+ #
1709
+ # @example Response structure
1710
+ #
1711
+ # resp.lo_ra_wan.dl_dr #=> Integer
1712
+ # resp.lo_ra_wan.dl_freq #=> Integer
1713
+ # resp.lo_ra_wan.session_start_time #=> Time
1714
+ # resp.lo_ra_wan.session_timeout #=> Integer
1715
+ #
1716
+ # @overload get_multicast_group_session(params = {})
1717
+ # @param [Hash] params ({})
1718
+ def get_multicast_group_session(params = {}, options = {})
1719
+ req = build_request(:get_multicast_group_session, params)
1720
+ req.send_request(options)
1721
+ end
1722
+
1723
+ # Gets information about a partner account. If `PartnerAccountId` and
1724
+ # `PartnerType` are `null`, returns all partner accounts.
1725
+ #
1726
+ # @option params [required, String] :partner_account_id
1727
+ # The partner account ID to disassociate from the AWS account.
1728
+ #
1729
+ # @option params [required, String] :partner_type
1730
+ # The partner type.
1731
+ #
1732
+ # @return [Types::GetPartnerAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1733
+ #
1734
+ # * {Types::GetPartnerAccountResponse#sidewalk #sidewalk} => Types::SidewalkAccountInfoWithFingerprint
1735
+ # * {Types::GetPartnerAccountResponse#account_linked #account_linked} => Boolean
1278
1736
  #
1279
1737
  # @example Request syntax with placeholder values
1280
1738
  #
@@ -1297,6 +1755,44 @@ module Aws::IoTWireless
1297
1755
  req.send_request(options)
1298
1756
  end
1299
1757
 
1758
+ # Get the event configuration for a particular resource identifier.
1759
+ #
1760
+ # @option params [required, String] :identifier
1761
+ # Resource identifier to opt in for event messaging.
1762
+ #
1763
+ # @option params [required, String] :identifier_type
1764
+ # Identifier type of the particular resource identifier for event
1765
+ # configuration.
1766
+ #
1767
+ # @option params [String] :partner_type
1768
+ # Partner type of the resource if the identifier type is
1769
+ # PartnerAccountId.
1770
+ #
1771
+ # @return [Types::GetResourceEventConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1772
+ #
1773
+ # * {Types::GetResourceEventConfigurationResponse#device_registration_state #device_registration_state} => Types::DeviceRegistrationStateEventConfiguration
1774
+ # * {Types::GetResourceEventConfigurationResponse#proximity #proximity} => Types::ProximityEventConfiguration
1775
+ #
1776
+ # @example Request syntax with placeholder values
1777
+ #
1778
+ # resp = client.get_resource_event_configuration({
1779
+ # identifier: "Identifier", # required
1780
+ # identifier_type: "PartnerAccountId", # required, accepts PartnerAccountId
1781
+ # partner_type: "Sidewalk", # accepts Sidewalk
1782
+ # })
1783
+ #
1784
+ # @example Response structure
1785
+ #
1786
+ # resp.device_registration_state.sidewalk.amazon_id_event_topic #=> String, one of "Enabled", "Disabled"
1787
+ # resp.proximity.sidewalk.amazon_id_event_topic #=> String, one of "Enabled", "Disabled"
1788
+ #
1789
+ # @overload get_resource_event_configuration(params = {})
1790
+ # @param [Hash] params ({})
1791
+ def get_resource_event_configuration(params = {}, options = {})
1792
+ req = build_request(:get_resource_event_configuration, params)
1793
+ req.send_request(options)
1794
+ end
1795
+
1300
1796
  # Fetches the log-level override, if any, for a given resource-ID and
1301
1797
  # resource-type. It can be used for a wireless device or a wireless
1302
1798
  # gateway.
@@ -1461,6 +1957,7 @@ module Aws::IoTWireless
1461
1957
  # resp.lo_ra_wan.otaa_v1_1.join_eui #=> String
1462
1958
  # resp.lo_ra_wan.otaa_v1_0_x.app_key #=> String
1463
1959
  # resp.lo_ra_wan.otaa_v1_0_x.app_eui #=> String
1960
+ # resp.lo_ra_wan.otaa_v1_0_x.gen_app_key #=> String
1464
1961
  # resp.lo_ra_wan.abp_v1_1.dev_addr #=> String
1465
1962
  # resp.lo_ra_wan.abp_v1_1.session_keys.f_nwk_s_int_key #=> String
1466
1963
  # resp.lo_ra_wan.abp_v1_1.session_keys.s_nwk_s_int_key #=> String
@@ -1469,6 +1966,9 @@ module Aws::IoTWireless
1469
1966
  # resp.lo_ra_wan.abp_v1_0_x.dev_addr #=> String
1470
1967
  # resp.lo_ra_wan.abp_v1_0_x.session_keys.nwk_s_key #=> String
1471
1968
  # resp.lo_ra_wan.abp_v1_0_x.session_keys.app_s_key #=> String
1969
+ # resp.lo_ra_wan.f_ports.fuota #=> Integer
1970
+ # resp.lo_ra_wan.f_ports.multicast #=> Integer
1971
+ # resp.lo_ra_wan.f_ports.clock_sync #=> Integer
1472
1972
  # resp.sidewalk.amazon_id #=> String
1473
1973
  # resp.sidewalk.sidewalk_id #=> String
1474
1974
  # resp.sidewalk.sidewalk_manufacturing_sn #=> String
@@ -1820,6 +2320,125 @@ module Aws::IoTWireless
1820
2320
  req.send_request(options)
1821
2321
  end
1822
2322
 
2323
+ # Lists the FUOTA tasks registered to your AWS account.
2324
+ #
2325
+ # @option params [String] :next_token
2326
+ # To retrieve the next set of results, the `nextToken` value from a
2327
+ # previous response; otherwise **null** to receive the first set of
2328
+ # results.
2329
+ #
2330
+ # @option params [Integer] :max_results
2331
+ # The maximum number of results to return in this operation.
2332
+ #
2333
+ # @return [Types::ListFuotaTasksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2334
+ #
2335
+ # * {Types::ListFuotaTasksResponse#next_token #next_token} => String
2336
+ # * {Types::ListFuotaTasksResponse#fuota_task_list #fuota_task_list} => Array&lt;Types::FuotaTask&gt;
2337
+ #
2338
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2339
+ #
2340
+ # @example Request syntax with placeholder values
2341
+ #
2342
+ # resp = client.list_fuota_tasks({
2343
+ # next_token: "NextToken",
2344
+ # max_results: 1,
2345
+ # })
2346
+ #
2347
+ # @example Response structure
2348
+ #
2349
+ # resp.next_token #=> String
2350
+ # resp.fuota_task_list #=> Array
2351
+ # resp.fuota_task_list[0].id #=> String
2352
+ # resp.fuota_task_list[0].arn #=> String
2353
+ # resp.fuota_task_list[0].name #=> String
2354
+ #
2355
+ # @overload list_fuota_tasks(params = {})
2356
+ # @param [Hash] params ({})
2357
+ def list_fuota_tasks(params = {}, options = {})
2358
+ req = build_request(:list_fuota_tasks, params)
2359
+ req.send_request(options)
2360
+ end
2361
+
2362
+ # Lists the multicast groups registered to your AWS account.
2363
+ #
2364
+ # @option params [String] :next_token
2365
+ # To retrieve the next set of results, the `nextToken` value from a
2366
+ # previous response; otherwise **null** to receive the first set of
2367
+ # results.
2368
+ #
2369
+ # @option params [Integer] :max_results
2370
+ # The maximum number of results to return in this operation.
2371
+ #
2372
+ # @return [Types::ListMulticastGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2373
+ #
2374
+ # * {Types::ListMulticastGroupsResponse#next_token #next_token} => String
2375
+ # * {Types::ListMulticastGroupsResponse#multicast_group_list #multicast_group_list} => Array&lt;Types::MulticastGroup&gt;
2376
+ #
2377
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2378
+ #
2379
+ # @example Request syntax with placeholder values
2380
+ #
2381
+ # resp = client.list_multicast_groups({
2382
+ # next_token: "NextToken",
2383
+ # max_results: 1,
2384
+ # })
2385
+ #
2386
+ # @example Response structure
2387
+ #
2388
+ # resp.next_token #=> String
2389
+ # resp.multicast_group_list #=> Array
2390
+ # resp.multicast_group_list[0].id #=> String
2391
+ # resp.multicast_group_list[0].arn #=> String
2392
+ # resp.multicast_group_list[0].name #=> String
2393
+ #
2394
+ # @overload list_multicast_groups(params = {})
2395
+ # @param [Hash] params ({})
2396
+ def list_multicast_groups(params = {}, options = {})
2397
+ req = build_request(:list_multicast_groups, params)
2398
+ req.send_request(options)
2399
+ end
2400
+
2401
+ # List all multicast groups associated with a fuota task.
2402
+ #
2403
+ # @option params [required, String] :id
2404
+ # The ID of a FUOTA task.
2405
+ #
2406
+ # @option params [String] :next_token
2407
+ # To retrieve the next set of results, the `nextToken` value from a
2408
+ # previous response; otherwise **null** to receive the first set of
2409
+ # results.
2410
+ #
2411
+ # @option params [Integer] :max_results
2412
+ # The maximum number of results to return in this operation.
2413
+ #
2414
+ # @return [Types::ListMulticastGroupsByFuotaTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2415
+ #
2416
+ # * {Types::ListMulticastGroupsByFuotaTaskResponse#next_token #next_token} => String
2417
+ # * {Types::ListMulticastGroupsByFuotaTaskResponse#multicast_group_list #multicast_group_list} => Array&lt;Types::MulticastGroupByFuotaTask&gt;
2418
+ #
2419
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2420
+ #
2421
+ # @example Request syntax with placeholder values
2422
+ #
2423
+ # resp = client.list_multicast_groups_by_fuota_task({
2424
+ # id: "FuotaTaskId", # required
2425
+ # next_token: "NextToken",
2426
+ # max_results: 1,
2427
+ # })
2428
+ #
2429
+ # @example Response structure
2430
+ #
2431
+ # resp.next_token #=> String
2432
+ # resp.multicast_group_list #=> Array
2433
+ # resp.multicast_group_list[0].id #=> String
2434
+ #
2435
+ # @overload list_multicast_groups_by_fuota_task(params = {})
2436
+ # @param [Hash] params ({})
2437
+ def list_multicast_groups_by_fuota_task(params = {}, options = {})
2438
+ req = build_request(:list_multicast_groups_by_fuota_task, params)
2439
+ req.send_request(options)
2440
+ end
2441
+
1823
2442
  # Lists the partner accounts associated with your AWS account.
1824
2443
  #
1825
2444
  # @option params [String] :next_token
@@ -1949,6 +2568,12 @@ module Aws::IoTWireless
1949
2568
  # A filter to list only the wireless devices that use this wireless
1950
2569
  # device type.
1951
2570
  #
2571
+ # @option params [String] :fuota_task_id
2572
+ # The ID of a FUOTA task.
2573
+ #
2574
+ # @option params [String] :multicast_group_id
2575
+ # The ID of the multicast group.
2576
+ #
1952
2577
  # @return [Types::ListWirelessDevicesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1953
2578
  #
1954
2579
  # * {Types::ListWirelessDevicesResponse#next_token #next_token} => String
@@ -1965,6 +2590,8 @@ module Aws::IoTWireless
1965
2590
  # device_profile_id: "DeviceProfileId",
1966
2591
  # service_profile_id: "ServiceProfileId",
1967
2592
  # wireless_device_type: "Sidewalk", # accepts Sidewalk, LoRaWAN
2593
+ # fuota_task_id: "FuotaTaskId",
2594
+ # multicast_group_id: "MulticastGroupId",
1968
2595
  # })
1969
2596
  #
1970
2597
  # @example Response structure
@@ -1984,6 +2611,9 @@ module Aws::IoTWireless
1984
2611
  # resp.wireless_device_list[0].sidewalk.device_certificates #=> Array
1985
2612
  # resp.wireless_device_list[0].sidewalk.device_certificates[0].signing_alg #=> String, one of "Ed25519", "P256r1"
1986
2613
  # resp.wireless_device_list[0].sidewalk.device_certificates[0].value #=> String
2614
+ # resp.wireless_device_list[0].fuota_device_status #=> String, one of "Initial", "Package_Not_Supported", "FragAlgo_unsupported", "Not_enough_memory", "FragIndex_unsupported", "Wrong_descriptor", "SessionCnt_replay", "MissingFrag", "MemoryError", "MICError", "Successful"
2615
+ # resp.wireless_device_list[0].multicast_device_status #=> String
2616
+ # resp.wireless_device_list[0].mc_group_id #=> Integer
1987
2617
  #
1988
2618
  # @overload list_wireless_devices(params = {})
1989
2619
  # @param [Hash] params ({})
@@ -2164,6 +2794,44 @@ module Aws::IoTWireless
2164
2794
  req.send_request(options)
2165
2795
  end
2166
2796
 
2797
+ # Sends the specified data to a multicast group.
2798
+ #
2799
+ # @option params [required, String] :id
2800
+ # The ID of the multicast group.
2801
+ #
2802
+ # @option params [required, String] :payload_data
2803
+ # The binary to be sent to the end device, encoded in base64.
2804
+ #
2805
+ # @option params [required, Types::MulticastWirelessMetadata] :wireless_metadata
2806
+ # Wireless metadata that is to be sent to multicast group.
2807
+ #
2808
+ # @return [Types::SendDataToMulticastGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2809
+ #
2810
+ # * {Types::SendDataToMulticastGroupResponse#message_id #message_id} => String
2811
+ #
2812
+ # @example Request syntax with placeholder values
2813
+ #
2814
+ # resp = client.send_data_to_multicast_group({
2815
+ # id: "MulticastGroupId", # required
2816
+ # payload_data: "PayloadData", # required
2817
+ # wireless_metadata: { # required
2818
+ # lo_ra_wan: {
2819
+ # f_port: 1,
2820
+ # },
2821
+ # },
2822
+ # })
2823
+ #
2824
+ # @example Response structure
2825
+ #
2826
+ # resp.message_id #=> String
2827
+ #
2828
+ # @overload send_data_to_multicast_group(params = {})
2829
+ # @param [Hash] params ({})
2830
+ def send_data_to_multicast_group(params = {}, options = {})
2831
+ req = build_request(:send_data_to_multicast_group, params)
2832
+ req.send_request(options)
2833
+ end
2834
+
2167
2835
  # Sends a decrypted application data frame to a device.
2168
2836
  #
2169
2837
  # @option params [required, String] :id
@@ -2211,6 +2879,133 @@ module Aws::IoTWireless
2211
2879
  req.send_request(options)
2212
2880
  end
2213
2881
 
2882
+ # Starts a bulk association of all qualifying wireless devices with a
2883
+ # multicast group.
2884
+ #
2885
+ # @option params [required, String] :id
2886
+ # The ID of the multicast group.
2887
+ #
2888
+ # @option params [String] :query_string
2889
+ # Query string used to search for wireless devices as part of the bulk
2890
+ # associate and disassociate process.
2891
+ #
2892
+ # @option params [Array<Types::Tag>] :tags
2893
+ # The tag to attach to the specified resource. Tags are metadata that
2894
+ # you can use to manage a resource.
2895
+ #
2896
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2897
+ #
2898
+ # @example Request syntax with placeholder values
2899
+ #
2900
+ # resp = client.start_bulk_associate_wireless_device_with_multicast_group({
2901
+ # id: "MulticastGroupId", # required
2902
+ # query_string: "QueryString",
2903
+ # tags: [
2904
+ # {
2905
+ # key: "TagKey", # required
2906
+ # value: "TagValue", # required
2907
+ # },
2908
+ # ],
2909
+ # })
2910
+ #
2911
+ # @overload start_bulk_associate_wireless_device_with_multicast_group(params = {})
2912
+ # @param [Hash] params ({})
2913
+ def start_bulk_associate_wireless_device_with_multicast_group(params = {}, options = {})
2914
+ req = build_request(:start_bulk_associate_wireless_device_with_multicast_group, params)
2915
+ req.send_request(options)
2916
+ end
2917
+
2918
+ # Starts a bulk disassociatin of all qualifying wireless devices from a
2919
+ # multicast group.
2920
+ #
2921
+ # @option params [required, String] :id
2922
+ # The ID of the multicast group.
2923
+ #
2924
+ # @option params [String] :query_string
2925
+ # Query string used to search for wireless devices as part of the bulk
2926
+ # associate and disassociate process.
2927
+ #
2928
+ # @option params [Array<Types::Tag>] :tags
2929
+ # The tag to attach to the specified resource. Tags are metadata that
2930
+ # you can use to manage a resource.
2931
+ #
2932
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2933
+ #
2934
+ # @example Request syntax with placeholder values
2935
+ #
2936
+ # resp = client.start_bulk_disassociate_wireless_device_from_multicast_group({
2937
+ # id: "MulticastGroupId", # required
2938
+ # query_string: "QueryString",
2939
+ # tags: [
2940
+ # {
2941
+ # key: "TagKey", # required
2942
+ # value: "TagValue", # required
2943
+ # },
2944
+ # ],
2945
+ # })
2946
+ #
2947
+ # @overload start_bulk_disassociate_wireless_device_from_multicast_group(params = {})
2948
+ # @param [Hash] params ({})
2949
+ def start_bulk_disassociate_wireless_device_from_multicast_group(params = {}, options = {})
2950
+ req = build_request(:start_bulk_disassociate_wireless_device_from_multicast_group, params)
2951
+ req.send_request(options)
2952
+ end
2953
+
2954
+ # Starts a FUOTA task.
2955
+ #
2956
+ # @option params [required, String] :id
2957
+ # The ID of a FUOTA task.
2958
+ #
2959
+ # @option params [Types::LoRaWANStartFuotaTask] :lo_ra_wan
2960
+ # The LoRaWAN information used to start a FUOTA task.
2961
+ #
2962
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2963
+ #
2964
+ # @example Request syntax with placeholder values
2965
+ #
2966
+ # resp = client.start_fuota_task({
2967
+ # id: "FuotaTaskId", # required
2968
+ # lo_ra_wan: {
2969
+ # start_time: Time.now,
2970
+ # },
2971
+ # })
2972
+ #
2973
+ # @overload start_fuota_task(params = {})
2974
+ # @param [Hash] params ({})
2975
+ def start_fuota_task(params = {}, options = {})
2976
+ req = build_request(:start_fuota_task, params)
2977
+ req.send_request(options)
2978
+ end
2979
+
2980
+ # Starts a multicast group session.
2981
+ #
2982
+ # @option params [required, String] :id
2983
+ # The ID of the multicast group.
2984
+ #
2985
+ # @option params [required, Types::LoRaWANMulticastSession] :lo_ra_wan
2986
+ # The LoRaWAN information used with the multicast session.
2987
+ #
2988
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2989
+ #
2990
+ # @example Request syntax with placeholder values
2991
+ #
2992
+ # resp = client.start_multicast_group_session({
2993
+ # id: "MulticastGroupId", # required
2994
+ # lo_ra_wan: { # required
2995
+ # dl_dr: 1,
2996
+ # dl_freq: 1,
2997
+ # session_start_time: Time.now,
2998
+ # session_timeout: 1,
2999
+ # },
3000
+ # })
3001
+ #
3002
+ # @overload start_multicast_group_session(params = {})
3003
+ # @param [Hash] params ({})
3004
+ def start_multicast_group_session(params = {}, options = {})
3005
+ req = build_request(:start_multicast_group_session, params)
3006
+ req.send_request(options)
3007
+ end
3008
+
2214
3009
  # Adds a tag to a resource.
2215
3010
  #
2216
3011
  # @option params [required, String] :resource_arn
@@ -2328,6 +3123,49 @@ module Aws::IoTWireless
2328
3123
  req.send_request(options)
2329
3124
  end
2330
3125
 
3126
+ # Updates properties of a FUOTA task.
3127
+ #
3128
+ # @option params [required, String] :id
3129
+ # The ID of a FUOTA task.
3130
+ #
3131
+ # @option params [String] :name
3132
+ # The name of a FUOTA task.
3133
+ #
3134
+ # @option params [String] :description
3135
+ # The description of the new resource.
3136
+ #
3137
+ # @option params [Types::LoRaWANFuotaTask] :lo_ra_wan
3138
+ # The LoRaWAN information used with a FUOTA task.
3139
+ #
3140
+ # @option params [String] :firmware_update_image
3141
+ # The S3 URI points to a firmware update image that is to be used with a
3142
+ # FUOTA task.
3143
+ #
3144
+ # @option params [String] :firmware_update_role
3145
+ # The firmware update role that is to be used with a FUOTA task.
3146
+ #
3147
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3148
+ #
3149
+ # @example Request syntax with placeholder values
3150
+ #
3151
+ # resp = client.update_fuota_task({
3152
+ # id: "FuotaTaskId", # required
3153
+ # name: "FuotaTaskName",
3154
+ # description: "Description",
3155
+ # lo_ra_wan: {
3156
+ # rf_region: "EU868", # accepts EU868, US915, AU915, AS923-1
3157
+ # },
3158
+ # firmware_update_image: "FirmwareUpdateImage",
3159
+ # firmware_update_role: "FirmwareUpdateRole",
3160
+ # })
3161
+ #
3162
+ # @overload update_fuota_task(params = {})
3163
+ # @param [Hash] params ({})
3164
+ def update_fuota_task(params = {}, options = {})
3165
+ req = build_request(:update_fuota_task, params)
3166
+ req.send_request(options)
3167
+ end
3168
+
2331
3169
  # Set default log level, or log levels by resource types. This can be
2332
3170
  # for wireless device log options or wireless gateways log options and
2333
3171
  # is used to control the log messages that'll be displayed in
@@ -2381,6 +3219,41 @@ module Aws::IoTWireless
2381
3219
  req.send_request(options)
2382
3220
  end
2383
3221
 
3222
+ # Updates properties of a multicast group session.
3223
+ #
3224
+ # @option params [required, String] :id
3225
+ # The ID of the multicast group.
3226
+ #
3227
+ # @option params [String] :name
3228
+ # The name of the multicast group.
3229
+ #
3230
+ # @option params [String] :description
3231
+ # The description of the new resource.
3232
+ #
3233
+ # @option params [Types::LoRaWANMulticast] :lo_ra_wan
3234
+ # The LoRaWAN information that is to be used with the multicast group.
3235
+ #
3236
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3237
+ #
3238
+ # @example Request syntax with placeholder values
3239
+ #
3240
+ # resp = client.update_multicast_group({
3241
+ # id: "MulticastGroupId", # required
3242
+ # name: "MulticastGroupName",
3243
+ # description: "Description",
3244
+ # lo_ra_wan: {
3245
+ # rf_region: "EU868", # accepts EU868, US915, AU915, AS923-1
3246
+ # dl_class: "ClassB", # accepts ClassB, ClassC
3247
+ # },
3248
+ # })
3249
+ #
3250
+ # @overload update_multicast_group(params = {})
3251
+ # @param [Hash] params ({})
3252
+ def update_multicast_group(params = {}, options = {})
3253
+ req = build_request(:update_multicast_group, params)
3254
+ req.send_request(options)
3255
+ end
3256
+
2384
3257
  # Updates properties of a partner account.
2385
3258
  #
2386
3259
  # @option params [required, Types::SidewalkUpdateAccount] :sidewalk
@@ -2411,6 +3284,52 @@ module Aws::IoTWireless
2411
3284
  req.send_request(options)
2412
3285
  end
2413
3286
 
3287
+ # Update the event configuration for a particular resource identifier.
3288
+ #
3289
+ # @option params [required, String] :identifier
3290
+ # Resource identifier to opt in for event messaging.
3291
+ #
3292
+ # @option params [required, String] :identifier_type
3293
+ # Identifier type of the particular resource identifier for event
3294
+ # configuration.
3295
+ #
3296
+ # @option params [String] :partner_type
3297
+ # Partner type of the resource if the identifier type is
3298
+ # PartnerAccountId
3299
+ #
3300
+ # @option params [Types::DeviceRegistrationStateEventConfiguration] :device_registration_state
3301
+ # Event configuration for the device registration state event
3302
+ #
3303
+ # @option params [Types::ProximityEventConfiguration] :proximity
3304
+ # Event configuration for the Proximity event
3305
+ #
3306
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3307
+ #
3308
+ # @example Request syntax with placeholder values
3309
+ #
3310
+ # resp = client.update_resource_event_configuration({
3311
+ # identifier: "Identifier", # required
3312
+ # identifier_type: "PartnerAccountId", # required, accepts PartnerAccountId
3313
+ # partner_type: "Sidewalk", # accepts Sidewalk
3314
+ # device_registration_state: {
3315
+ # sidewalk: {
3316
+ # amazon_id_event_topic: "Enabled", # accepts Enabled, Disabled
3317
+ # },
3318
+ # },
3319
+ # proximity: {
3320
+ # sidewalk: {
3321
+ # amazon_id_event_topic: "Enabled", # accepts Enabled, Disabled
3322
+ # },
3323
+ # },
3324
+ # })
3325
+ #
3326
+ # @overload update_resource_event_configuration(params = {})
3327
+ # @param [Hash] params ({})
3328
+ def update_resource_event_configuration(params = {}, options = {})
3329
+ req = build_request(:update_resource_event_configuration, params)
3330
+ req.send_request(options)
3331
+ end
3332
+
2414
3333
  # Updates properties of a wireless device.
2415
3334
  #
2416
3335
  # @option params [required, String] :id
@@ -2502,7 +3421,7 @@ module Aws::IoTWireless
2502
3421
  params: params,
2503
3422
  config: config)
2504
3423
  context[:gem_name] = 'aws-sdk-iotwireless'
2505
- context[:gem_version] = '1.12.0'
3424
+ context[:gem_version] = '1.16.0'
2506
3425
  Seahorse::Client::Request.new(handlers, context)
2507
3426
  end
2508
3427