aws-sdk-iot 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e3c571548bd1eb6c0c97cd73cb3892e7a5ceca19
4
- data.tar.gz: 7420c89f19c0178ac5ee288eb7749cbadc1bfe25
3
+ metadata.gz: 7b483cded3c1d0ab4fad280cf0a6b9a58bc45071
4
+ data.tar.gz: b5894c3229bcd8c069b05a9298b8f73304a61097
5
5
  SHA512:
6
- metadata.gz: 4346acafa0186e86e8f1c422a38f3d13cd0ebb34247d90982280f6c3d774d25060d86a578eb6bfa2231a81b1d01285df74a11767b36edffd45933afa7b9c7d68
7
- data.tar.gz: 34bb5b27d44851a14353810d6d2f1e1cd8d70f8a557fd34432a8cc35fb43a8ae79b695c771ae03eee6a6bcb19c8aeae8fc37b9f9de2b5138d2ddfa786cd678f6
6
+ metadata.gz: 06b0cc94b47d9f3abce6dd98d9a16d2c90bb1ce0396c69b209cc43d7b563077f2cc781686c21062db8692ec73487a783e57a934a697233b9f3ac633442126b49
7
+ data.tar.gz: bee0b0d204bf9319c1374cb82f2e7d6e7d2ef86e0302cd03fb2a8351b55bc687669968052b89d57f4bdba299ba238736ed6ba4e3c4bdf240e0996472914dff68
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-iot/customizations'
42
42
  # @service
43
43
  module Aws::IoT
44
44
 
45
- GEM_VERSION = '1.10.0'
45
+ GEM_VERSION = '1.11.0'
46
46
 
47
47
  end
@@ -317,6 +317,33 @@ module Aws::IoT
317
317
  req.send_request(options)
318
318
  end
319
319
 
320
+ # Associates a Device Defender security profile with a thing group or
321
+ # with this account. Each thing group or account can have up to five
322
+ # security profiles associated with it.
323
+ #
324
+ # @option params [required, String] :security_profile_name
325
+ # The security profile that is attached.
326
+ #
327
+ # @option params [required, String] :security_profile_target_arn
328
+ # The ARN of the target (thing group) to which the security profile is
329
+ # attached.
330
+ #
331
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
332
+ #
333
+ # @example Request syntax with placeholder values
334
+ #
335
+ # resp = client.attach_security_profile({
336
+ # security_profile_name: "SecurityProfileName", # required
337
+ # security_profile_target_arn: "SecurityProfileTargetArn", # required
338
+ # })
339
+ #
340
+ # @overload attach_security_profile(params = {})
341
+ # @param [Hash] params ({})
342
+ def attach_security_profile(params = {}, options = {})
343
+ req = build_request(:attach_security_profile, params)
344
+ req.send_request(options)
345
+ end
346
+
320
347
  # Attaches the specified principal to the specified thing.
321
348
  #
322
349
  # @option params [required, String] :thing_name
@@ -341,6 +368,29 @@ module Aws::IoT
341
368
  req.send_request(options)
342
369
  end
343
370
 
371
+ # Cancels an audit that is in progress. The audit can be either
372
+ # scheduled or on-demand. If the audit is not in progress, an
373
+ # "InvalidRequestException" occurs.
374
+ #
375
+ # @option params [required, String] :task_id
376
+ # The ID of the audit you want to cancel. You can only cancel an audit
377
+ # that is "IN\_PROGRESS".
378
+ #
379
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
380
+ #
381
+ # @example Request syntax with placeholder values
382
+ #
383
+ # resp = client.cancel_audit_task({
384
+ # task_id: "AuditTaskId", # required
385
+ # })
386
+ #
387
+ # @overload cancel_audit_task(params = {})
388
+ # @param [Hash] params ({})
389
+ def cancel_audit_task(params = {}, options = {})
390
+ req = build_request(:cancel_audit_task, params)
391
+ req.send_request(options)
392
+ end
393
+
344
394
  # Cancels a pending transfer for the specified certificate.
345
395
  #
346
396
  # **Note** Only the transfer source account can use this operation to
@@ -951,6 +1001,122 @@ module Aws::IoT
951
1001
  req.send_request(options)
952
1002
  end
953
1003
 
1004
+ # Creates a scheduled audit that is run at a specified time interval.
1005
+ #
1006
+ # @option params [required, String] :frequency
1007
+ # How often the scheduled audit takes place. Can be one of "DAILY",
1008
+ # "WEEKLY", "BIWEEKLY" or "MONTHLY". The actual start time of each
1009
+ # audit is determined by the system.
1010
+ #
1011
+ # @option params [String] :day_of_month
1012
+ # The day of the month on which the scheduled audit takes place. Can be
1013
+ # "1" through "31" or "LAST". This field is required if the
1014
+ # "frequency" parameter is set to "MONTHLY". If days 29-31 are
1015
+ # specified, and the month does not have that many days, the audit takes
1016
+ # place on the "LAST" day of the month.
1017
+ #
1018
+ # @option params [String] :day_of_week
1019
+ # The day of the week on which the scheduled audit takes place. Can be
1020
+ # one of "SUN", "MON", "TUE", "WED", "THU", "FRI" or
1021
+ # "SAT". This field is required if the "frequency" parameter is set
1022
+ # to "WEEKLY" or "BIWEEKLY".
1023
+ #
1024
+ # @option params [required, Array<String>] :target_check_names
1025
+ # Which checks are performed during the scheduled audit. Checks must be
1026
+ # enabled for your account. (Use `DescribeAccountAuditConfiguration` to
1027
+ # see the list of all checks including those that are enabled or
1028
+ # `UpdateAccountAuditConfiguration` to select which checks are enabled.)
1029
+ #
1030
+ # @option params [required, String] :scheduled_audit_name
1031
+ # The name you want to give to the scheduled audit. (Max. 128 chars)
1032
+ #
1033
+ # @return [Types::CreateScheduledAuditResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1034
+ #
1035
+ # * {Types::CreateScheduledAuditResponse#scheduled_audit_arn #scheduled_audit_arn} => String
1036
+ #
1037
+ # @example Request syntax with placeholder values
1038
+ #
1039
+ # resp = client.create_scheduled_audit({
1040
+ # frequency: "DAILY", # required, accepts DAILY, WEEKLY, BIWEEKLY, MONTHLY
1041
+ # day_of_month: "DayOfMonth",
1042
+ # day_of_week: "SUN", # accepts SUN, MON, TUE, WED, THU, FRI, SAT
1043
+ # target_check_names: ["AuditCheckName"], # required
1044
+ # scheduled_audit_name: "ScheduledAuditName", # required
1045
+ # })
1046
+ #
1047
+ # @example Response structure
1048
+ #
1049
+ # resp.scheduled_audit_arn #=> String
1050
+ #
1051
+ # @overload create_scheduled_audit(params = {})
1052
+ # @param [Hash] params ({})
1053
+ def create_scheduled_audit(params = {}, options = {})
1054
+ req = build_request(:create_scheduled_audit, params)
1055
+ req.send_request(options)
1056
+ end
1057
+
1058
+ # Creates a Device Defender security profile.
1059
+ #
1060
+ # @option params [required, String] :security_profile_name
1061
+ # The name you are giving to the security profile.
1062
+ #
1063
+ # @option params [String] :security_profile_description
1064
+ # A description of the security profile.
1065
+ #
1066
+ # @option params [required, Array<Types::Behavior>] :behaviors
1067
+ # Specifies the behaviors that, when violated by a device (thing), cause
1068
+ # an alert.
1069
+ #
1070
+ # @option params [Hash<String,Types::AlertTarget>] :alert_targets
1071
+ # Specifies the destinations to which alerts are sent. (Alerts are
1072
+ # always sent to the console.) Alerts are generated when a device
1073
+ # (thing) violates a behavior.
1074
+ #
1075
+ # @return [Types::CreateSecurityProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1076
+ #
1077
+ # * {Types::CreateSecurityProfileResponse#security_profile_name #security_profile_name} => String
1078
+ # * {Types::CreateSecurityProfileResponse#security_profile_arn #security_profile_arn} => String
1079
+ #
1080
+ # @example Request syntax with placeholder values
1081
+ #
1082
+ # resp = client.create_security_profile({
1083
+ # security_profile_name: "SecurityProfileName", # required
1084
+ # security_profile_description: "SecurityProfileDescription",
1085
+ # behaviors: [ # required
1086
+ # {
1087
+ # name: "BehaviorName", # required
1088
+ # metric: "BehaviorMetric",
1089
+ # criteria: {
1090
+ # comparison_operator: "less-than", # accepts less-than, less-than-equals, greater-than, greater-than-equals, in-cidr-set, not-in-cidr-set, in-port-set, not-in-port-set
1091
+ # value: {
1092
+ # count: 1,
1093
+ # cidrs: ["Cidr"],
1094
+ # ports: [1],
1095
+ # },
1096
+ # duration_seconds: 1,
1097
+ # },
1098
+ # },
1099
+ # ],
1100
+ # alert_targets: {
1101
+ # "SNS" => {
1102
+ # alert_target_arn: "AlertTargetArn", # required
1103
+ # role_arn: "RoleArn", # required
1104
+ # },
1105
+ # },
1106
+ # })
1107
+ #
1108
+ # @example Response structure
1109
+ #
1110
+ # resp.security_profile_name #=> String
1111
+ # resp.security_profile_arn #=> String
1112
+ #
1113
+ # @overload create_security_profile(params = {})
1114
+ # @param [Hash] params ({})
1115
+ def create_security_profile(params = {}, options = {})
1116
+ req = build_request(:create_security_profile, params)
1117
+ req.send_request(options)
1118
+ end
1119
+
954
1120
  # Creates a stream for delivering one or more large files in chunks over
955
1121
  # MQTT. A stream transports data bytes in chunks or blocks packaged as
956
1122
  # MQTT messages from a source like S3. You can have one or more files
