aws-sdk-iot 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
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