@@ -1235,11 +1401,11 @@ module Aws::IoT
1235
1401
  # },
1236
1402
  # cloudwatch_metric: {
1237
1403
  # role_arn: "AwsArn", # required
1238
- # metric_namespace: "MetricNamespace", # required
1239
- # metric_name: "MetricName", # required
1240
- # metric_value: "MetricValue", # required
1241
- # metric_unit: "MetricUnit", # required
1242
- # metric_timestamp: "MetricTimestamp",
1404
+ # metric_namespace: "String", # required
1405
+ # metric_name: "String", # required
1406
+ # metric_value: "String", # required
1407
+ # metric_unit: "String", # required
1408
+ # metric_timestamp: "String",
1243
1409
  # },
1244
1410
  # cloudwatch_alarm: {
1245
1411
  # role_arn: "AwsArn", # required
@@ -1263,6 +1429,11 @@ module Aws::IoT
1263
1429
  # channel_name: "ChannelName",
1264
1430
  # role_arn: "AwsArn",
1265
1431
  # },
1432
+ # step_functions: {
1433
+ # execution_name_prefix: "ExecutionNamePrefix",
1434
+ # state_machine_name: "StateMachineName", # required
1435
+ # role_arn: "AwsArn", # required
1436
+ # },
1266
1437
  # },
1267
1438
  # ],
1268
1439
  # rule_disabled: false,
@@ -1321,11 +1492,11 @@ module Aws::IoT
1321
1492
  # },
1322
1493
  # cloudwatch_metric: {
1323
1494
  # role_arn: "AwsArn", # required
1324
- # metric_namespace: "MetricNamespace", # required
1325
- # metric_name: "MetricName", # required
1326
- # metric_value: "MetricValue", # required
1327
- # metric_unit: "MetricUnit", # required
1328
- # metric_timestamp: "MetricTimestamp",
1495
+ # metric_namespace: "String", # required
1496
+ # metric_name: "String", # required
1497
+ # metric_value: "String", # required
1498
+ # metric_unit: "String", # required
1499
+ # metric_timestamp: "String",
1329
1500
  # },
1330
1501
  # cloudwatch_alarm: {
1331
1502
  # role_arn: "AwsArn", # required
@@ -1349,6 +1520,11 @@ module Aws::IoT
1349
1520
  # channel_name: "ChannelName",
1350
1521
  # role_arn: "AwsArn",
1351
1522
  # },
1523
+ # step_functions: {
1524
+ # execution_name_prefix: "ExecutionNamePrefix",
1525
+ # state_machine_name: "StateMachineName", # required
1526
+ # role_arn: "AwsArn", # required
1527
+ # },
1352
1528
  # },
1353
1529
  # },
1354
1530
  # })
@@ -1360,6 +1536,28 @@ module Aws::IoT
1360
1536
  req.send_request(options)
1361
1537
  end
1362
1538
 
1539
+ # Restores the default settings for Device Defender audits for this
1540
+ # account. Any configuration data you entered is deleted and all audit
1541
+ # checks are reset to disabled.
1542
+ #
1543
+ # @option params [Boolean] :delete_scheduled_audits
1544
+ # If true, all scheduled audits are deleted.
1545
+ #
1546
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1547
+ #
1548
+ # @example Request syntax with placeholder values
1549
+ #
1550
+ # resp = client.delete_account_audit_configuration({
1551
+ # delete_scheduled_audits: false,
1552
+ # })
1553
+ #
1554
+ # @overload delete_account_audit_configuration(params = {})
1555
+ # @param [Hash] params ({})
1556
+ def delete_account_audit_configuration(params = {}, options = {})
1557
+ req = build_request(:delete_account_audit_configuration, params)
1558
+ req.send_request(options)
1559
+ end
1560
+
1363
1561
  # Deletes an authorizer.
1364
1562
  #
1365
1563
  # @option params [required, String] :authorizer_name
@@ -1637,6 +1835,53 @@ module Aws::IoT
1637
1835
  req.send_request(options)
1638
1836
  end
1639
1837
 
1838
+ # Deletes a scheduled audit.
1839
+ #
1840
+ # @option params [required, String] :scheduled_audit_name
1841
+ # The name of the scheduled audit you want to delete.
1842
+ #
1843
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1844
+ #
1845
+ # @example Request syntax with placeholder values
1846
+ #
1847
+ # resp = client.delete_scheduled_audit({
1848
+ # scheduled_audit_name: "ScheduledAuditName", # required
1849
+ # })
1850
+ #
1851
+ # @overload delete_scheduled_audit(params = {})
1852
+ # @param [Hash] params ({})
1853
+ def delete_scheduled_audit(params = {}, options = {})
1854
+ req = build_request(:delete_scheduled_audit, params)
1855
+ req.send_request(options)
1856
+ end
1857
+
1858
+ # Deletes a Device Defender security profile.
1859
+ #
1860
+ # @option params [required, String] :security_profile_name
1861
+ # The name of the security profile to be deleted.
1862
+ #
1863
+ # @option params [Integer] :expected_version
1864
+ # The expected version of the security profile. A new version is
1865
+ # generated whenever the security profile is updated. If you specify a
1866
+ # value that is different than the actual version, a
1867
+ # `VersionConflictException` is thrown.
1868
+ #
1869
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1870
+ #
1871
+ # @example Request syntax with placeholder values
1872
+ #
1873
+ # resp = client.delete_security_profile({
1874
+ # security_profile_name: "SecurityProfileName", # required
1875
+ # expected_version: 1,
1876
+ # })
1877
+ #
1878
+ # @overload delete_security_profile(params = {})
1879
+ # @param [Hash] params ({})
1880
+ def delete_security_profile(params = {}, options = {})
1881
+ req = build_request(:delete_security_profile, params)
1882
+ req.send_request(options)
1883
+ end
1884
+
1640
1885
  # Deletes a stream.
1641
1886
  #
1642
1887
  # @option params [required, String] :stream_id
@@ -1805,6 +2050,81 @@ module Aws::IoT
1805
2050
  req.send_request(options)
1806
2051
  end
1807
2052
 
2053
+ # Gets information about the Device Defender audit settings for this
2054
+ # account. Settings include how audit notifications are sent and which
2055
+ # audit checks are enabled or disabled.
2056
+ #
2057
+ # @return [Types::DescribeAccountAuditConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2058
+ #
2059
+ # * {Types::DescribeAccountAuditConfigurationResponse#role_arn #role_arn} => String
2060
+ # * {Types::DescribeAccountAuditConfigurationResponse#audit_notification_target_configurations #audit_notification_target_configurations} => Hash&lt;String,Types::AuditNotificationTarget&gt;
2061
+ # * {Types::DescribeAccountAuditConfigurationResponse#audit_check_configurations #audit_check_configurations} => Hash&lt;String,Types::AuditCheckConfiguration&gt;
2062
+ #
2063
+ # @example Response structure
2064
+ #
2065
+ # resp.role_arn #=> String
2066
+ # resp.audit_notification_target_configurations #=> Hash
2067
+ # resp.audit_notification_target_configurations["AuditNotificationType"].target_arn #=> String
2068
+ # resp.audit_notification_target_configurations["AuditNotificationType"].role_arn #=> String
2069
+ # resp.audit_notification_target_configurations["AuditNotificationType"].enabled #=> Boolean
2070
+ # resp.audit_check_configurations #=> Hash
2071
+ # resp.audit_check_configurations["AuditCheckName"].enabled #=> Boolean
2072
+ #
2073
+ # @overload describe_account_audit_configuration(params = {})
2074
+ # @param [Hash] params ({})
2075
+ def describe_account_audit_configuration(params = {}, options = {})
2076
+ req = build_request(:describe_account_audit_configuration, params)
2077
+ req.send_request(options)
2078
+ end
2079
+
2080
+ # Gets information about a Device Defender audit.
2081
+ #
2082
+ # @option params [required, String] :task_id
2083
+ # The ID of the audit whose information you want to get.
2084
+ #
2085
+ # @return [Types::DescribeAuditTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2086
+ #
2087
+ # * {Types::DescribeAuditTaskResponse#task_status #task_status} => String
2088
+ # * {Types::DescribeAuditTaskResponse#task_type #task_type} => String
2089
+ # * {Types::DescribeAuditTaskResponse#task_start_time #task_start_time} => Time
2090
+ # * {Types::DescribeAuditTaskResponse#task_statistics #task_statistics} => Types::TaskStatistics
2091
+ # * {Types::DescribeAuditTaskResponse#scheduled_audit_name #scheduled_audit_name} => String
2092
+ # * {Types::DescribeAuditTaskResponse#audit_details #audit_details} => Hash&lt;String,Types::AuditCheckDetails&gt;
2093
+ #
2094
+ # @example Request syntax with placeholder values
2095
+ #
2096
+ # resp = client.describe_audit_task({
2097
+ # task_id: "AuditTaskId", # required
2098
+ # })
2099
+ #
2100
+ # @example Response structure
2101
+ #
2102
+ # resp.task_status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED", "CANCELED"
2103
+ # resp.task_type #=> String, one of "ON_DEMAND_AUDIT_TASK", "SCHEDULED_AUDIT_TASK"
2104
+ # resp.task_start_time #=> Time
2105
+ # resp.task_statistics.total_checks #=> Integer
2106
+ # resp.task_statistics.in_progress_checks #=> Integer
2107
+ # resp.task_statistics.waiting_for_data_collection_checks #=> Integer
2108
+ # resp.task_statistics.compliant_checks #=> Integer
2109
+ # resp.task_statistics.non_compliant_checks #=> Integer
2110
+ # resp.task_statistics.failed_checks #=> Integer
2111
+ # resp.task_statistics.canceled_checks #=> Integer
2112
+ # resp.scheduled_audit_name #=> String
2113
+ # resp.audit_details #=> Hash
2114
+ # resp.audit_details["AuditCheckName"].check_run_status #=> String, one of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION", "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", "FAILED"
2115
+ # resp.audit_details["AuditCheckName"].check_compliant #=> Boolean
2116
+ # resp.audit_details["AuditCheckName"].total_resources_count #=> Integer
2117
+ # resp.audit_details["AuditCheckName"].non_compliant_resources_count #=> Integer
2118
+ # resp.audit_details["AuditCheckName"].error_code #=> String
2119
+ # resp.audit_details["AuditCheckName"].message #=> String
2120
+ #
2121
+ # @overload describe_audit_task(params = {})
2122
+ # @param [Hash] params ({})
2123
+ def describe_audit_task(params = {}, options = {})
2124
+ req = build_request(:describe_audit_task, params)
2125
+ req.send_request(options)
2126
+ end
2127
+
1808
2128
  # Describes an authorizer.
1809
2129
  #
1810
2130
  # @option params [required, String] :authorizer_name
@@ -1867,6 +2187,8 @@ module Aws::IoT
1867
2187
  # resp.certificate_description.last_modified_date #=> Time
1868
2188
  # resp.certificate_description.customer_version #=> Integer
1869
2189
  # resp.certificate_description.generation_id #=> String
2190
+ # resp.certificate_description.validity.not_before #=> Time
2191
+ # resp.certificate_description.validity.not_after #=> Time
1870
2192
  # resp.registration_config.template_body #=> String
1871
2193
  # resp.registration_config.role_arn #=> String
1872
2194
  #
@@ -1911,6 +2233,8 @@ module Aws::IoT
1911
2233
  # resp.certificate_description.transfer_data.accept_date #=> Time
1912
2234
  # resp.certificate_description.transfer_data.reject_date #=> Time
1913
2235
  # resp.certificate_description.generation_id #=> String
2236
+ # resp.certificate_description.validity.not_before #=> Time
2237
+ # resp.certificate_description.validity.not_after #=> Time
1914
2238
  #
1915
2239
  # @overload describe_certificate(params = {})
1916
2240
  # @param [Hash] params ({})
@@ -2150,6 +2474,94 @@ module Aws::IoT
2150
2474
  req.send_request(options)
2151
2475
  end
2152
2476
 
2477
+ # Gets information about a scheduled audit.
2478
+ #
2479
+ # @option params [required, String] :scheduled_audit_name
2480
+ # The name of the scheduled audit whose information you want to get.
2481
+ #
2482
+ # @return [Types::DescribeScheduledAuditResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2483
+ #
2484
+ # * {Types::DescribeScheduledAuditResponse#frequency #frequency} => String
2485
+ # * {Types::DescribeScheduledAuditResponse#day_of_month #day_of_month} => String
2486
+ # * {Types::DescribeScheduledAuditResponse#day_of_week #day_of_week} => String
2487
+ # * {Types::DescribeScheduledAuditResponse#target_check_names #target_check_names} => Array&lt;String&gt;
2488
+ # * {Types::DescribeScheduledAuditResponse#scheduled_audit_name #scheduled_audit_name} => String
2489
+ # * {Types::DescribeScheduledAuditResponse#scheduled_audit_arn #scheduled_audit_arn} => String
2490
+ #
2491
+ # @example Request syntax with placeholder values
2492
+ #
2493
+ # resp = client.describe_scheduled_audit({
2494
+ # scheduled_audit_name: "ScheduledAuditName", # required
2495
+ # })
2496
+ #
2497
+ # @example Response structure
2498
+ #
2499
+ # resp.frequency #=> String, one of "DAILY", "WEEKLY", "BIWEEKLY", "MONTHLY"
2500
+ # resp.day_of_month #=> String
2501
+ # resp.day_of_week #=> String, one of "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
2502
+ # resp.target_check_names #=> Array
2503
+ # resp.target_check_names[0] #=> String
2504
+ # resp.scheduled_audit_name #=> String
2505
+ # resp.scheduled_audit_arn #=> String
2506
+ #
2507
+ # @overload describe_scheduled_audit(params = {})
2508
+ # @param [Hash] params ({})
2509
+ def describe_scheduled_audit(params = {}, options = {})
2510
+ req = build_request(:describe_scheduled_audit, params)
2511
+ req.send_request(options)
2512
+ end
2513
+
2514
+ # Gets information about a Device Defender security profile.
2515
+ #
2516
+ # @option params [required, String] :security_profile_name
2517
+ # The name of the security profile whose information you want to get.
2518
+ #
2519
+ # @return [Types::DescribeSecurityProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2520
+ #
2521
+ # * {Types::DescribeSecurityProfileResponse#security_profile_name #security_profile_name} => String
2522
+ # * {Types::DescribeSecurityProfileResponse#security_profile_arn #security_profile_arn} => String
2523
+ # * {Types::DescribeSecurityProfileResponse#security_profile_description #security_profile_description} => String
2524
+ # * {Types::DescribeSecurityProfileResponse#behaviors #behaviors} => Array&lt;Types::Behavior&gt;
2525
+ # * {Types::DescribeSecurityProfileResponse#alert_targets #alert_targets} => Hash&lt;String,Types::AlertTarget&gt;
2526
+ # * {Types::DescribeSecurityProfileResponse#version #version} => Integer
2527
+ # * {Types::DescribeSecurityProfileResponse#creation_date #creation_date} => Time
2528
+ # * {Types::DescribeSecurityProfileResponse#last_modified_date #last_modified_date} => Time
2529
+ #
2530
+ # @example Request syntax with placeholder values
2531
+ #
2532
+ # resp = client.describe_security_profile({
2533
+ # security_profile_name: "SecurityProfileName", # required
2534
+ # })
2535
+ #
2536
+ # @example Response structure
2537
+ #
2538
+ # resp.security_profile_name #=> String
2539
+ # resp.security_profile_arn #=> String
2540
+ # resp.security_profile_description #=> String
2541
+ # resp.behaviors #=> Array
2542
+ # resp.behaviors[0].name #=> String
2543
+ # resp.behaviors[0].metric #=> String
2544
+ # resp.behaviors[0].criteria.comparison_operator #=> String, one of "less-than", "less-than-equals", "greater-than", "greater-than-equals", "in-cidr-set", "not-in-cidr-set", "in-port-set", "not-in-port-set"
2545
+ # resp.behaviors[0].criteria.value.count #=> Integer
2546
+ # resp.behaviors[0].criteria.value.cidrs #=> Array
2547
+ # resp.behaviors[0].criteria.value.cidrs[0] #=> String
2548
+ # resp.behaviors[0].criteria.value.ports #=> Array
2549
+ # resp.behaviors[0].criteria.value.ports[0] #=> Integer
2550
+ # resp.behaviors[0].criteria.duration_seconds #=> Integer
2551
+ # resp.alert_targets #=> Hash
2552
+ # resp.alert_targets["AlertTargetType"].alert_target_arn #=> String
2553
+ # resp.alert_targets["AlertTargetType"].role_arn #=> String
2554
+ # resp.version #=> Integer
2555
+ # resp.creation_date #=> Time
2556
+ # resp.last_modified_date #=> Time
2557
+ #
2558
+ # @overload describe_security_profile(params = {})
2559
+ # @param [Hash] params ({})
2560
+ def describe_security_profile(params = {}, options = {})
2561
+ req = build_request(:describe_security_profile, params)
2562
+ req.send_request(options)
2563
+ end
2564
+
2153
2565
  # Gets information about a stream.
2154
2566
  #
2155
2567
  # @option params [required, String] :stream_id
@@ -2408,6 +2820,32 @@ module Aws::IoT
2408
2820
  req.send_request(options)
2409
2821
  end
2410
2822
 
2823
+ # Disassociates a Device Defender security profile from a thing group or
2824
+ # from this account.
2825
+ #
2826
+ # @option params [required, String] :security_profile_name
2827
+ # The security profile that is detached.
2828
+ #
2829
+ # @option params [required, String] :security_profile_target_arn
2830
+ # The ARN of the thing group from which the security profile is
2831
+ # detached.
2832
+ #
2833
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2834
+ #
2835
+ # @example Request syntax with placeholder values
2836
+ #
2837
+ # resp = client.detach_security_profile({
2838
+ # security_profile_name: "SecurityProfileName", # required
2839
+ # security_profile_target_arn: "SecurityProfileTargetArn", # required
2840
+ # })
2841
+ #
2842
+ # @overload detach_security_profile(params = {})
2843
+ # @param [Hash] params ({})
2844
+ def detach_security_profile(params = {}, options = {})
2845
+ req = build_request(:detach_security_profile, params)
2846
+ req.send_request(options)
2847
+ end
2848
+
2411
2849
  # Detaches the specified principal from the specified thing.
2412
2850
  #
2413
2851
  # @option params [required, String] :thing_name
@@ -2811,6 +3249,9 @@ module Aws::IoT
2811
3249
  # resp.rule.actions[0].iot_analytics.channel_arn #=> String
2812
3250
  # resp.rule.actions[0].iot_analytics.channel_name #=> String
2813
3251
  # resp.rule.actions[0].iot_analytics.role_arn #=> String
3252
+ # resp.rule.actions[0].step_functions.execution_name_prefix #=> String
3253
+ # resp.rule.actions[0].step_functions.state_machine_name #=> String
3254
+ # resp.rule.actions[0].step_functions.role_arn #=> String
2814
3255
  # resp.rule.rule_disabled #=> Boolean
2815
3256
  # resp.rule.aws_iot_sql_version #=> String
2816
3257
  # resp.rule.error_action.dynamo_db.table_name #=> String
@@ -2864,6 +3305,9 @@ module Aws::IoT
2864
3305
  # resp.rule.error_action.iot_analytics.channel_arn #=> String
2865
3306
  # resp.rule.error_action.iot_analytics.channel_name #=> String
2866
3307
  # resp.rule.error_action.iot_analytics.role_arn #=> String
3308
+ # resp.rule.error_action.step_functions.execution_name_prefix #=> String
3309
+ # resp.rule.error_action.step_functions.state_machine_name #=> String
3310
+ # resp.rule.error_action.step_functions.role_arn #=> String
2867
3311
  #
2868
3312
  # @overload get_topic_rule(params = {})
2869
3313
  # @param [Hash] params ({})
@@ -2893,6 +3337,67 @@ module Aws::IoT
2893
3337
  req.send_request(options)
2894
3338
  end
2895
3339
 
3340
+ # Lists the active violations for a given Device Defender security
3341
+ # profile.
3342
+ #
3343
+ # @option params [String] :thing_name
3344
+ # The name of the thing whose active violations are listed.
3345
+ #
3346
+ # @option params [String] :security_profile_name
3347
+ # The name of the Device Defender security profile for which violations
3348
+ # are listed.
3349
+ #
3350
+ # @option params [String] :next_token
3351
+ # The token for the next set of results.
3352
+ #
3353
+ # @option params [Integer] :max_results
3354
+ # The maximum number of results to return at one time.
3355
+ #
3356
+ # @return [Types::ListActiveViolationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3357
+ #
3358
+ # * {Types::ListActiveViolationsResponse#active_violations #active_violations} => Array&lt;Types::ActiveViolation&gt;
3359
+ # * {Types::ListActiveViolationsResponse#next_token #next_token} => String
3360
+ #
3361
+ # @example Request syntax with placeholder values
3362
+ #
3363
+ # resp = client.list_active_violations({
3364
+ # thing_name: "ThingName",
3365
+ # security_profile_name: "SecurityProfileName",
3366
+ # next_token: "NextToken",
3367
+ # max_results: 1,
3368
+ # })
3369
+ #
3370
+ # @example Response structure
3371
+ #
3372
+ # resp.active_violations #=> Array
3373
+ # resp.active_violations[0].violation_id #=> String
3374
+ # resp.active_violations[0].thing_name #=> String
3375
+ # resp.active_violations[0].security_profile_name #=> String
3376
+ # resp.active_violations[0].behavior.name #=> String
3377
+ # resp.active_violations[0].behavior.metric #=> String
3378
+ # resp.active_violations[0].behavior.criteria.comparison_operator #=> String, one of "less-than", "less-than-equals", "greater-than", "greater-than-equals", "in-cidr-set", "not-in-cidr-set", "in-port-set", "not-in-port-set"
3379
+ # resp.active_violations[0].behavior.criteria.value.count #=> Integer
3380
+ # resp.active_violations[0].behavior.criteria.value.cidrs #=> Array
3381
+ # resp.active_violations[0].behavior.criteria.value.cidrs[0] #=> String
3382
+ # resp.active_violations[0].behavior.criteria.value.ports #=> Array
3383
+ # resp.active_violations[0].behavior.criteria.value.ports[0] #=> Integer
3384
+ # resp.active_violations[0].behavior.criteria.duration_seconds #=> Integer
3385
+ # resp.active_violations[0].last_violation_value.count #=> Integer
3386
+ # resp.active_violations[0].last_violation_value.cidrs #=> Array
3387
+ # resp.active_violations[0].last_violation_value.cidrs[0] #=> String
3388
+ # resp.active_violations[0].last_violation_value.ports #=> Array
3389
+ # resp.active_violations[0].last_violation_value.ports[0] #=> Integer
3390
+ # resp.active_violations[0].last_violation_time #=> Time
3391
+ # resp.active_violations[0].violation_start_time #=> Time
3392
+ # resp.next_token #=> String
3393
+ #
3394
+ # @overload list_active_violations(params = {})
3395
+ # @param [Hash] params ({})
3396
+ def list_active_violations(params = {}, options = {})
3397
+ req = build_request(:list_active_violations, params)
3398
+ req.send_request(options)
3399
+ end
3400
+
2896
3401
  # Lists the policies attached to the specified thing group.
2897
3402
  #
2898
3403
  # @option params [required, String] :target
@@ -2935,65 +3440,222 @@ module Aws::IoT
2935
3440
  req.send_request(options)
2936
3441
  end
2937
3442
 
2938
- # Lists the authorizers registered in your account.
3443
+ # Lists the findings (results) of a Device Defender audit or of the
3444
+ # audits performed during a specified time period. (Findings are
3445
+ # retained for 180 days.)
2939
3446
  #
2940
- # @option params [Integer] :page_size
2941
- # The maximum number of results to return at one time.
3447
+ # @option params [String] :task_id
3448
+ # A filter to limit results to the audit with the specified ID. You must
3449
+ # specify either the taskId or the startTime and endTime, but not both.
2942
3450
  #
2943
- # @option params [String] :marker
2944
- # A marker used to get the next set of results.
3451
+ # @option params [String] :check_name
3452
+ # A filter to limit results to the findings for the specified audit
3453
+ # check.
2945
3454
  #
2946
- # @option params [Boolean] :ascending_order
2947
- # Return the list of authorizers in ascending alphabetical order.
3455
+ # @option params [Types::ResourceIdentifier] :resource_identifier
3456
+ # Information identifying the non-compliant resource.
2948
3457
  #
2949
- # @option params [String] :status
2950
- # The status of the list authorizers request.
3458
+ # @option params [Integer] :max_results
3459
+ # The maximum number of results to return at one time. The default is
3460
+ # 25.
2951
3461
  #
2952
- # @return [Types::ListAuthorizersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3462
+ # @option params [String] :next_token
3463
+ # The token for the next set of results.
2953
3464
  #
2954
- # * {Types::ListAuthorizersResponse#authorizers #authorizers} => Array&lt;Types::AuthorizerSummary&gt;
2955
- # * {Types::ListAuthorizersResponse#next_marker #next_marker} => String
3465
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
3466
+ # A filter to limit results to those found after the specified time. You
3467
+ # must specify either the startTime and endTime or the taskId, but not
3468
+ # both.
3469
+ #
3470
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
3471
+ # A filter to limit results to those found before the specified time.
3472
+ # You must specify either the startTime and endTime or the taskId, but
3473
+ # not both.
3474
+ #
3475
+ # @return [Types::ListAuditFindingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3476
+ #
3477
+ # * {Types::ListAuditFindingsResponse#findings #findings} => Array&lt;Types::AuditFinding&gt;
3478
+ # * {Types::ListAuditFindingsResponse#next_token #next_token} => String
2956
3479
  #
2957
3480
  # @example Request syntax with placeholder values
2958
3481
  #
2959
- # resp = client.list_authorizers({
2960
- # page_size: 1,
2961
- # marker: "Marker",
2962
- # ascending_order: false,
2963
- # status: "ACTIVE", # accepts ACTIVE, INACTIVE
3482
+ # resp = client.list_audit_findings({
3483
+ # task_id: "AuditTaskId",
3484
+ # check_name: "AuditCheckName",
3485
+ # resource_identifier: {
3486
+ # device_certificate_id: "CertificateId",
3487
+ # ca_certificate_id: "CertificateId",
3488
+ # cognito_identity_pool_id: "CognitoIdentityPoolId",
3489
+ # client_id: "ClientId",
3490
+ # policy_version_identifier: {
3491
+ # policy_name: "PolicyName",
3492
+ # policy_version_id: "PolicyVersionId",
3493
+ # },
3494
+ # account: "AwsAccountId",
3495
+ # },
3496
+ # max_results: 1,
3497
+ # next_token: "NextToken",
3498
+ # start_time: Time.now,
3499
+ # end_time: Time.now,
2964
3500
  # })
2965
3501
  #
2966
3502
  # @example Response structure
2967
3503
  #
2968
- # resp.authorizers #=> Array
2969
- # resp.authorizers[0].authorizer_name #=> String
2970
- # resp.authorizers[0].authorizer_arn #=> String
2971
- # resp.next_marker #=> String
3504
+ # resp.findings #=> Array
3505
+ # resp.findings[0].task_id #=> String
3506
+ # resp.findings[0].check_name #=> String
3507
+ # resp.findings[0].task_start_time #=> Time
3508
+ # resp.findings[0].finding_time #=> Time
3509
+ # resp.findings[0].severity #=> String, one of "CRITICAL", "HIGH", "MEDIUM", "LOW"
3510
+ # resp.findings[0].non_compliant_resource.resource_type #=> String, one of "DEVICE_CERTIFICATE", "CA_CERTIFICATE", "IOT_POLICY", "COGNITO_IDENTITY_POOL", "CLIENT_ID", "ACCOUNT_SETTINGS"
3511
+ # resp.findings[0].non_compliant_resource.resource_identifier.device_certificate_id #=> String
3512
+ # resp.findings[0].non_compliant_resource.resource_identifier.ca_certificate_id #=> String
3513
+ # resp.findings[0].non_compliant_resource.resource_identifier.cognito_identity_pool_id #=> String
3514
+ # resp.findings[0].non_compliant_resource.resource_identifier.client_id #=> String
3515
+ # resp.findings[0].non_compliant_resource.resource_identifier.policy_version_identifier.policy_name #=> String
3516
+ # resp.findings[0].non_compliant_resource.resource_identifier.policy_version_identifier.policy_version_id #=> String
3517
+ # resp.findings[0].non_compliant_resource.resource_identifier.account #=> String
3518
+ # resp.findings[0].non_compliant_resource.additional_info #=> Hash
3519
+ # resp.findings[0].non_compliant_resource.additional_info["String"] #=> String
3520
+ # resp.findings[0].related_resources #=> Array
3521
+ # resp.findings[0].related_resources[0].resource_type #=> String, one of "DEVICE_CERTIFICATE", "CA_CERTIFICATE", "IOT_POLICY", "COGNITO_IDENTITY_POOL", "CLIENT_ID", "ACCOUNT_SETTINGS"
3522
+ # resp.findings[0].related_resources[0].resource_identifier.device_certificate_id #=> String
3523
+ # resp.findings[0].related_resources[0].resource_identifier.ca_certificate_id #=> String
3524
+ # resp.findings[0].related_resources[0].resource_identifier.cognito_identity_pool_id #=> String
3525
+ # resp.findings[0].related_resources[0].resource_identifier.client_id #=> String
3526
+ # resp.findings[0].related_resources[0].resource_identifier.policy_version_identifier.policy_name #=> String
3527
+ # resp.findings[0].related_resources[0].resource_identifier.policy_version_identifier.policy_version_id #=> String
3528
+ # resp.findings[0].related_resources[0].resource_identifier.account #=> String
3529
+ # resp.findings[0].related_resources[0].additional_info #=> Hash
3530
+ # resp.findings[0].related_resources[0].additional_info["String"] #=> String
3531
+ # resp.findings[0].reason_for_non_compliance #=> String
3532
+ # resp.findings[0].reason_for_non_compliance_code #=> String
3533
+ # resp.next_token #=> String
2972
3534
  #
2973
- # @overload list_authorizers(params = {})
3535
+ # @overload list_audit_findings(params = {})
2974
3536
  # @param [Hash] params ({})
2975
- def list_authorizers(params = {}, options = {})
2976
- req = build_request(:list_authorizers, params)
3537
+ def list_audit_findings(params = {}, options = {})
3538
+ req = build_request(:list_audit_findings, params)
2977
3539
  req.send_request(options)
2978
3540
  end
2979
3541
 
2980
- # Lists the CA certificates registered for your AWS account.
3542
+ # Lists the Device Defender audits that have been performed during a
3543
+ # given time period.
2981
3544
  #
2982
- # The results are paginated with a default page size of 25. You can use
2983
- # the returned marker to retrieve additional results.
3545
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
3546
+ # The beginning of the time period. Note that audit information is
3547
+ # retained for a limited time (180 days). Requesting a start time prior
3548
+ # to what is retained results in an "InvalidRequestException".
2984
3549
  #
2985
- # @option params [Integer] :page_size
2986
- # The result page size.
3550
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
3551
+ # The end of the time period.
2987
3552
  #
2988
- # @option params [String] :marker
2989
- # The marker for the next set of results.
3553
+ # @option params [String] :task_type
3554
+ # A filter to limit the output to the specified type of audit: can be
3555
+ # one of "ON\_DEMAND\_AUDIT\_TASK" or "SCHEDULED\_\_AUDIT\_TASK".
2990
3556
  #
2991
- # @option params [Boolean] :ascending_order
2992
- # Determines the order of the results.
3557
+ # @option params [String] :task_status
3558
+ # A filter to limit the output to audits with the specified completion
3559
+ # status: can be one of "IN\_PROGRESS", "COMPLETED", "FAILED" or
3560
+ # "CANCELED".
2993
3561
  #
2994
- # @return [Types::ListCACertificatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3562
+ # @option params [String] :next_token
3563
+ # The token for the next set of results.
2995
3564
  #
2996
- # * {Types::ListCACertificatesResponse#certificates #certificates} => Array&lt;Types::CACertificate&gt;
3565
+ # @option params [Integer] :max_results
3566
+ # The maximum number of results to return at one time. The default is
3567
+ # 25.
3568
+ #
3569
+ # @return [Types::ListAuditTasksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3570
+ #
3571
+ # * {Types::ListAuditTasksResponse#tasks #tasks} => Array&lt;Types::AuditTaskMetadata&gt;
3572
+ # * {Types::ListAuditTasksResponse#next_token #next_token} => String
3573
+ #
3574
+ # @example Request syntax with placeholder values
3575
+ #
3576
+ # resp = client.list_audit_tasks({
3577
+ # start_time: Time.now, # required
3578
+ # end_time: Time.now, # required
3579
+ # task_type: "ON_DEMAND_AUDIT_TASK", # accepts ON_DEMAND_AUDIT_TASK, SCHEDULED_AUDIT_TASK
3580
+ # task_status: "IN_PROGRESS", # accepts IN_PROGRESS, COMPLETED, FAILED, CANCELED
3581
+ # next_token: "NextToken",
3582
+ # max_results: 1,
3583
+ # })
3584
+ #
3585
+ # @example Response structure
3586
+ #
3587
+ # resp.tasks #=> Array
3588
+ # resp.tasks[0].task_id #=> String
3589
+ # resp.tasks[0].task_status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED", "CANCELED"
3590
+ # resp.tasks[0].task_type #=> String, one of "ON_DEMAND_AUDIT_TASK", "SCHEDULED_AUDIT_TASK"
3591
+ # resp.next_token #=> String
3592
+ #
3593
+ # @overload list_audit_tasks(params = {})
3594
+ # @param [Hash] params ({})
3595
+ def list_audit_tasks(params = {}, options = {})
3596
+ req = build_request(:list_audit_tasks, params)
3597
+ req.send_request(options)
3598
+ end
3599
+
3600
+ # Lists the authorizers registered in your account.
3601
+ #
3602
+ # @option params [Integer] :page_size
3603
+ # The maximum number of results to return at one time.
3604
+ #
3605
+ # @option params [String] :marker
3606
+ # A marker used to get the next set of results.
3607
+ #
3608
+ # @option params [Boolean] :ascending_order
3609
+ # Return the list of authorizers in ascending alphabetical order.
3610
+ #
3611
+ # @option params [String] :status
3612
+ # The status of the list authorizers request.
3613
+ #
3614
+ # @return [Types::ListAuthorizersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3615
+ #
3616
+ # * {Types::ListAuthorizersResponse#authorizers #authorizers} => Array&lt;Types::AuthorizerSummary&gt;
3617
+ # * {Types::ListAuthorizersResponse#next_marker #next_marker} => String
3618
+ #
3619
+ # @example Request syntax with placeholder values
3620
+ #
3621
+ # resp = client.list_authorizers({
3622
+ # page_size: 1,
3623
+ # marker: "Marker",
3624
+ # ascending_order: false,
3625
+ # status: "ACTIVE", # accepts ACTIVE, INACTIVE
3626
+ # })
3627
+ #
3628
+ # @example Response structure
3629
+ #
3630
+ # resp.authorizers #=> Array
3631
+ # resp.authorizers[0].authorizer_name #=> String
3632
+ # resp.authorizers[0].authorizer_arn #=> String
3633
+ # resp.next_marker #=> String
3634
+ #
3635
+ # @overload list_authorizers(params = {})
3636
+ # @param [Hash] params ({})
3637
+ def list_authorizers(params = {}, options = {})
3638
+ req = build_request(:list_authorizers, params)
3639
+ req.send_request(options)
3640
+ end
3641
+
3642
+ # Lists the CA certificates registered for your AWS account.
3643
+ #
3644
+ # The results are paginated with a default page size of 25. You can use
3645
+ # the returned marker to retrieve additional results.
3646
+ #
3647
+ # @option params [Integer] :page_size
3648
+ # The result page size.
3649
+ #
3650
+ # @option params [String] :marker
3651
+ # The marker for the next set of results.
3652
+ #
3653
+ # @option params [Boolean] :ascending_order
3654
+ # Determines the order of the results.
3655
+ #
3656
+ # @return [Types::ListCACertificatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3657
+ #
3658
+ # * {Types::ListCACertificatesResponse#certificates #certificates} => Array&lt;Types::CACertificate&gt;
2997
3659
  # * {Types::ListCACertificatesResponse#next_marker #next_marker} => String
2998
3660
  #
2999
3661
  # @example Request syntax with placeholder values
@@ -3552,8 +4214,7 @@ module Aws::IoT
3552
4214
  # Lists the things associated with the specified principal.
3553
4215
  #
3554
4216
  # @option params [String] :next_token
3555
- # The token used to get the next set of results, or **null** if there
3556
- # are no additional results.
4217
+ # The token to retrieve the next set of results.
3557
4218
  #
3558
4219
  # @option params [Integer] :max_results
3559
4220
  # The maximum number of results to return in this operation.
@@ -3624,6 +4285,125 @@ module Aws::IoT
3624
4285
  req.send_request(options)
3625
4286
  end
3626
4287
 
4288
+ # Lists all of your scheduled audits.
4289
+ #
4290
+ # @option params [String] :next_token
4291
+ # The token for the next set of results.
4292
+ #
4293
+ # @option params [Integer] :max_results
4294
+ # The maximum number of results to return at one time. The default is
4295
+ # 25.
4296
+ #
4297
+ # @return [Types::ListScheduledAuditsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4298
+ #
4299
+ # * {Types::ListScheduledAuditsResponse#scheduled_audits #scheduled_audits} => Array&lt;Types::ScheduledAuditMetadata&gt;
4300
+ # * {Types::ListScheduledAuditsResponse#next_token #next_token} => String
4301
+ #
4302
+ # @example Request syntax with placeholder values
4303
+ #
4304
+ # resp = client.list_scheduled_audits({
4305
+ # next_token: "NextToken",
4306
+ # max_results: 1,
4307
+ # })
4308
+ #
4309
+ # @example Response structure
4310
+ #
4311
+ # resp.scheduled_audits #=> Array
4312
+ # resp.scheduled_audits[0].scheduled_audit_name #=> String
4313
+ # resp.scheduled_audits[0].scheduled_audit_arn #=> String
4314
+ # resp.scheduled_audits[0].frequency #=> String, one of "DAILY", "WEEKLY", "BIWEEKLY", "MONTHLY"
4315
+ # resp.scheduled_audits[0].day_of_month #=> String
4316
+ # resp.scheduled_audits[0].day_of_week #=> String, one of "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
4317
+ # resp.next_token #=> String
4318
+ #
4319
+ # @overload list_scheduled_audits(params = {})
4320
+ # @param [Hash] params ({})
4321
+ def list_scheduled_audits(params = {}, options = {})
4322
+ req = build_request(:list_scheduled_audits, params)
4323
+ req.send_request(options)
4324
+ end
4325
+
4326
+ # Lists the Device Defender security profiles you have created. You can
4327
+ # use filters to list only those security profiles associated with a
4328
+ # thing group or only those associated with your account.
4329
+ #
4330
+ # @option params [String] :next_token
4331
+ # The token for the next set of results.
4332
+ #
4333
+ # @option params [Integer] :max_results
4334
+ # The maximum number of results to return at one time.
4335
+ #
4336
+ # @return [Types::ListSecurityProfilesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4337
+ #
4338
+ # * {Types::ListSecurityProfilesResponse#security_profile_identifiers #security_profile_identifiers} => Array&lt;Types::SecurityProfileIdentifier&gt;
4339
+ # * {Types::ListSecurityProfilesResponse#next_token #next_token} => String
4340
+ #
4341
+ # @example Request syntax with placeholder values
4342
+ #
4343
+ # resp = client.list_security_profiles({
4344
+ # next_token: "NextToken",
4345
+ # max_results: 1,
4346
+ # })
4347
+ #
4348
+ # @example Response structure
4349
+ #
4350
+ # resp.security_profile_identifiers #=> Array
4351
+ # resp.security_profile_identifiers[0].name #=> String
4352
+ # resp.security_profile_identifiers[0].arn #=> String
4353
+ # resp.next_token #=> String
4354
+ #
4355
+ # @overload list_security_profiles(params = {})
4356
+ # @param [Hash] params ({})
4357
+ def list_security_profiles(params = {}, options = {})
4358
+ req = build_request(:list_security_profiles, params)
4359
+ req.send_request(options)
4360
+ end
4361
+
4362
+ # Lists the Device Defender security profiles attached to a target
4363
+ # (thing group).
4364
+ #
4365
+ # @option params [String] :next_token
4366
+ # The token for the next set of results.
4367
+ #
4368
+ # @option params [Integer] :max_results
4369
+ # The maximum number of results to return at one time.
4370
+ #
4371
+ # @option params [Boolean] :recursive
4372
+ # If true, return child groups as well.
4373
+ #
4374
+ # @option params [required, String] :security_profile_target_arn
4375
+ # The ARN of the target (thing group) whose attached security profiles
4376
+ # you want to get.
4377
+ #
4378
+ # @return [Types::ListSecurityProfilesForTargetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4379
+ #
4380
+ # * {Types::ListSecurityProfilesForTargetResponse#security_profile_target_mappings #security_profile_target_mappings} => Array&lt;Types::SecurityProfileTargetMapping&gt;
4381
+ # * {Types::ListSecurityProfilesForTargetResponse#next_token #next_token} => String
4382
+ #
4383
+ # @example Request syntax with placeholder values
4384
+ #
4385
+ # resp = client.list_security_profiles_for_target({
4386
+ # next_token: "NextToken",
4387
+ # max_results: 1,
4388
+ # recursive: false,
4389
+ # security_profile_target_arn: "SecurityProfileTargetArn", # required
4390
+ # })
4391
+ #
4392
+ # @example Response structure
4393
+ #
4394
+ # resp.security_profile_target_mappings #=> Array
4395
+ # resp.security_profile_target_mappings[0].security_profile_identifier.name #=> String
4396
+ # resp.security_profile_target_mappings[0].security_profile_identifier.arn #=> String
4397
+ # resp.security_profile_target_mappings[0].target.arn #=> String
4398
+ # resp.next_token #=> String
4399
+ #
4400
+ # @overload list_security_profiles_for_target(params = {})
4401
+ # @param [Hash] params ({})
4402
+ def list_security_profiles_for_target(params = {}, options = {})
4403
+ req = build_request(:list_security_profiles_for_target, params)
4404
+ req.send_request(options)
4405
+ end
4406
+
3627
4407
  # Lists all of the streams in your AWS account.
3628
4408
  #
3629
4409
  # @option params [Integer] :max_results
@@ -3701,11 +4481,48 @@ module Aws::IoT
3701
4481
  req.send_request(options)
3702
4482
  end
3703
4483
 
4484
+ # Lists the targets (thing groups) associated with a given Device
4485
+ # Defender security profile.
4486
+ #
4487
+ # @option params [required, String] :security_profile_name
4488
+ # The security profile.
4489
+ #
4490
+ # @option params [String] :next_token
4491
+ # The token for the next set of results.
4492
+ #
4493
+ # @option params [Integer] :max_results
4494
+ # The maximum number of results to return at one time.
4495
+ #
4496
+ # @return [Types::ListTargetsForSecurityProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4497
+ #
4498
+ # * {Types::ListTargetsForSecurityProfileResponse#security_profile_targets #security_profile_targets} => Array&lt;Types::SecurityProfileTarget&gt;
4499
+ # * {Types::ListTargetsForSecurityProfileResponse#next_token #next_token} => String
4500
+ #
4501
+ # @example Request syntax with placeholder values
4502
+ #
4503
+ # resp = client.list_targets_for_security_profile({
4504
+ # security_profile_name: "SecurityProfileName", # required
4505
+ # next_token: "NextToken",
4506
+ # max_results: 1,
4507
+ # })
4508
+ #
4509
+ # @example Response structure
4510
+ #
4511
+ # resp.security_profile_targets #=> Array
4512
+ # resp.security_profile_targets[0].arn #=> String
4513
+ # resp.next_token #=> String
4514
+ #
4515
+ # @overload list_targets_for_security_profile(params = {})
4516
+ # @param [Hash] params ({})
4517
+ def list_targets_for_security_profile(params = {}, options = {})
4518
+ req = build_request(:list_targets_for_security_profile, params)
4519
+ req.send_request(options)
4520
+ end
4521
+
3704
4522
  # List the thing groups in your account.
3705
4523
  #
3706
4524
  # @option params [String] :next_token
3707
- # The token used to get the next set of results, or **null** if there
3708
- # are no additional results.
4525
+ # The token to retrieve the next set of results.
3709
4526
  #
3710
4527
  # @option params [Integer] :max_results
3711
4528
  # The maximum number of results to return at one time.
@@ -3756,8 +4573,7 @@ module Aws::IoT
3756
4573
  # The thing name.
3757
4574
  #
3758
4575
  # @option params [String] :next_token
3759
- # The token used to get the next set of results, or **null** if there
3760
- # are no additional results.
4576
+ # The token to retrieve the next set of results.
3761
4577
  #
3762
4578
  # @option params [Integer] :max_results
3763
4579
  # The maximum number of results to return at one time.
@@ -3862,8 +4678,7 @@ module Aws::IoT
3862
4678
  # List bulk thing provisioning tasks.
3863
4679
  #
3864
4680
  # @option params [String] :next_token
3865
- # The token used to get the next set of results, or **null** if there
3866
- # are no additional results.
4681
+ # The token to retrieve the next set of results.
3867
4682
  #
3868
4683
  # @option params [Integer] :max_results
3869
4684
  # The maximum number of results to return at one time.
@@ -3900,8 +4715,7 @@ module Aws::IoT
3900
4715
  # Lists the existing thing types.
3901
4716
  #
3902
4717
  # @option params [String] :next_token
3903
- # The token for the next set of results, or **null** if there are no
3904
- # additional results.
4718
+ # The token to retrieve the next set of results.
3905
4719
  #
3906
4720
  # @option params [Integer] :max_results
3907
4721
  # The maximum number of results to return in this operation.
@@ -3949,8 +4763,7 @@ module Aws::IoT
3949
4763
  # **Red**.
3950
4764
  #
3951
4765
  # @option params [String] :next_token
3952
- # The token used to get the next set of results, or **null** if there
3953
- # are no additional results.
4766
+ # The token to retrieve the next set of results.
3954
4767
  #
3955
4768
  # @option params [Integer] :max_results
3956
4769
  # The maximum number of results to return in this operation.
@@ -4007,8 +4820,7 @@ module Aws::IoT
4007
4820
  # well.
4008
4821
  #
4009
4822
  # @option params [String] :next_token
4010
- # The token used to get the next set of results, or **null** if there
4011
- # are no additional results.
4823
+ # The token to retrieve the next set of results.
4012
4824
  #
4013
4825
  # @option params [Integer] :max_results
4014
4826
  # The maximum number of results to return at one time.
@@ -4126,6 +4938,78 @@ module Aws::IoT
4126
4938
  req.send_request(options)
4127
4939
  end
4128
4940
 
4941
+ # Lists the Device Defender security profile violations discovered
4942
+ # during the given time period. You can use filters to limit the results
4943
+ # to those alerts issued for a particular security profile, behavior or
4944
+ # thing (device).
4945
+ #
4946
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
4947
+ # The start time for the alerts to be listed.
4948
+ #
4949
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
4950
+ # The end time for the alerts to be listed.
4951
+ #
4952
+ # @option params [String] :thing_name
4953
+ # A filter to limit results to those alerts caused by the specified
4954
+ # thing.
4955
+ #
4956
+ # @option params [String] :security_profile_name
4957
+ # A filter to limit results to those alerts generated by the specified
4958
+ # security profile.
4959
+ #
4960
+ # @option params [String] :next_token
4961
+ # The token for the next set of results.
4962
+ #
4963
+ # @option params [Integer] :max_results
4964
+ # The maximum number of results to return at one time.
4965
+ #
4966
+ # @return [Types::ListViolationEventsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4967
+ #
4968
+ # * {Types::ListViolationEventsResponse#violation_events #violation_events} => Array&lt;Types::ViolationEvent&gt;
4969
+ # * {Types::ListViolationEventsResponse#next_token #next_token} => String
4970
+ #
4971
+ # @example Request syntax with placeholder values
4972
+ #
4973
+ # resp = client.list_violation_events({
4974
+ # start_time: Time.now, # required
4975
+ # end_time: Time.now, # required
4976
+ # thing_name: "ThingName",
4977
+ # security_profile_name: "SecurityProfileName",
4978
+ # next_token: "NextToken",
4979
+ # max_results: 1,
4980
+ # })
4981
+ #
4982
+ # @example Response structure
4983
+ #
4984
+ # resp.violation_events #=> Array
4985
+ # resp.violation_events[0].violation_id #=> String
4986
+ # resp.violation_events[0].thing_name #=> String
4987
+ # resp.violation_events[0].security_profile_name #=> String
4988
+ # resp.violation_events[0].behavior.name #=> String
4989
+ # resp.violation_events[0].behavior.metric #=> String
4990
+ # resp.violation_events[0].behavior.criteria.comparison_operator #=> String, one of "less-than", "less-than-equals", "greater-than", "greater-than-equals", "in-cidr-set", "not-in-cidr-set", "in-port-set", "not-in-port-set"
4991
+ # resp.violation_events[0].behavior.criteria.value.count #=> Integer
4992
+ # resp.violation_events[0].behavior.criteria.value.cidrs #=> Array
4993
+ # resp.violation_events[0].behavior.criteria.value.cidrs[0] #=> String
4994
+ # resp.violation_events[0].behavior.criteria.value.ports #=> Array
4995
+ # resp.violation_events[0].behavior.criteria.value.ports[0] #=> Integer
4996
+ # resp.violation_events[0].behavior.criteria.duration_seconds #=> Integer
4997
+ # resp.violation_events[0].metric_value.count #=> Integer
4998
+ # resp.violation_events[0].metric_value.cidrs #=> Array
4999
+ # resp.violation_events[0].metric_value.cidrs[0] #=> String
5000
+ # resp.violation_events[0].metric_value.ports #=> Array
5001
+ # resp.violation_events[0].metric_value.ports[0] #=> Integer
5002
+ # resp.violation_events[0].violation_event_type #=> String, one of "in-alarm", "alarm-cleared", "alarm-invalidated"
5003
+ # resp.violation_events[0].violation_event_time #=> Time
5004
+ # resp.next_token #=> String
5005
+ #
5006
+ # @overload list_violation_events(params = {})
5007
+ # @param [Hash] params ({})
5008
+ def list_violation_events(params = {}, options = {})
5009
+ req = build_request(:list_violation_events, params)
5010
+ req.send_request(options)
5011
+ end
5012
+
4129
5013
  # Registers a CA certificate with AWS IoT. This CA certificate can then
4130
5014
  # be used to sign device certificates, which can be then registered with
4131
5015
  # AWS IoT. You can register up to 10 CA certificates per AWS account
@@ -4411,11 +5295,11 @@ module Aws::IoT
4411
5295
  # },
4412
5296
  # cloudwatch_metric: {
4413
5297
  # role_arn: "AwsArn", # required
4414
- # metric_namespace: "MetricNamespace", # required
4415
- # metric_name: "MetricName", # required
4416
- # metric_value: "MetricValue", # required
4417
- # metric_unit: "MetricUnit", # required
4418
- # metric_timestamp: "MetricTimestamp",
5298
+ # metric_namespace: "String", # required
5299
+ # metric_name: "String", # required
5300
+ # metric_value: "String", # required
5301
+ # metric_unit: "String", # required
5302
+ # metric_timestamp: "String",
4419
5303
  # },
4420
5304
  # cloudwatch_alarm: {
4421
5305
  # role_arn: "AwsArn", # required
@@ -4439,6 +5323,11 @@ module Aws::IoT
4439
5323
  # channel_name: "ChannelName",
4440
5324
  # role_arn: "AwsArn",
4441
5325
  # },
5326
+ # step_functions: {
5327
+ # execution_name_prefix: "ExecutionNamePrefix",
5328
+ # state_machine_name: "StateMachineName", # required
5329
+ # role_arn: "AwsArn", # required
5330
+ # },
4442
5331
  # },
4443
5332
  # ],
4444
5333
  # rule_disabled: false,
@@ -4497,11 +5386,11 @@ module Aws::IoT
4497
5386
  # },
4498
5387
  # cloudwatch_metric: {
4499
5388
  # role_arn: "AwsArn", # required
4500
- # metric_namespace: "MetricNamespace", # required
4501
- # metric_name: "MetricName", # required
4502
- # metric_value: "MetricValue", # required
4503
- # metric_unit: "MetricUnit", # required
4504
- # metric_timestamp: "MetricTimestamp",
5389
+ # metric_namespace: "String", # required
5390
+ # metric_name: "String", # required
5391
+ # metric_value: "String", # required
5392
+ # metric_unit: "String", # required
5393
+ # metric_timestamp: "String",
4505
5394
  # },
4506
5395
  # cloudwatch_alarm: {
4507
5396
  # role_arn: "AwsArn", # required
@@ -4525,6 +5414,11 @@ module Aws::IoT
4525
5414
  # channel_name: "ChannelName",
4526
5415
  # role_arn: "AwsArn",
4527
5416
  # },
5417
+ # step_functions: {
5418
+ # execution_name_prefix: "ExecutionNamePrefix",
5419
+ # state_machine_name: "StateMachineName", # required
5420
+ # role_arn: "AwsArn", # required
5421
+ # },
4528
5422
  # },
4529
5423
  # },
4530
5424
  # })
@@ -4726,6 +5620,36 @@ module Aws::IoT
4726
5620
  req.send_request(options)
4727
5621
  end
4728
5622
 
5623
+ # Starts an on-demand Device Defender audit.
5624
+ #
5625
+ # @option params [required, Array<String>] :target_check_names
5626
+ # Which checks are performed during the audit. The checks you specify
5627
+ # must be enabled for your account or an exception occurs. Use
5628
+ # `DescribeAccountAuditConfiguration` to see the list of all checks
5629
+ # including those that are enabled or `UpdateAccountAuditConfiguration`
5630
+ # to select which checks are enabled.
5631
+ #
5632
+ # @return [Types::StartOnDemandAuditTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5633
+ #
5634
+ # * {Types::StartOnDemandAuditTaskResponse#task_id #task_id} => String
5635
+ #
5636
+ # @example Request syntax with placeholder values
5637
+ #
5638
+ # resp = client.start_on_demand_audit_task({
5639
+ # target_check_names: ["AuditCheckName"], # required
5640
+ # })
5641
+ #
5642
+ # @example Response structure
5643
+ #
5644
+ # resp.task_id #=> String
5645
+ #
5646
+ # @overload start_on_demand_audit_task(params = {})
5647
+ # @param [Hash] params ({})
5648
+ def start_on_demand_audit_task(params = {}, options = {})
5649
+ req = build_request(:start_on_demand_audit_task, params)
5650
+ req.send_request(options)
5651
+ end
5652
+
4729
5653
  # Creates a bulk thing provisioning task.
4730
5654
  #
4731
5655
  # @option params [required, String] :template_body
@@ -4950,6 +5874,61 @@ module Aws::IoT
4950
5874
  req.send_request(options)
4951
5875
  end
4952
5876
 
5877
+ # Configures or reconfigures the Device Defender audit settings for this
5878
+ # account. Settings include how audit notifications are sent and which
5879
+ # audit checks are enabled or disabled.
5880
+ #
5881
+ # @option params [String] :role_arn
5882
+ # The ARN of the role that grants permission to AWS IoT to access
5883
+ # information about your devices, policies, certificates and other items
5884
+ # as necessary when performing an audit.
5885
+ #
5886
+ # @option params [Hash<String,Types::AuditNotificationTarget>] :audit_notification_target_configurations
5887
+ # Information about the targets to which audit notifications are sent.
5888
+ #
5889
+ # @option params [Hash<String,Types::AuditCheckConfiguration>] :audit_check_configurations
5890
+ # Specifies which audit checks are enabled and disabled for this
5891
+ # account. Use `DescribeAccountAuditConfiguration` to see the list of
5892
+ # all checks including those that are currently enabled.
5893
+ #
5894
+ # Note that some data collection may begin immediately when certain
5895
+ # checks are enabled. When a check is disabled, any data collected so
5896
+ # far in relation to the check is deleted.
5897
+ #
5898
+ # You cannot disable a check if it is used by any scheduled audit. You
5899
+ # must first delete the check from the scheduled audit or delete the
5900
+ # scheduled audit itself.
5901
+ #
5902
+ # On the first call to `UpdateAccountAuditConfiguration` this parameter
5903
+ # is required and must specify at least one enabled check.
5904
+ #
5905
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5906
+ #
5907
+ # @example Request syntax with placeholder values
5908
+ #
5909
+ # resp = client.update_account_audit_configuration({
5910
+ # role_arn: "RoleArn",
5911
+ # audit_notification_target_configurations: {
5912
+ # "SNS" => {
5913
+ # target_arn: "TargetArn",
5914
+ # role_arn: "RoleArn",
5915
+ # enabled: false,
5916
+ # },
5917
+ # },
5918
+ # audit_check_configurations: {
5919
+ # "AuditCheckName" => {
5920
+ # enabled: false,
5921
+ # },
5922
+ # },
5923
+ # })
5924
+ #
5925
+ # @overload update_account_audit_configuration(params = {})
5926
+ # @param [Hash] params ({})
5927
+ def update_account_audit_configuration(params = {}, options = {})
5928
+ req = build_request(:update_account_audit_configuration, params)
5929
+ req.send_request(options)
5930
+ end
5931
+
4953
5932
  # Updates an authorizer.
4954
5933
  #
4955
5934
  # @option params [required, String] :authorizer_name
@@ -5161,6 +6140,151 @@ module Aws::IoT
5161
6140
  req.send_request(options)
5162
6141
  end
5163
6142
 
6143
+ # Updates a scheduled audit, including what checks are performed and how
6144
+ # often the audit takes place.
6145
+ #
6146
+ # @option params [String] :frequency
6147
+ # How often the scheduled audit takes place. Can be one of "DAILY",
6148
+ # "WEEKLY", "BIWEEKLY" or "MONTHLY". The actual start time of each
6149
+ # audit is determined by the system.
6150
+ #
6151
+ # @option params [String] :day_of_month
6152
+ # The day of the month on which the scheduled audit takes place. Can be
6153
+ # "1" through "31" or "LAST". This field is required if the
6154
+ # "frequency" parameter is set to "MONTHLY". If days 29-31 are
6155
+ # specified, and the month does not have that many days, the audit takes
6156
+ # place on the "LAST" day of the month.
6157
+ #
6158
+ # @option params [String] :day_of_week
6159
+ # The day of the week on which the scheduled audit takes place. Can be
6160
+ # one of "SUN", "MON", "TUE", "WED", "THU", "FRI" or
6161
+ # "SAT". This field is required if the "frequency" parameter is set
6162
+ # to "WEEKLY" or "BIWEEKLY".
6163
+ #
6164
+ # @option params [Array<String>] :target_check_names
6165
+ # Which checks are performed during the scheduled audit. Checks must be
6166
+ # enabled for your account. (Use `DescribeAccountAuditConfiguration` to
6167
+ # see the list of all checks including those that are enabled or
6168
+ # `UpdateAccountAuditConfiguration` to select which checks are enabled.)
6169
+ #
6170
+ # @option params [required, String] :scheduled_audit_name
6171
+ # The name of the scheduled audit. (Max. 128 chars)
6172
+ #
6173
+ # @return [Types::UpdateScheduledAuditResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6174
+ #
6175
+ # * {Types::UpdateScheduledAuditResponse#scheduled_audit_arn #scheduled_audit_arn} => String
6176
+ #
6177
+ # @example Request syntax with placeholder values
6178
+ #
6179
+ # resp = client.update_scheduled_audit({
6180
+ # frequency: "DAILY", # accepts DAILY, WEEKLY, BIWEEKLY, MONTHLY
6181
+ # day_of_month: "DayOfMonth",
6182
+ # day_of_week: "SUN", # accepts SUN, MON, TUE, WED, THU, FRI, SAT
6183
+ # target_check_names: ["AuditCheckName"],
6184
+ # scheduled_audit_name: "ScheduledAuditName", # required
6185
+ # })
6186
+ #
6187
+ # @example Response structure
6188
+ #
6189
+ # resp.scheduled_audit_arn #=> String
6190
+ #
6191
+ # @overload update_scheduled_audit(params = {})
6192
+ # @param [Hash] params ({})
6193
+ def update_scheduled_audit(params = {}, options = {})
6194
+ req = build_request(:update_scheduled_audit, params)
6195
+ req.send_request(options)
6196
+ end
6197
+
6198
+ # Updates a Device Defender security profile.
6199
+ #
6200
+ # @option params [required, String] :security_profile_name
6201
+ # The name of the security profile you want to update.
6202
+ #
6203
+ # @option params [String] :security_profile_description
6204
+ # A description of the security profile.
6205
+ #
6206
+ # @option params [Array<Types::Behavior>] :behaviors
6207
+ # Specifies the behaviors that, when violated by a device (thing), cause
6208
+ # an alert.
6209
+ #
6210
+ # @option params [Hash<String,Types::AlertTarget>] :alert_targets
6211
+ # Where the alerts are sent. (Alerts are always sent to the console.)
6212
+ #
6213
+ # @option params [Integer] :expected_version
6214
+ # The expected version of the security profile. A new version is
6215
+ # generated whenever the security profile is updated. If you specify a
6216
+ # value that is different than the actual version, a
6217
+ # `VersionConflictException` is thrown.
6218
+ #
6219
+ # @return [Types::UpdateSecurityProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6220
+ #
6221
+ # * {Types::UpdateSecurityProfileResponse#security_profile_name #security_profile_name} => String
6222
+ # * {Types::UpdateSecurityProfileResponse#security_profile_arn #security_profile_arn} => String
6223
+ # * {Types::UpdateSecurityProfileResponse#security_profile_description #security_profile_description} => String
6224
+ # * {Types::UpdateSecurityProfileResponse#behaviors #behaviors} => Array&lt;Types::Behavior&gt;
6225
+ # * {Types::UpdateSecurityProfileResponse#alert_targets #alert_targets} => Hash&lt;String,Types::AlertTarget&gt;
6226
+ # * {Types::UpdateSecurityProfileResponse#version #version} => Integer
6227
+ # * {Types::UpdateSecurityProfileResponse#creation_date #creation_date} => Time
6228
+ # * {Types::UpdateSecurityProfileResponse#last_modified_date #last_modified_date} => Time
6229
+ #
6230
+ # @example Request syntax with placeholder values
6231
+ #
6232
+ # resp = client.update_security_profile({
6233
+ # security_profile_name: "SecurityProfileName", # required
6234
+ # security_profile_description: "SecurityProfileDescription",
6235
+ # behaviors: [
6236
+ # {
6237
+ # name: "BehaviorName", # required
6238
+ # metric: "BehaviorMetric",
6239
+ # criteria: {
6240
+ # comparison_operator: "less-than", # accepts less-than, less-than-equals, greater-than, greater-than-equals, in-cidr-set, not-in-cidr-set, in-port-set, not-in-port-set
6241
+ # value: {
6242
+ # count: 1,
6243
+ # cidrs: ["Cidr"],
6244
+ # ports: [1],
6245
+ # },
6246
+ # duration_seconds: 1,
6247
+ # },
6248
+ # },
6249
+ # ],
6250
+ # alert_targets: {
6251
+ # "SNS" => {
6252
+ # alert_target_arn: "AlertTargetArn", # required
6253
+ # role_arn: "RoleArn", # required
6254
+ # },
6255
+ # },
6256
+ # expected_version: 1,
6257
+ # })
6258
+ #
6259
+ # @example Response structure
6260
+ #
6261
+ # resp.security_profile_name #=> String
6262
+ # resp.security_profile_arn #=> String
6263
+ # resp.security_profile_description #=> String
6264
+ # resp.behaviors #=> Array
6265
+ # resp.behaviors[0].name #=> String
6266
+ # resp.behaviors[0].metric #=> String
6267
+ # resp.behaviors[0].criteria.comparison_operator #=> String, one of "less-than", "less-than-equals", "greater-than", "greater-than-equals", "in-cidr-set", "not-in-cidr-set", "in-port-set", "not-in-port-set"
6268
+ # resp.behaviors[0].criteria.value.count #=> Integer
6269
+ # resp.behaviors[0].criteria.value.cidrs #=> Array
6270
+ # resp.behaviors[0].criteria.value.cidrs[0] #=> String
6271
+ # resp.behaviors[0].criteria.value.ports #=> Array
6272
+ # resp.behaviors[0].criteria.value.ports[0] #=> Integer
6273
+ # resp.behaviors[0].criteria.duration_seconds #=> Integer
6274
+ # resp.alert_targets #=> Hash
6275
+ # resp.alert_targets["AlertTargetType"].alert_target_arn #=> String
6276
+ # resp.alert_targets["AlertTargetType"].role_arn #=> String
6277
+ # resp.version #=> Integer
6278
+ # resp.creation_date #=> Time
6279
+ # resp.last_modified_date #=> Time
6280
+ #
6281
+ # @overload update_security_profile(params = {})
6282
+ # @param [Hash] params ({})
6283
+ def update_security_profile(params = {}, options = {})
6284
+ req = build_request(:update_security_profile, params)
6285
+ req.send_request(options)
6286
+ end
6287
+
5164
6288
  # Updates an existing stream. The stream version will be incremented by
5165
6289
  # one.
5166
6290
  #
@@ -5337,6 +6461,50 @@ module Aws::IoT
5337
6461
  req.send_request(options)
5338
6462
  end
5339
6463
 
6464
+ # Validates a Device Defender security profile behaviors specification.
6465
+ #
6466
+ # @option params [required, Array<Types::Behavior>] :behaviors
6467
+ # Specifies the behaviors that, when violated by a device (thing), cause
6468
+ # an alert.
6469
+ #
6470
+ # @return [Types::ValidateSecurityProfileBehaviorsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6471
+ #
6472
+ # * {Types::ValidateSecurityProfileBehaviorsResponse#valid #valid} => Boolean
6473
+ # * {Types::ValidateSecurityProfileBehaviorsResponse#validation_errors #validation_errors} => Array&lt;Types::ValidationError&gt;
6474
+ #
6475
+ # @example Request syntax with placeholder values
6476
+ #
6477
+ # resp = client.validate_security_profile_behaviors({
6478
+ # behaviors: [ # required
6479
+ # {
6480
+ # name: "BehaviorName", # required
6481
+ # metric: "BehaviorMetric",
6482
+ # criteria: {
6483
+ # comparison_operator: "less-than", # accepts less-than, less-than-equals, greater-than, greater-than-equals, in-cidr-set, not-in-cidr-set, in-port-set, not-in-port-set
6484
+ # value: {
6485
+ # count: 1,
6486
+ # cidrs: ["Cidr"],
6487
+ # ports: [1],
6488
+ # },
6489
+ # duration_seconds: 1,
6490
+ # },
6491
+ # },
6492
+ # ],
6493
+ # })
6494
+ #
6495
+ # @example Response structure
6496
+ #
6497
+ # resp.valid #=> Boolean
6498
+ # resp.validation_errors #=> Array
6499
+ # resp.validation_errors[0].error_message #=> String
6500
+ #
6501
+ # @overload validate_security_profile_behaviors(params = {})
6502
+ # @param [Hash] params ({})
6503
+ def validate_security_profile_behaviors(params = {}, options = {})
6504
+ req = build_request(:validate_security_profile_behaviors, params)
6505
+ req.send_request(options)
6506
+ end
6507
+
5340
6508
  # @!endgroup
5341
6509
 
5342
6510
  # @param params ({})
@@ -5350,7 +6518,7 @@ module Aws::IoT
5350
6518
  params: params,
5351
6519
  config: config)
5352
6520
  context[:gem_name] = 'aws-sdk-iot'
5353
- context[:gem_version] = '1.10.0'
6521
+ context[:gem_version] = '1.11.0'
5354
6522
  Seahorse::Client::Request.new(handlers, context)
5355
6523
  end
5356
6524