aws-sdk-iot 1.63.0 → 1.64.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
  SHA256:
3
- metadata.gz: 95d1a1e0d8ec3ef76c6422d8575fb17f8c475e2b6befa251054daa0bdd1efce7
4
- data.tar.gz: 3c3f38a1c01e8eb0e4ea3b2575cd9d5c8cc2e38906a8e82e5ac5578969d96c33
3
+ metadata.gz: 6fe88ed3759bd03049b88667c451d720a645963b3afa3bd4ea5bd181834a04dc
4
+ data.tar.gz: 2f04674129daf0f79d48cce866007a1cd9d71d1d912a258fa0593e19bc8d3963
5
5
  SHA512:
6
- metadata.gz: b07c14ff5dd238040965777dcd422c241589dfc3da3669316b744ac2bbe6359545e71fdfa99b45bf88f0c0d0d30e76475194faa3c6a07791968bfc984c0936f0
7
- data.tar.gz: 633a7ec3980a0a0247a1252195b6050631ac3d1a709e22990e515459e37ff00be53c2b885bc5debe372630d94837f77e3f80d4782d10ec622c8ef1d73de2cccd
6
+ metadata.gz: d109b45e7098cdafceef9b528b81538d89db7f98f308a51cb4ca75c54fca4f6bb4c83c22041503961d86fe717fd5b1ecddd682d93583e3c9ef691026d75ed034
7
+ data.tar.gz: fce628d2fbae33f10cc1b0121fdb88e2a99e32f2c8f73e2f74a4e28bb55580cd7e7dc19bfaf79266681c504d2d9a8218ce726c59994f1317e32cc3fcc0d19abc
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-iot/customizations'
48
48
  # @!group service
49
49
  module Aws::IoT
50
50
 
51
- GEM_VERSION = '1.63.0'
51
+ GEM_VERSION = '1.64.0'
52
52
 
53
53
  end
@@ -610,7 +610,7 @@ module Aws::IoT
610
610
  # @example Request syntax with placeholder values
611
611
  #
612
612
  # resp = client.cancel_audit_mitigation_actions_task({
613
- # task_id: "AuditMitigationActionsTaskId", # required
613
+ # task_id: "MitigationActionsTaskId", # required
614
614
  # })
615
615
  #
616
616
  # @overload cancel_audit_mitigation_actions_task(params = {})
@@ -621,7 +621,7 @@ module Aws::IoT
621
621
  end
622
622
 
623
623
  # Cancels an audit that is in progress. The audit can be either
624
- # scheduled or on-demand. If the audit is not in progress, an
624
+ # scheduled or on demand. If the audit isn't in progress, an
625
625
  # "InvalidRequestException" occurs.
626
626
  #
627
627
  # @option params [required, String] :task_id
@@ -674,6 +674,26 @@ module Aws::IoT
674
674
  req.send_request(options)
675
675
  end
676
676
 
677
+ # Cancels a Device Defender ML Detect mitigation action.
678
+ #
679
+ # @option params [required, String] :task_id
680
+ # The unique identifier of the task.
681
+ #
682
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
683
+ #
684
+ # @example Request syntax with placeholder values
685
+ #
686
+ # resp = client.cancel_detect_mitigation_actions_task({
687
+ # task_id: "MitigationActionsTaskId", # required
688
+ # })
689
+ #
690
+ # @overload cancel_detect_mitigation_actions_task(params = {})
691
+ # @param [Hash] params ({})
692
+ def cancel_detect_mitigation_actions_task(params = {}, options = {})
693
+ req = build_request(:cancel_detect_mitigation_actions_task, params)
694
+ req.send_request(options)
695
+ end
696
+
677
697
  # Cancels a job.
678
698
  #
679
699
  # @option params [required, String] :job_id
@@ -1071,6 +1091,67 @@ module Aws::IoT
1071
1091
  req.send_request(options)
1072
1092
  end
1073
1093
 
1094
+ # Use this API to define a Custom Metric published by your devices to
1095
+ # Device Defender.
1096
+ #
1097
+ # @option params [required, String] :metric_name
1098
+ # The name of the custom metric. This will be used in the metric report
1099
+ # submitted from the device/thing. Shouldn't begin with `aws:`. Cannot
1100
+ # be updated once defined.
1101
+ #
1102
+ # @option params [String] :display_name
1103
+ # Field represents a friendly name in the console for the custom metric;
1104
+ # it doesn't have to be unique. Don't use this name as the metric
1105
+ # identifier in the device metric report. Can be updated once defined.
1106
+ #
1107
+ # @option params [required, String] :metric_type
1108
+ # The type of the custom metric. Types include `string-list`,
1109
+ # `ip-address-list`, `number-list`, and `number`.
1110
+ #
1111
+ # @option params [Array<Types::Tag>] :tags
1112
+ # Metadata that can be used to manage the custom metric.
1113
+ #
1114
+ # @option params [required, String] :client_request_token
1115
+ # Each custom metric must have a unique client request token. If you try
1116
+ # to create a new custom metric that already exists with a different
1117
+ # token, an exception occurs. If you omit this value, AWS SDKs will
1118
+ # automatically generate a unique client request.
1119
+ #
1120
+ # **A suitable default value is auto-generated.** You should normally
1121
+ # not need to pass this option.**
1122
+ #
1123
+ # @return [Types::CreateCustomMetricResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1124
+ #
1125
+ # * {Types::CreateCustomMetricResponse#metric_name #metric_name} => String
1126
+ # * {Types::CreateCustomMetricResponse#metric_arn #metric_arn} => String
1127
+ #
1128
+ # @example Request syntax with placeholder values
1129
+ #
1130
+ # resp = client.create_custom_metric({
1131
+ # metric_name: "MetricName", # required
1132
+ # display_name: "CustomMetricDisplayName",
1133
+ # metric_type: "string-list", # required, accepts string-list, ip-address-list, number-list, number
1134
+ # tags: [
1135
+ # {
1136
+ # key: "TagKey", # required
1137
+ # value: "TagValue",
1138
+ # },
1139
+ # ],
1140
+ # client_request_token: "ClientRequestToken", # required
1141
+ # })
1142
+ #
1143
+ # @example Response structure
1144
+ #
1145
+ # resp.metric_name #=> String
1146
+ # resp.metric_arn #=> String
1147
+ #
1148
+ # @overload create_custom_metric(params = {})
1149
+ # @param [Hash] params ({})
1150
+ def create_custom_metric(params = {}, options = {})
1151
+ req = build_request(:create_custom_metric, params)
1152
+ req.send_request(options)
1153
+ end
1154
+
1074
1155
  # Create a dimension that you can use to limit the scope of a metric
1075
1156
  # used in a security profile for AWS IoT Device Defender. For example,
1076
1157
  # using a `TOPIC_FILTER` dimension, you can narrow down the scope of the
@@ -2052,22 +2133,22 @@ module Aws::IoT
2052
2133
  # Creates a scheduled audit that is run at a specified time interval.
2053
2134
  #
2054
2135
  # @option params [required, String] :frequency
2055
- # How often the scheduled audit takes place. Can be one of "DAILY",
2056
- # "WEEKLY", "BIWEEKLY" or "MONTHLY". The start time of each audit
2057
- # is determined by the system.
2136
+ # How often the scheduled audit takes place, either `DAILY`, `WEEKLY`,
2137
+ # `BIWEEKLY` or `MONTHLY`. The start time of each audit is determined by
2138
+ # the system.
2058
2139
  #
2059
2140
  # @option params [String] :day_of_month
2060
- # The day of the month on which the scheduled audit takes place. Can be
2061
- # "1" through "31" or "LAST". This field is required if the
2062
- # "frequency" parameter is set to "MONTHLY". If days 29-31 are
2063
- # specified, and the month does not have that many days, the audit takes
2064
- # place on the "LAST" day of the month.
2141
+ # The day of the month on which the scheduled audit takes place. This
2142
+ # can be "1" through "31" or "LAST". This field is required if the
2143
+ # "frequency" parameter is set to `MONTHLY`. If days 29 to 31 are
2144
+ # specified, and the month doesn't have that many days, the audit takes
2145
+ # place on the `LAST` day of the month.
2065
2146
  #
2066
2147
  # @option params [String] :day_of_week
2067
- # The day of the week on which the scheduled audit takes place. Can be
2068
- # one of "SUN", "MON", "TUE", "WED", "THU", "FRI", or
2069
- # "SAT". This field is required if the "frequency" parameter is set
2070
- # to "WEEKLY" or "BIWEEKLY".
2148
+ # The day of the week on which the scheduled audit takes place, either
2149
+ # `SUN`, `MON`, `TUE`, `WED`, `THU`, `FRI`, or `SAT`. This field is
2150
+ # required if the `frequency` parameter is set to `WEEKLY` or
2151
+ # `BIWEEKLY`.
2071
2152
  #
2072
2153
  # @option params [required, Array<String>] :target_check_names
2073
2154
  # Which checks are performed during the scheduled audit. Checks must be
@@ -2135,12 +2216,14 @@ module Aws::IoT
2135
2216
  #
2136
2217
  # A list of metrics whose data is retained (stored). By default, data is
2137
2218
  # retained for any metric used in the profile's `behaviors`, but it is
2138
- # also retained for any metric specified here.
2219
+ # also retained for any metric specified here. Can be used with custom
2220
+ # metrics; cannot be used with dimensions.
2139
2221
  #
2140
2222
  # @option params [Array<Types::MetricToRetain>] :additional_metrics_to_retain_v2
2141
2223
  # A list of metrics whose data is retained (stored). By default, data is
2142
2224
  # retained for any metric used in the profile's `behaviors`, but it is
2143
- # also retained for any metric specified here.
2225
+ # also retained for any metric specified here. Can be used with custom
2226
+ # metrics; cannot be used with dimensions.
2144
2227
  #
2145
2228
  # @option params [Array<Types::Tag>] :tags
2146
2229
  # Metadata that can be used to manage the security profile.
@@ -2164,11 +2247,14 @@ module Aws::IoT
2164
2247
  # operator: "IN", # accepts IN, NOT_IN
2165
2248
  # },
2166
2249
  # criteria: {
2167
- # 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
2250
+ # 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, in-set, not-in-set
2168
2251
  # value: {
2169
2252
  # count: 1,
2170
2253
  # cidrs: ["Cidr"],
2171
2254
  # ports: [1],
2255
+ # number: 1.0,
2256
+ # numbers: [1.0],
2257
+ # strings: ["stringValue"],
2172
2258
  # },
2173
2259
  # duration_seconds: 1,
2174
2260
  # consecutive_datapoints_to_alarm: 1,
@@ -2176,7 +2262,11 @@ module Aws::IoT
2176
2262
  # statistical_threshold: {
2177
2263
  # statistic: "EvaluationStatistic",
2178
2264
  # },
2265
+ # ml_detection_config: {
2266
+ # confidence_level: "LOW", # required, accepts LOW, MEDIUM, HIGH
2267
+ # },
2179
2268
  # },
2269
+ # suppress_alerts: false,
2180
2270
  # },
2181
2271
  # ],
2182
2272
  # alert_targets: {
@@ -2651,6 +2741,15 @@ module Aws::IoT
2651
2741
  # },
2652
2742
  # },
2653
2743
  # },
2744
+ # kafka: {
2745
+ # destination_arn: "AwsArn", # required
2746
+ # topic: "String", # required
2747
+ # key: "String",
2748
+ # partition: "String",
2749
+ # client_properties: { # required
2750
+ # "String" => "String",
2751
+ # },
2752
+ # },
2654
2753
  # },
2655
2754
  # ],
2656
2755
  # rule_disabled: false,
@@ -2813,6 +2912,15 @@ module Aws::IoT
2813
2912
  # },
2814
2913
  # },
2815
2914
  # },
2915
+ # kafka: {
2916
+ # destination_arn: "AwsArn", # required
2917
+ # topic: "String", # required
2918
+ # key: "String",
2919
+ # partition: "String",
2920
+ # client_properties: { # required
2921
+ # "String" => "String",
2922
+ # },
2923
+ # },
2816
2924
  # },
2817
2925
  # },
2818
2926
  # tags: "String",
@@ -2842,15 +2950,29 @@ module Aws::IoT
2842
2950
  # http_url_configuration: {
2843
2951
  # confirmation_url: "Url", # required
2844
2952
  # },
2953
+ # vpc_configuration: {
2954
+ # subnet_ids: ["SubnetId"], # required
2955
+ # security_groups: ["SecurityGroupId"],
2956
+ # vpc_id: "VpcId", # required
2957
+ # role_arn: "AwsArn", # required
2958
+ # },
2845
2959
  # },
2846
2960
  # })
2847
2961
  #
2848
2962
  # @example Response structure
2849
2963
  #
2850
2964
  # resp.topic_rule_destination.arn #=> String
2851
- # resp.topic_rule_destination.status #=> String, one of "ENABLED", "IN_PROGRESS", "DISABLED", "ERROR"
2965
+ # resp.topic_rule_destination.status #=> String, one of "ENABLED", "IN_PROGRESS", "DISABLED", "ERROR", "DELETING"
2966
+ # resp.topic_rule_destination.created_at #=> Time
2967
+ # resp.topic_rule_destination.last_updated_at #=> Time
2852
2968
  # resp.topic_rule_destination.status_reason #=> String
2853
2969
  # resp.topic_rule_destination.http_url_properties.confirmation_url #=> String
2970
+ # resp.topic_rule_destination.vpc_properties.subnet_ids #=> Array
2971
+ # resp.topic_rule_destination.vpc_properties.subnet_ids[0] #=> String
2972
+ # resp.topic_rule_destination.vpc_properties.security_groups #=> Array
2973
+ # resp.topic_rule_destination.vpc_properties.security_groups[0] #=> String
2974
+ # resp.topic_rule_destination.vpc_properties.vpc_id #=> String
2975
+ # resp.topic_rule_destination.vpc_properties.role_arn #=> String
2854
2976
  #
2855
2977
  # @overload create_topic_rule_destination(params = {})
2856
2978
  # @param [Hash] params ({})
@@ -3020,6 +3142,38 @@ module Aws::IoT
3020
3142
  req.send_request(options)
3021
3143
  end
3022
3144
 
3145
+ # <note markdown="1"> Before you can delete a custom metric, you must first remove the
3146
+ # custom metric from all security profiles it's a part of. The security
3147
+ # profile associated with the custom metric can be found using the
3148
+ # [ListSecurityProfiles][1] API with `metricName` set to your custom
3149
+ # metric name.
3150
+ #
3151
+ # </note>
3152
+ #
3153
+ # Deletes a Device Defender detect custom metric.
3154
+ #
3155
+ #
3156
+ #
3157
+ # [1]: https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html
3158
+ #
3159
+ # @option params [required, String] :metric_name
3160
+ # The name of the custom metric.
3161
+ #
3162
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3163
+ #
3164
+ # @example Request syntax with placeholder values
3165
+ #
3166
+ # resp = client.delete_custom_metric({
3167
+ # metric_name: "MetricName", # required
3168
+ # })
3169
+ #
3170
+ # @overload delete_custom_metric(params = {})
3171
+ # @param [Hash] params ({})
3172
+ def delete_custom_metric(params = {}, options = {})
3173
+ req = build_request(:delete_custom_metric, params)
3174
+ req.send_request(options)
3175
+ end
3176
+
3023
3177
  # Removes the specified dimension from your AWS account.
3024
3178
  #
3025
3179
  # @option params [required, String] :name
@@ -3661,8 +3815,8 @@ module Aws::IoT
3661
3815
  end
3662
3816
 
3663
3817
  # Gets information about a single audit finding. Properties include the
3664
- # reason for noncompliance, the severity of the issue, and when the
3665
- # audit that returned the finding was started.
3818
+ # reason for noncompliance, the severity of the issue, and the start
3819
+ # time when the audit that returned the finding.
3666
3820
  #
3667
3821
  # @option params [required, String] :finding_id
3668
3822
  # A unique identifier for a single audit finding. You can use this
@@ -3743,7 +3897,7 @@ module Aws::IoT
3743
3897
  # @example Request syntax with placeholder values
3744
3898
  #
3745
3899
  # resp = client.describe_audit_mitigation_actions_task({
3746
- # task_id: "AuditMitigationActionsTaskId", # required
3900
+ # task_id: "MitigationActionsTaskId", # required
3747
3901
  # })
3748
3902
  #
3749
3903
  # @example Response structure
@@ -4053,6 +4207,42 @@ module Aws::IoT
4053
4207
  req.send_request(options)
4054
4208
  end
4055
4209
 
4210
+ # Gets information about a Device Defender detect custom metric.
4211
+ #
4212
+ # @option params [required, String] :metric_name
4213
+ # The name of the custom metric.
4214
+ #
4215
+ # @return [Types::DescribeCustomMetricResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4216
+ #
4217
+ # * {Types::DescribeCustomMetricResponse#metric_name #metric_name} => String
4218
+ # * {Types::DescribeCustomMetricResponse#metric_arn #metric_arn} => String
4219
+ # * {Types::DescribeCustomMetricResponse#metric_type #metric_type} => String
4220
+ # * {Types::DescribeCustomMetricResponse#display_name #display_name} => String
4221
+ # * {Types::DescribeCustomMetricResponse#creation_date #creation_date} => Time
4222
+ # * {Types::DescribeCustomMetricResponse#last_modified_date #last_modified_date} => Time
4223
+ #
4224
+ # @example Request syntax with placeholder values
4225
+ #
4226
+ # resp = client.describe_custom_metric({
4227
+ # metric_name: "MetricName", # required
4228
+ # })
4229
+ #
4230
+ # @example Response structure
4231
+ #
4232
+ # resp.metric_name #=> String
4233
+ # resp.metric_arn #=> String
4234
+ # resp.metric_type #=> String, one of "string-list", "ip-address-list", "number-list", "number"
4235
+ # resp.display_name #=> String
4236
+ # resp.creation_date #=> Time
4237
+ # resp.last_modified_date #=> Time
4238
+ #
4239
+ # @overload describe_custom_metric(params = {})
4240
+ # @param [Hash] params ({})
4241
+ def describe_custom_metric(params = {}, options = {})
4242
+ req = build_request(:describe_custom_metric, params)
4243
+ req.send_request(options)
4244
+ end
4245
+
4056
4246
  # Describes the default authorizer.
4057
4247
  #
4058
4248
  # @return [Types::DescribeDefaultAuthorizerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -4079,6 +4269,59 @@ module Aws::IoT
4079
4269
  req.send_request(options)
4080
4270
  end
4081
4271
 
4272
+ # Gets information about a Device Defender ML Detect mitigation action.
4273
+ #
4274
+ # @option params [required, String] :task_id
4275
+ # The unique identifier of the task.
4276
+ #
4277
+ # @return [Types::DescribeDetectMitigationActionsTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4278
+ #
4279
+ # * {Types::DescribeDetectMitigationActionsTaskResponse#task_summary #task_summary} => Types::DetectMitigationActionsTaskSummary
4280
+ #
4281
+ # @example Request syntax with placeholder values
4282
+ #
4283
+ # resp = client.describe_detect_mitigation_actions_task({
4284
+ # task_id: "MitigationActionsTaskId", # required
4285
+ # })
4286
+ #
4287
+ # @example Response structure
4288
+ #
4289
+ # resp.task_summary.task_id #=> String
4290
+ # resp.task_summary.task_status #=> String, one of "IN_PROGRESS", "SUCCESSFUL", "FAILED", "CANCELED"
4291
+ # resp.task_summary.task_start_time #=> Time
4292
+ # resp.task_summary.task_end_time #=> Time
4293
+ # resp.task_summary.target.violation_ids #=> Array
4294
+ # resp.task_summary.target.violation_ids[0] #=> String
4295
+ # resp.task_summary.target.security_profile_name #=> String
4296
+ # resp.task_summary.target.behavior_name #=> String
4297
+ # resp.task_summary.violation_event_occurrence_range.start_time #=> Time
4298
+ # resp.task_summary.violation_event_occurrence_range.end_time #=> Time
4299
+ # resp.task_summary.only_active_violations_included #=> Boolean
4300
+ # resp.task_summary.suppressed_alerts_included #=> Boolean
4301
+ # resp.task_summary.actions_definition #=> Array
4302
+ # resp.task_summary.actions_definition[0].name #=> String
4303
+ # resp.task_summary.actions_definition[0].id #=> String
4304
+ # resp.task_summary.actions_definition[0].role_arn #=> String
4305
+ # resp.task_summary.actions_definition[0].action_params.update_device_certificate_params.action #=> String, one of "DEACTIVATE"
4306
+ # resp.task_summary.actions_definition[0].action_params.update_ca_certificate_params.action #=> String, one of "DEACTIVATE"
4307
+ # resp.task_summary.actions_definition[0].action_params.add_things_to_thing_group_params.thing_group_names #=> Array
4308
+ # resp.task_summary.actions_definition[0].action_params.add_things_to_thing_group_params.thing_group_names[0] #=> String
4309
+ # resp.task_summary.actions_definition[0].action_params.add_things_to_thing_group_params.override_dynamic_groups #=> Boolean
4310
+ # resp.task_summary.actions_definition[0].action_params.replace_default_policy_version_params.template_name #=> String, one of "BLANK_POLICY"
4311
+ # resp.task_summary.actions_definition[0].action_params.enable_io_t_logging_params.role_arn_for_logging #=> String
4312
+ # resp.task_summary.actions_definition[0].action_params.enable_io_t_logging_params.log_level #=> String, one of "DEBUG", "INFO", "ERROR", "WARN", "DISABLED"
4313
+ # resp.task_summary.actions_definition[0].action_params.publish_finding_to_sns_params.topic_arn #=> String
4314
+ # resp.task_summary.task_statistics.actions_executed #=> Integer
4315
+ # resp.task_summary.task_statistics.actions_skipped #=> Integer
4316
+ # resp.task_summary.task_statistics.actions_failed #=> Integer
4317
+ #
4318
+ # @overload describe_detect_mitigation_actions_task(params = {})
4319
+ # @param [Hash] params ({})
4320
+ def describe_detect_mitigation_actions_task(params = {}, options = {})
4321
+ req = build_request(:describe_detect_mitigation_actions_task, params)
4322
+ req.send_request(options)
4323
+ end
4324
+
4082
4325
  # Provides details about a dimension that is defined in your AWS
4083
4326
  # account.
4084
4327
  #
@@ -4612,16 +4855,23 @@ module Aws::IoT
4612
4855
  # resp.behaviors[0].metric #=> String
4613
4856
  # resp.behaviors[0].metric_dimension.dimension_name #=> String
4614
4857
  # resp.behaviors[0].metric_dimension.operator #=> String, one of "IN", "NOT_IN"
4615
- # 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"
4858
+ # 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", "in-set", "not-in-set"
4616
4859
  # resp.behaviors[0].criteria.value.count #=> Integer
4617
4860
  # resp.behaviors[0].criteria.value.cidrs #=> Array
4618
4861
  # resp.behaviors[0].criteria.value.cidrs[0] #=> String
4619
4862
  # resp.behaviors[0].criteria.value.ports #=> Array
4620
4863
  # resp.behaviors[0].criteria.value.ports[0] #=> Integer
4864
+ # resp.behaviors[0].criteria.value.number #=> Float
4865
+ # resp.behaviors[0].criteria.value.numbers #=> Array
4866
+ # resp.behaviors[0].criteria.value.numbers[0] #=> Float
4867
+ # resp.behaviors[0].criteria.value.strings #=> Array
4868
+ # resp.behaviors[0].criteria.value.strings[0] #=> String
4621
4869
  # resp.behaviors[0].criteria.duration_seconds #=> Integer
4622
4870
  # resp.behaviors[0].criteria.consecutive_datapoints_to_alarm #=> Integer
4623
4871
  # resp.behaviors[0].criteria.consecutive_datapoints_to_clear #=> Integer
4624
4872
  # resp.behaviors[0].criteria.statistical_threshold.statistic #=> String
4873
+ # resp.behaviors[0].criteria.ml_detection_config.confidence_level #=> String, one of "LOW", "MEDIUM", "HIGH"
4874
+ # resp.behaviors[0].suppress_alerts #=> Boolean
4625
4875
  # resp.alert_targets #=> Hash
4626
4876
  # resp.alert_targets["AlertTargetType"].alert_target_arn #=> String
4627
4877
  # resp.alert_targets["AlertTargetType"].role_arn #=> String
@@ -5012,6 +5262,52 @@ module Aws::IoT
5012
5262
  req.send_request(options)
5013
5263
  end
5014
5264
 
5265
+ # Returns a Device Defender's ML Detect Security Profile training
5266
+ # model's status.
5267
+ #
5268
+ # @option params [String] :security_profile_name
5269
+ # The name of the security profile.
5270
+ #
5271
+ # @option params [Integer] :max_results
5272
+ # The maximum number of results to return at one time. The default is
5273
+ # 25.
5274
+ #
5275
+ # @option params [String] :next_token
5276
+ # The token for the next set of results.
5277
+ #
5278
+ # @return [Types::GetBehaviorModelTrainingSummariesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5279
+ #
5280
+ # * {Types::GetBehaviorModelTrainingSummariesResponse#summaries #summaries} => Array&lt;Types::BehaviorModelTrainingSummary&gt;
5281
+ # * {Types::GetBehaviorModelTrainingSummariesResponse#next_token #next_token} => String
5282
+ #
5283
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5284
+ #
5285
+ # @example Request syntax with placeholder values
5286
+ #
5287
+ # resp = client.get_behavior_model_training_summaries({
5288
+ # security_profile_name: "SecurityProfileName",
5289
+ # max_results: 1,
5290
+ # next_token: "NextToken",
5291
+ # })
5292
+ #
5293
+ # @example Response structure
5294
+ #
5295
+ # resp.summaries #=> Array
5296
+ # resp.summaries[0].security_profile_name #=> String
5297
+ # resp.summaries[0].behavior_name #=> String
5298
+ # resp.summaries[0].training_data_collection_start_date #=> Time
5299
+ # resp.summaries[0].model_status #=> String, one of "PENDING_BUILD", "ACTIVE", "EXPIRED"
5300
+ # resp.summaries[0].datapoints_collection_percentage #=> Float
5301
+ # resp.summaries[0].last_model_refresh_date #=> Time
5302
+ # resp.next_token #=> String
5303
+ #
5304
+ # @overload get_behavior_model_training_summaries(params = {})
5305
+ # @param [Hash] params ({})
5306
+ def get_behavior_model_training_summaries(params = {}, options = {})
5307
+ req = build_request(:get_behavior_model_training_summaries, params)
5308
+ req.send_request(options)
5309
+ end
5310
+
5015
5311
  # Returns the approximate count of unique values that match the query.
5016
5312
  #
5017
5313
  # @option params [String] :index_name
@@ -5565,6 +5861,12 @@ module Aws::IoT
5565
5861
  # resp.rule.actions[0].http.auth.sigv4.signing_region #=> String
5566
5862
  # resp.rule.actions[0].http.auth.sigv4.service_name #=> String
5567
5863
  # resp.rule.actions[0].http.auth.sigv4.role_arn #=> String
5864
+ # resp.rule.actions[0].kafka.destination_arn #=> String
5865
+ # resp.rule.actions[0].kafka.topic #=> String
5866
+ # resp.rule.actions[0].kafka.key #=> String
5867
+ # resp.rule.actions[0].kafka.partition #=> String
5868
+ # resp.rule.actions[0].kafka.client_properties #=> Hash
5869
+ # resp.rule.actions[0].kafka.client_properties["String"] #=> String
5568
5870
  # resp.rule.rule_disabled #=> Boolean
5569
5871
  # resp.rule.aws_iot_sql_version #=> String
5570
5872
  # resp.rule.error_action.dynamo_db.table_name #=> String
@@ -5660,6 +5962,12 @@ module Aws::IoT
5660
5962
  # resp.rule.error_action.http.auth.sigv4.signing_region #=> String
5661
5963
  # resp.rule.error_action.http.auth.sigv4.service_name #=> String
5662
5964
  # resp.rule.error_action.http.auth.sigv4.role_arn #=> String
5965
+ # resp.rule.error_action.kafka.destination_arn #=> String
5966
+ # resp.rule.error_action.kafka.topic #=> String
5967
+ # resp.rule.error_action.kafka.key #=> String
5968
+ # resp.rule.error_action.kafka.partition #=> String
5969
+ # resp.rule.error_action.kafka.client_properties #=> Hash
5970
+ # resp.rule.error_action.kafka.client_properties["String"] #=> String
5663
5971
  #
5664
5972
  # @overload get_topic_rule(params = {})
5665
5973
  # @param [Hash] params ({})
@@ -5686,9 +5994,17 @@ module Aws::IoT
5686
5994
  # @example Response structure
5687
5995
  #
5688
5996
  # resp.topic_rule_destination.arn #=> String
5689
- # resp.topic_rule_destination.status #=> String, one of "ENABLED", "IN_PROGRESS", "DISABLED", "ERROR"
5997
+ # resp.topic_rule_destination.status #=> String, one of "ENABLED", "IN_PROGRESS", "DISABLED", "ERROR", "DELETING"
5998
+ # resp.topic_rule_destination.created_at #=> Time
5999
+ # resp.topic_rule_destination.last_updated_at #=> Time
5690
6000
  # resp.topic_rule_destination.status_reason #=> String
5691
6001
  # resp.topic_rule_destination.http_url_properties.confirmation_url #=> String
6002
+ # resp.topic_rule_destination.vpc_properties.subnet_ids #=> Array
6003
+ # resp.topic_rule_destination.vpc_properties.subnet_ids[0] #=> String
6004
+ # resp.topic_rule_destination.vpc_properties.security_groups #=> Array
6005
+ # resp.topic_rule_destination.vpc_properties.security_groups[0] #=> String
6006
+ # resp.topic_rule_destination.vpc_properties.vpc_id #=> String
6007
+ # resp.topic_rule_destination.vpc_properties.role_arn #=> String
5692
6008
  #
5693
6009
  # @overload get_topic_rule_destination(params = {})
5694
6010
  # @param [Hash] params ({})
@@ -5728,6 +6044,12 @@ module Aws::IoT
5728
6044
  # The name of the Device Defender security profile for which violations
5729
6045
  # are listed.
5730
6046
  #
6047
+ # @option params [String] :behavior_criteria_type
6048
+ # The criteria for a behavior.
6049
+ #
6050
+ # @option params [Boolean] :list_suppressed_alerts
6051
+ # A list of all suppressed alerts.
6052
+ #
5731
6053
  # @option params [String] :next_token
5732
6054
  # The token for the next set of results.
5733
6055
  #
@@ -5746,6 +6068,8 @@ module Aws::IoT
5746
6068
  # resp = client.list_active_violations({
5747
6069
  # thing_name: "DeviceDefenderThingName",
5748
6070
  # security_profile_name: "SecurityProfileName",
6071
+ # behavior_criteria_type: "STATIC", # accepts STATIC, STATISTICAL, MACHINE_LEARNING
6072
+ # list_suppressed_alerts: false,
5749
6073
  # next_token: "NextToken",
5750
6074
  # max_results: 1,
5751
6075
  # })
@@ -5760,21 +6084,34 @@ module Aws::IoT
5760
6084
  # resp.active_violations[0].behavior.metric #=> String
5761
6085
  # resp.active_violations[0].behavior.metric_dimension.dimension_name #=> String
5762
6086
  # resp.active_violations[0].behavior.metric_dimension.operator #=> String, one of "IN", "NOT_IN"
5763
- # 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"
6087
+ # 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", "in-set", "not-in-set"
5764
6088
  # resp.active_violations[0].behavior.criteria.value.count #=> Integer
5765
6089
  # resp.active_violations[0].behavior.criteria.value.cidrs #=> Array
5766
6090
  # resp.active_violations[0].behavior.criteria.value.cidrs[0] #=> String
5767
6091
  # resp.active_violations[0].behavior.criteria.value.ports #=> Array
5768
6092
  # resp.active_violations[0].behavior.criteria.value.ports[0] #=> Integer
6093
+ # resp.active_violations[0].behavior.criteria.value.number #=> Float
6094
+ # resp.active_violations[0].behavior.criteria.value.numbers #=> Array
6095
+ # resp.active_violations[0].behavior.criteria.value.numbers[0] #=> Float
6096
+ # resp.active_violations[0].behavior.criteria.value.strings #=> Array
6097
+ # resp.active_violations[0].behavior.criteria.value.strings[0] #=> String
5769
6098
  # resp.active_violations[0].behavior.criteria.duration_seconds #=> Integer
5770
6099
  # resp.active_violations[0].behavior.criteria.consecutive_datapoints_to_alarm #=> Integer
5771
6100
  # resp.active_violations[0].behavior.criteria.consecutive_datapoints_to_clear #=> Integer
5772
6101
  # resp.active_violations[0].behavior.criteria.statistical_threshold.statistic #=> String
6102
+ # resp.active_violations[0].behavior.criteria.ml_detection_config.confidence_level #=> String, one of "LOW", "MEDIUM", "HIGH"
6103
+ # resp.active_violations[0].behavior.suppress_alerts #=> Boolean
5773
6104
  # resp.active_violations[0].last_violation_value.count #=> Integer
5774
6105
  # resp.active_violations[0].last_violation_value.cidrs #=> Array
5775
6106
  # resp.active_violations[0].last_violation_value.cidrs[0] #=> String
5776
6107
  # resp.active_violations[0].last_violation_value.ports #=> Array
5777
6108
  # resp.active_violations[0].last_violation_value.ports[0] #=> Integer
6109
+ # resp.active_violations[0].last_violation_value.number #=> Float
6110
+ # resp.active_violations[0].last_violation_value.numbers #=> Array
6111
+ # resp.active_violations[0].last_violation_value.numbers[0] #=> Float
6112
+ # resp.active_violations[0].last_violation_value.strings #=> Array
6113
+ # resp.active_violations[0].last_violation_value.strings[0] #=> String
6114
+ # resp.active_violations[0].violation_event_additional_info.confidence_level #=> String, one of "LOW", "MEDIUM", "HIGH"
5778
6115
  # resp.active_violations[0].last_violation_time #=> Time
5779
6116
  # resp.active_violations[0].violation_start_time #=> Time
5780
6117
  # resp.next_token #=> String
@@ -5981,7 +6318,7 @@ module Aws::IoT
5981
6318
  # @example Request syntax with placeholder values
5982
6319
  #
5983
6320
  # resp = client.list_audit_mitigation_actions_executions({
5984
- # task_id: "AuditMitigationActionsTaskId", # required
6321
+ # task_id: "MitigationActionsTaskId", # required
5985
6322
  # action_status: "IN_PROGRESS", # accepts IN_PROGRESS, COMPLETED, FAILED, CANCELED, SKIPPED, PENDING
5986
6323
  # finding_id: "FindingId", # required
5987
6324
  # max_results: 1,
@@ -6437,6 +6774,184 @@ module Aws::IoT
6437
6774
  req.send_request(options)
6438
6775
  end
6439
6776
 
6777
+ # Lists your Device Defender detect custom metrics.
6778
+ #
6779
+ # @option params [String] :next_token
6780
+ # The token for the next set of results.
6781
+ #
6782
+ # @option params [Integer] :max_results
6783
+ # The maximum number of results to return at one time. The default is
6784
+ # 25.
6785
+ #
6786
+ # @return [Types::ListCustomMetricsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6787
+ #
6788
+ # * {Types::ListCustomMetricsResponse#metric_names #metric_names} => Array&lt;String&gt;
6789
+ # * {Types::ListCustomMetricsResponse#next_token #next_token} => String
6790
+ #
6791
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
6792
+ #
6793
+ # @example Request syntax with placeholder values
6794
+ #
6795
+ # resp = client.list_custom_metrics({
6796
+ # next_token: "NextToken",
6797
+ # max_results: 1,
6798
+ # })
6799
+ #
6800
+ # @example Response structure
6801
+ #
6802
+ # resp.metric_names #=> Array
6803
+ # resp.metric_names[0] #=> String
6804
+ # resp.next_token #=> String
6805
+ #
6806
+ # @overload list_custom_metrics(params = {})
6807
+ # @param [Hash] params ({})
6808
+ def list_custom_metrics(params = {}, options = {})
6809
+ req = build_request(:list_custom_metrics, params)
6810
+ req.send_request(options)
6811
+ end
6812
+
6813
+ # Lists mitigation actions executions for a Device Defender ML Detect
6814
+ # Security Profile.
6815
+ #
6816
+ # @option params [String] :task_id
6817
+ # The unique identifier of the task.
6818
+ #
6819
+ # @option params [String] :violation_id
6820
+ # The unique identifier of the violation.
6821
+ #
6822
+ # @option params [String] :thing_name
6823
+ # The name of the thing whose mitigation actions are listed.
6824
+ #
6825
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
6826
+ # A filter to limit results to those found after the specified time. You
6827
+ # must specify either the startTime and endTime or the taskId, but not
6828
+ # both.
6829
+ #
6830
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
6831
+ # The end of the time period for which ML Detect mitigation actions
6832
+ # executions are returned.
6833
+ #
6834
+ # @option params [Integer] :max_results
6835
+ # The maximum number of results to return at one time. The default is
6836
+ # 25.
6837
+ #
6838
+ # @option params [String] :next_token
6839
+ # The token for the next set of results.
6840
+ #
6841
+ # @return [Types::ListDetectMitigationActionsExecutionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6842
+ #
6843
+ # * {Types::ListDetectMitigationActionsExecutionsResponse#actions_executions #actions_executions} => Array&lt;Types::DetectMitigationActionExecution&gt;
6844
+ # * {Types::ListDetectMitigationActionsExecutionsResponse#next_token #next_token} => String
6845
+ #
6846
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
6847
+ #
6848
+ # @example Request syntax with placeholder values
6849
+ #
6850
+ # resp = client.list_detect_mitigation_actions_executions({
6851
+ # task_id: "MitigationActionsTaskId",
6852
+ # violation_id: "ViolationId",
6853
+ # thing_name: "DeviceDefenderThingName",
6854
+ # start_time: Time.now,
6855
+ # end_time: Time.now,
6856
+ # max_results: 1,
6857
+ # next_token: "NextToken",
6858
+ # })
6859
+ #
6860
+ # @example Response structure
6861
+ #
6862
+ # resp.actions_executions #=> Array
6863
+ # resp.actions_executions[0].task_id #=> String
6864
+ # resp.actions_executions[0].violation_id #=> String
6865
+ # resp.actions_executions[0].action_name #=> String
6866
+ # resp.actions_executions[0].thing_name #=> String
6867
+ # resp.actions_executions[0].execution_start_date #=> Time
6868
+ # resp.actions_executions[0].execution_end_date #=> Time
6869
+ # resp.actions_executions[0].status #=> String, one of "IN_PROGRESS", "SUCCESSFUL", "FAILED", "SKIPPED"
6870
+ # resp.actions_executions[0].error_code #=> String
6871
+ # resp.actions_executions[0].message #=> String
6872
+ # resp.next_token #=> String
6873
+ #
6874
+ # @overload list_detect_mitigation_actions_executions(params = {})
6875
+ # @param [Hash] params ({})
6876
+ def list_detect_mitigation_actions_executions(params = {}, options = {})
6877
+ req = build_request(:list_detect_mitigation_actions_executions, params)
6878
+ req.send_request(options)
6879
+ end
6880
+
6881
+ # List of Device Defender ML Detect mitigation actions tasks.
6882
+ #
6883
+ # @option params [Integer] :max_results
6884
+ # The maximum number of results to return at one time. The default is
6885
+ # 25.
6886
+ #
6887
+ # @option params [String] :next_token
6888
+ # The token for the next set of results.
6889
+ #
6890
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
6891
+ # A filter to limit results to those found after the specified time. You
6892
+ # must specify either the startTime and endTime or the taskId, but not
6893
+ # both.
6894
+ #
6895
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
6896
+ # The end of the time period for which ML Detect mitigation actions
6897
+ # tasks are returned.
6898
+ #
6899
+ # @return [Types::ListDetectMitigationActionsTasksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6900
+ #
6901
+ # * {Types::ListDetectMitigationActionsTasksResponse#tasks #tasks} => Array&lt;Types::DetectMitigationActionsTaskSummary&gt;
6902
+ # * {Types::ListDetectMitigationActionsTasksResponse#next_token #next_token} => String
6903
+ #
6904
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
6905
+ #
6906
+ # @example Request syntax with placeholder values
6907
+ #
6908
+ # resp = client.list_detect_mitigation_actions_tasks({
6909
+ # max_results: 1,
6910
+ # next_token: "NextToken",
6911
+ # start_time: Time.now, # required
6912
+ # end_time: Time.now, # required
6913
+ # })
6914
+ #
6915
+ # @example Response structure
6916
+ #
6917
+ # resp.tasks #=> Array
6918
+ # resp.tasks[0].task_id #=> String
6919
+ # resp.tasks[0].task_status #=> String, one of "IN_PROGRESS", "SUCCESSFUL", "FAILED", "CANCELED"
6920
+ # resp.tasks[0].task_start_time #=> Time
6921
+ # resp.tasks[0].task_end_time #=> Time
6922
+ # resp.tasks[0].target.violation_ids #=> Array
6923
+ # resp.tasks[0].target.violation_ids[0] #=> String
6924
+ # resp.tasks[0].target.security_profile_name #=> String
6925
+ # resp.tasks[0].target.behavior_name #=> String
6926
+ # resp.tasks[0].violation_event_occurrence_range.start_time #=> Time
6927
+ # resp.tasks[0].violation_event_occurrence_range.end_time #=> Time
6928
+ # resp.tasks[0].only_active_violations_included #=> Boolean
6929
+ # resp.tasks[0].suppressed_alerts_included #=> Boolean
6930
+ # resp.tasks[0].actions_definition #=> Array
6931
+ # resp.tasks[0].actions_definition[0].name #=> String
6932
+ # resp.tasks[0].actions_definition[0].id #=> String
6933
+ # resp.tasks[0].actions_definition[0].role_arn #=> String
6934
+ # resp.tasks[0].actions_definition[0].action_params.update_device_certificate_params.action #=> String, one of "DEACTIVATE"
6935
+ # resp.tasks[0].actions_definition[0].action_params.update_ca_certificate_params.action #=> String, one of "DEACTIVATE"
6936
+ # resp.tasks[0].actions_definition[0].action_params.add_things_to_thing_group_params.thing_group_names #=> Array
6937
+ # resp.tasks[0].actions_definition[0].action_params.add_things_to_thing_group_params.thing_group_names[0] #=> String
6938
+ # resp.tasks[0].actions_definition[0].action_params.add_things_to_thing_group_params.override_dynamic_groups #=> Boolean
6939
+ # resp.tasks[0].actions_definition[0].action_params.replace_default_policy_version_params.template_name #=> String, one of "BLANK_POLICY"
6940
+ # resp.tasks[0].actions_definition[0].action_params.enable_io_t_logging_params.role_arn_for_logging #=> String
6941
+ # resp.tasks[0].actions_definition[0].action_params.enable_io_t_logging_params.log_level #=> String, one of "DEBUG", "INFO", "ERROR", "WARN", "DISABLED"
6942
+ # resp.tasks[0].actions_definition[0].action_params.publish_finding_to_sns_params.topic_arn #=> String
6943
+ # resp.tasks[0].task_statistics.actions_executed #=> Integer
6944
+ # resp.tasks[0].task_statistics.actions_skipped #=> Integer
6945
+ # resp.tasks[0].task_statistics.actions_failed #=> Integer
6946
+ # resp.next_token #=> String
6947
+ #
6948
+ # @overload list_detect_mitigation_actions_tasks(params = {})
6949
+ # @param [Hash] params ({})
6950
+ def list_detect_mitigation_actions_tasks(params = {}, options = {})
6951
+ req = build_request(:list_detect_mitigation_actions_tasks, params)
6952
+ req.send_request(options)
6953
+ end
6954
+
6440
6955
  # List the set of dimensions that are defined for your AWS account.
6441
6956
  #
6442
6957
  # @option params [String] :next_token
@@ -7255,9 +7770,12 @@ module Aws::IoT
7255
7770
  req.send_request(options)
7256
7771
  end
7257
7772
 
7258
- # Lists the Device Defender security profiles you have created. You can
7259
- # use filters to list only those security profiles associated with a
7260
- # thing group or only those associated with your account.
7773
+ # Lists the Device Defender security profiles you've created. You can
7774
+ # filter security profiles by dimension or custom metric.
7775
+ #
7776
+ # <note markdown="1"> `dimensionName` and `metricName` cannot be used in the same request.
7777
+ #
7778
+ # </note>
7261
7779
  #
7262
7780
  # @option params [String] :next_token
7263
7781
  # The token for the next set of results.
@@ -7267,7 +7785,10 @@ module Aws::IoT
7267
7785
  #
7268
7786
  # @option params [String] :dimension_name
7269
7787
  # A filter to limit results to the security profiles that use the
7270
- # defined dimension.
7788
+ # defined dimension. Cannot be used with `metricName`
7789
+ #
7790
+ # @option params [String] :metric_name
7791
+ # The name of the custom metric. Cannot be used with `dimensionName`.
7271
7792
  #
7272
7793
  # @return [Types::ListSecurityProfilesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7273
7794
  #
@@ -7282,6 +7803,7 @@ module Aws::IoT
7282
7803
  # next_token: "NextToken",
7283
7804
  # max_results: 1,
7284
7805
  # dimension_name: "DimensionName",
7806
+ # metric_name: "MetricName",
7285
7807
  # })
7286
7808
  #
7287
7809
  # @example Response structure
@@ -7957,9 +8479,17 @@ module Aws::IoT
7957
8479
  #
7958
8480
  # resp.destination_summaries #=> Array
7959
8481
  # resp.destination_summaries[0].arn #=> String
7960
- # resp.destination_summaries[0].status #=> String, one of "ENABLED", "IN_PROGRESS", "DISABLED", "ERROR"
8482
+ # resp.destination_summaries[0].status #=> String, one of "ENABLED", "IN_PROGRESS", "DISABLED", "ERROR", "DELETING"
8483
+ # resp.destination_summaries[0].created_at #=> Time
8484
+ # resp.destination_summaries[0].last_updated_at #=> Time
7961
8485
  # resp.destination_summaries[0].status_reason #=> String
7962
8486
  # resp.destination_summaries[0].http_url_summary.confirmation_url #=> String
8487
+ # resp.destination_summaries[0].vpc_destination_summary.subnet_ids #=> Array
8488
+ # resp.destination_summaries[0].vpc_destination_summary.subnet_ids[0] #=> String
8489
+ # resp.destination_summaries[0].vpc_destination_summary.security_groups #=> Array
8490
+ # resp.destination_summaries[0].vpc_destination_summary.security_groups[0] #=> String
8491
+ # resp.destination_summaries[0].vpc_destination_summary.vpc_id #=> String
8492
+ # resp.destination_summaries[0].vpc_destination_summary.role_arn #=> String
7963
8493
  # resp.next_token #=> String
7964
8494
  #
7965
8495
  # @overload list_topic_rule_destinations(params = {})
@@ -8081,6 +8611,12 @@ module Aws::IoT
8081
8611
  # A filter to limit results to those alerts generated by the specified
8082
8612
  # security profile.
8083
8613
  #
8614
+ # @option params [String] :behavior_criteria_type
8615
+ # The criteria for a behavior.
8616
+ #
8617
+ # @option params [Boolean] :list_suppressed_alerts
8618
+ # A list of all suppressed alerts.
8619
+ #
8084
8620
  # @option params [String] :next_token
8085
8621
  # The token for the next set of results.
8086
8622
  #
@@ -8101,6 +8637,8 @@ module Aws::IoT
8101
8637
  # end_time: Time.now, # required
8102
8638
  # thing_name: "DeviceDefenderThingName",
8103
8639
  # security_profile_name: "SecurityProfileName",
8640
+ # behavior_criteria_type: "STATIC", # accepts STATIC, STATISTICAL, MACHINE_LEARNING
8641
+ # list_suppressed_alerts: false,
8104
8642
  # next_token: "NextToken",
8105
8643
  # max_results: 1,
8106
8644
  # })
@@ -8115,21 +8653,34 @@ module Aws::IoT
8115
8653
  # resp.violation_events[0].behavior.metric #=> String
8116
8654
  # resp.violation_events[0].behavior.metric_dimension.dimension_name #=> String
8117
8655
  # resp.violation_events[0].behavior.metric_dimension.operator #=> String, one of "IN", "NOT_IN"
8118
- # 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"
8656
+ # 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", "in-set", "not-in-set"
8119
8657
  # resp.violation_events[0].behavior.criteria.value.count #=> Integer
8120
8658
  # resp.violation_events[0].behavior.criteria.value.cidrs #=> Array
8121
8659
  # resp.violation_events[0].behavior.criteria.value.cidrs[0] #=> String
8122
8660
  # resp.violation_events[0].behavior.criteria.value.ports #=> Array
8123
8661
  # resp.violation_events[0].behavior.criteria.value.ports[0] #=> Integer
8662
+ # resp.violation_events[0].behavior.criteria.value.number #=> Float
8663
+ # resp.violation_events[0].behavior.criteria.value.numbers #=> Array
8664
+ # resp.violation_events[0].behavior.criteria.value.numbers[0] #=> Float
8665
+ # resp.violation_events[0].behavior.criteria.value.strings #=> Array
8666
+ # resp.violation_events[0].behavior.criteria.value.strings[0] #=> String
8124
8667
  # resp.violation_events[0].behavior.criteria.duration_seconds #=> Integer
8125
8668
  # resp.violation_events[0].behavior.criteria.consecutive_datapoints_to_alarm #=> Integer
8126
8669
  # resp.violation_events[0].behavior.criteria.consecutive_datapoints_to_clear #=> Integer
8127
8670
  # resp.violation_events[0].behavior.criteria.statistical_threshold.statistic #=> String
8671
+ # resp.violation_events[0].behavior.criteria.ml_detection_config.confidence_level #=> String, one of "LOW", "MEDIUM", "HIGH"
8672
+ # resp.violation_events[0].behavior.suppress_alerts #=> Boolean
8128
8673
  # resp.violation_events[0].metric_value.count #=> Integer
8129
8674
  # resp.violation_events[0].metric_value.cidrs #=> Array
8130
8675
  # resp.violation_events[0].metric_value.cidrs[0] #=> String
8131
8676
  # resp.violation_events[0].metric_value.ports #=> Array
8132
8677
  # resp.violation_events[0].metric_value.ports[0] #=> Integer
8678
+ # resp.violation_events[0].metric_value.number #=> Float
8679
+ # resp.violation_events[0].metric_value.numbers #=> Array
8680
+ # resp.violation_events[0].metric_value.numbers[0] #=> Float
8681
+ # resp.violation_events[0].metric_value.strings #=> Array
8682
+ # resp.violation_events[0].metric_value.strings[0] #=> String
8683
+ # resp.violation_events[0].violation_event_additional_info.confidence_level #=> String, one of "LOW", "MEDIUM", "HIGH"
8133
8684
  # resp.violation_events[0].violation_event_type #=> String, one of "in-alarm", "alarm-cleared", "alarm-invalidated"
8134
8685
  # resp.violation_events[0].violation_event_time #=> Time
8135
8686
  # resp.next_token #=> String
@@ -8628,6 +9179,15 @@ module Aws::IoT
8628
9179
  # },
8629
9180
  # },
8630
9181
  # },
9182
+ # kafka: {
9183
+ # destination_arn: "AwsArn", # required
9184
+ # topic: "String", # required
9185
+ # key: "String",
9186
+ # partition: "String",
9187
+ # client_properties: { # required
9188
+ # "String" => "String",
9189
+ # },
9190
+ # },
8631
9191
  # },
8632
9192
  # ],
8633
9193
  # rule_disabled: false,
@@ -8790,6 +9350,15 @@ module Aws::IoT
8790
9350
  # },
8791
9351
  # },
8792
9352
  # },
9353
+ # kafka: {
9354
+ # destination_arn: "AwsArn", # required
9355
+ # topic: "String", # required
9356
+ # key: "String",
9357
+ # partition: "String",
9358
+ # client_properties: { # required
9359
+ # "String" => "String",
9360
+ # },
9361
+ # },
8793
9362
  # },
8794
9363
  # },
8795
9364
  # })
@@ -9012,7 +9581,7 @@ module Aws::IoT
9012
9581
  # @option params [required, Types::AuditMitigationActionsTaskTarget] :target
9013
9582
  # Specifies the audit findings to which the mitigation actions are
9014
9583
  # applied. You can apply them to a type of audit check, to all findings
9015
- # from an audit, or to a speecific set of findings.
9584
+ # from an audit, or to a specific set of findings.
9016
9585
  #
9017
9586
  # @option params [required, Hash<String,Array>] :audit_check_to_actions_mapping
9018
9587
  # For an audit check, specifies which mitigation actions to apply. Those
@@ -9034,7 +9603,7 @@ module Aws::IoT
9034
9603
  # @example Request syntax with placeholder values
9035
9604
  #
9036
9605
  # resp = client.start_audit_mitigation_actions_task({
9037
- # task_id: "AuditMitigationActionsTaskId", # required
9606
+ # task_id: "MitigationActionsTaskId", # required
9038
9607
  # target: { # required
9039
9608
  # audit_task_id: "AuditTaskId",
9040
9609
  # finding_ids: ["FindingId"],
@@ -9059,6 +9628,70 @@ module Aws::IoT
9059
9628
  req.send_request(options)
9060
9629
  end
9061
9630
 
9631
+ # Starts a Device Defender ML Detect mitigation actions task.
9632
+ #
9633
+ # @option params [required, String] :task_id
9634
+ # The unique identifier of the task.
9635
+ #
9636
+ # @option params [required, Types::DetectMitigationActionsTaskTarget] :target
9637
+ # Specifies the ML Detect findings to which the mitigation actions are
9638
+ # applied.
9639
+ #
9640
+ # @option params [required, Array<String>] :actions
9641
+ # The actions to be performed when a device has unexpected behavior.
9642
+ #
9643
+ # @option params [Types::ViolationEventOccurrenceRange] :violation_event_occurrence_range
9644
+ # Specifies the time period of which violation events occurred between.
9645
+ #
9646
+ # @option params [Boolean] :include_only_active_violations
9647
+ # Specifies to list only active violations.
9648
+ #
9649
+ # @option params [Boolean] :include_suppressed_alerts
9650
+ # Specifies to include suppressed alerts.
9651
+ #
9652
+ # @option params [required, String] :client_request_token
9653
+ # Each mitigation action task must have a unique client request token.
9654
+ # If you try to create a new task with the same token as a task that
9655
+ # already exists, an exception occurs. If you omit this value, AWS SDKs
9656
+ # will automatically generate a unique client request.
9657
+ #
9658
+ # **A suitable default value is auto-generated.** You should normally
9659
+ # not need to pass this option.**
9660
+ #
9661
+ # @return [Types::StartDetectMitigationActionsTaskResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9662
+ #
9663
+ # * {Types::StartDetectMitigationActionsTaskResponse#task_id #task_id} => String
9664
+ #
9665
+ # @example Request syntax with placeholder values
9666
+ #
9667
+ # resp = client.start_detect_mitigation_actions_task({
9668
+ # task_id: "MitigationActionsTaskId", # required
9669
+ # target: { # required
9670
+ # violation_ids: ["ViolationId"],
9671
+ # security_profile_name: "SecurityProfileName",
9672
+ # behavior_name: "BehaviorName",
9673
+ # },
9674
+ # actions: ["MitigationActionName"], # required
9675
+ # violation_event_occurrence_range: {
9676
+ # start_time: Time.now, # required
9677
+ # end_time: Time.now, # required
9678
+ # },
9679
+ # include_only_active_violations: false,
9680
+ # include_suppressed_alerts: false,
9681
+ # client_request_token: "ClientRequestToken", # required
9682
+ # })
9683
+ #
9684
+ # @example Response structure
9685
+ #
9686
+ # resp.task_id #=> String
9687
+ #
9688
+ # @overload start_detect_mitigation_actions_task(params = {})
9689
+ # @param [Hash] params ({})
9690
+ def start_detect_mitigation_actions_task(params = {}, options = {})
9691
+ req = build_request(:start_detect_mitigation_actions_task, params)
9692
+ req.send_request(options)
9693
+ end
9694
+
9062
9695
  # Starts an on-demand Device Defender audit.
9063
9696
  #
9064
9697
  # @option params [required, Array<String>] :target_check_names
@@ -9399,9 +10032,9 @@ module Aws::IoT
9399
10032
  # audit checks are enabled or disabled.
9400
10033
  #
9401
10034
  # @option params [String] :role_arn
9402
- # The ARN of the role that grants permission to AWS IoT to access
9403
- # information about your devices, policies, certificates and other items
9404
- # as required when performing an audit.
10035
+ # The Amazon Resource Name (ARN) of the role that grants permission to
10036
+ # AWS IoT to access information about your devices, policies,
10037
+ # certificates, and other items as required when performing an audit.
9405
10038
  #
9406
10039
  # @option params [Hash<String,Types::AuditNotificationTarget>] :audit_notification_target_configurations
9407
10040
  # Information about the targets to which audit notifications are sent.
@@ -9415,7 +10048,7 @@ module Aws::IoT
9415
10048
  # enabled. When a check is disabled, any data collected so far in
9416
10049
  # relation to the check is deleted.
9417
10050
  #
9418
- # You cannot disable a check if it is used by any scheduled audit. You
10051
+ # You cannot disable a check if it's used by any scheduled audit. You
9419
10052
  # must first delete the check from the scheduled audit or delete the
9420
10053
  # scheduled audit itself.
9421
10054
  #
@@ -9671,8 +10304,50 @@ module Aws::IoT
9671
10304
  req.send_request(options)
9672
10305
  end
9673
10306
 
10307
+ # Updates a Device Defender detect custom metric.
10308
+ #
10309
+ # @option params [required, String] :metric_name
10310
+ # The name of the custom metric. Cannot be updated.
10311
+ #
10312
+ # @option params [required, String] :display_name
10313
+ # Field represents a friendly name in the console for the custom metric,
10314
+ # it doesn't have to be unique. Don't use this name as the metric
10315
+ # identifier in the device metric report. Can be updated.
10316
+ #
10317
+ # @return [Types::UpdateCustomMetricResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10318
+ #
10319
+ # * {Types::UpdateCustomMetricResponse#metric_name #metric_name} => String
10320
+ # * {Types::UpdateCustomMetricResponse#metric_arn #metric_arn} => String
10321
+ # * {Types::UpdateCustomMetricResponse#metric_type #metric_type} => String
10322
+ # * {Types::UpdateCustomMetricResponse#display_name #display_name} => String
10323
+ # * {Types::UpdateCustomMetricResponse#creation_date #creation_date} => Time
10324
+ # * {Types::UpdateCustomMetricResponse#last_modified_date #last_modified_date} => Time
10325
+ #
10326
+ # @example Request syntax with placeholder values
10327
+ #
10328
+ # resp = client.update_custom_metric({
10329
+ # metric_name: "MetricName", # required
10330
+ # display_name: "CustomMetricDisplayName", # required
10331
+ # })
10332
+ #
10333
+ # @example Response structure
10334
+ #
10335
+ # resp.metric_name #=> String
10336
+ # resp.metric_arn #=> String
10337
+ # resp.metric_type #=> String, one of "string-list", "ip-address-list", "number-list", "number"
10338
+ # resp.display_name #=> String
10339
+ # resp.creation_date #=> Time
10340
+ # resp.last_modified_date #=> Time
10341
+ #
10342
+ # @overload update_custom_metric(params = {})
10343
+ # @param [Hash] params ({})
10344
+ def update_custom_metric(params = {}, options = {})
10345
+ req = build_request(:update_custom_metric, params)
10346
+ req.send_request(options)
10347
+ end
10348
+
9674
10349
  # Updates the definition for a dimension. You cannot change the type of
9675
- # a dimension after it is created (you can delete it and re-create it).
10350
+ # a dimension after it is created (you can delete it and recreate it).
9676
10351
  #
9677
10352
  # @option params [required, String] :name
9678
10353
  # A unique identifier for the dimension. Choose something that describes
@@ -9990,9 +10665,9 @@ module Aws::IoT
9990
10665
  # Updates the definition for the specified mitigation action.
9991
10666
  #
9992
10667
  # @option params [required, String] :action_name
9993
- # The friendly name for the mitigation action. You can't change the
10668
+ # The friendly name for the mitigation action. You cannot change the
9994
10669
  # name by using `UpdateMitigationAction`. Instead, you must delete and
9995
- # re-create the mitigation action with the new name.
10670
+ # recreate the mitigation action with the new name.
9996
10671
  #
9997
10672
  # @option params [String] :role_arn
9998
10673
  # The ARN of the IAM role that is used to apply the mitigation action.
@@ -10134,22 +10809,22 @@ module Aws::IoT
10134
10809
  # how often the audit takes place.
10135
10810
  #
10136
10811
  # @option params [String] :frequency
10137
- # How often the scheduled audit takes place. Can be one of "DAILY",
10138
- # "WEEKLY", "BIWEEKLY", or "MONTHLY". The start time of each audit
10139
- # is determined by the system.
10812
+ # How often the scheduled audit takes place, either `DAILY`, `WEEKLY`,
10813
+ # `BIWEEKLY`, or `MONTHLY`. The start time of each audit is determined
10814
+ # by the system.
10140
10815
  #
10141
10816
  # @option params [String] :day_of_month
10142
- # The day of the month on which the scheduled audit takes place. Can be
10143
- # "1" through "31" or "LAST". This field is required if the
10144
- # "frequency" parameter is set to "MONTHLY". If days 29-31 are
10817
+ # The day of the month on which the scheduled audit takes place. This
10818
+ # can be `1` through `31` or `LAST`. This field is required if the
10819
+ # `frequency` parameter is set to `MONTHLY`. If days 29-31 are
10145
10820
  # specified, and the month does not have that many days, the audit takes
10146
10821
  # place on the "LAST" day of the month.
10147
10822
  #
10148
10823
  # @option params [String] :day_of_week
10149
- # The day of the week on which the scheduled audit takes place. Can be
10150
- # one of "SUN", "MON", "TUE", "WED", "THU", "FRI", or
10151
- # "SAT". This field is required if the "frequency" parameter is set
10152
- # to "WEEKLY" or "BIWEEKLY".
10824
+ # The day of the week on which the scheduled audit takes place. This can
10825
+ # be one of `SUN`, `MON`, `TUE`, `WED`, `THU`, `FRI`, or `SAT`. This
10826
+ # field is required if the "frequency" parameter is set to `WEEKLY` or
10827
+ # `BIWEEKLY`.
10153
10828
  #
10154
10829
  # @option params [Array<String>] :target_check_names
10155
10830
  # Which checks are performed during the scheduled audit. Checks must be
@@ -10206,12 +10881,14 @@ module Aws::IoT
10206
10881
  #
10207
10882
  # A list of metrics whose data is retained (stored). By default, data is
10208
10883
  # retained for any metric used in the profile's `behaviors`, but it is
10209
- # also retained for any metric specified here.
10884
+ # also retained for any metric specified here. Can be used with custom
10885
+ # metrics; cannot be used with dimensions.
10210
10886
  #
10211
10887
  # @option params [Array<Types::MetricToRetain>] :additional_metrics_to_retain_v2
10212
10888
  # A list of metrics whose data is retained (stored). By default, data is
10213
10889
  # retained for any metric used in the profile's behaviors, but it is
10214
- # also retained for any metric specified here.
10890
+ # also retained for any metric specified here. Can be used with custom
10891
+ # metrics; cannot be used with dimensions.
10215
10892
  #
10216
10893
  # @option params [Boolean] :delete_behaviors
10217
10894
  # If true, delete all `behaviors` defined for this security profile. If
@@ -10261,11 +10938,14 @@ module Aws::IoT
10261
10938
  # operator: "IN", # accepts IN, NOT_IN
10262
10939
  # },
10263
10940
  # criteria: {
10264
- # 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
10941
+ # 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, in-set, not-in-set
10265
10942
  # value: {
10266
10943
  # count: 1,
10267
10944
  # cidrs: ["Cidr"],
10268
10945
  # ports: [1],
10946
+ # number: 1.0,
10947
+ # numbers: [1.0],
10948
+ # strings: ["stringValue"],
10269
10949
  # },
10270
10950
  # duration_seconds: 1,
10271
10951
  # consecutive_datapoints_to_alarm: 1,
@@ -10273,7 +10953,11 @@ module Aws::IoT
10273
10953
  # statistical_threshold: {
10274
10954
  # statistic: "EvaluationStatistic",
10275
10955
  # },
10956
+ # ml_detection_config: {
10957
+ # confidence_level: "LOW", # required, accepts LOW, MEDIUM, HIGH
10958
+ # },
10276
10959
  # },
10960
+ # suppress_alerts: false,
10277
10961
  # },
10278
10962
  # ],
10279
10963
  # alert_targets: {
@@ -10308,16 +10992,23 @@ module Aws::IoT
10308
10992
  # resp.behaviors[0].metric #=> String
10309
10993
  # resp.behaviors[0].metric_dimension.dimension_name #=> String
10310
10994
  # resp.behaviors[0].metric_dimension.operator #=> String, one of "IN", "NOT_IN"
10311
- # 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"
10995
+ # 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", "in-set", "not-in-set"
10312
10996
  # resp.behaviors[0].criteria.value.count #=> Integer
10313
10997
  # resp.behaviors[0].criteria.value.cidrs #=> Array
10314
10998
  # resp.behaviors[0].criteria.value.cidrs[0] #=> String
10315
10999
  # resp.behaviors[0].criteria.value.ports #=> Array
10316
11000
  # resp.behaviors[0].criteria.value.ports[0] #=> Integer
11001
+ # resp.behaviors[0].criteria.value.number #=> Float
11002
+ # resp.behaviors[0].criteria.value.numbers #=> Array
11003
+ # resp.behaviors[0].criteria.value.numbers[0] #=> Float
11004
+ # resp.behaviors[0].criteria.value.strings #=> Array
11005
+ # resp.behaviors[0].criteria.value.strings[0] #=> String
10317
11006
  # resp.behaviors[0].criteria.duration_seconds #=> Integer
10318
11007
  # resp.behaviors[0].criteria.consecutive_datapoints_to_alarm #=> Integer
10319
11008
  # resp.behaviors[0].criteria.consecutive_datapoints_to_clear #=> Integer
10320
11009
  # resp.behaviors[0].criteria.statistical_threshold.statistic #=> String
11010
+ # resp.behaviors[0].criteria.ml_detection_config.confidence_level #=> String, one of "LOW", "MEDIUM", "HIGH"
11011
+ # resp.behaviors[0].suppress_alerts #=> Boolean
10321
11012
  # resp.alert_targets #=> Hash
10322
11013
  # resp.alert_targets["AlertTargetType"].alert_target_arn #=> String
10323
11014
  # resp.alert_targets["AlertTargetType"].role_arn #=> String
@@ -10569,7 +11260,7 @@ module Aws::IoT
10569
11260
  #
10570
11261
  # resp = client.update_topic_rule_destination({
10571
11262
  # arn: "AwsArn", # required
10572
- # status: "ENABLED", # required, accepts ENABLED, IN_PROGRESS, DISABLED, ERROR
11263
+ # status: "ENABLED", # required, accepts ENABLED, IN_PROGRESS, DISABLED, ERROR, DELETING
10573
11264
  # })
10574
11265
  #
10575
11266
  # @overload update_topic_rule_destination(params = {})
@@ -10602,11 +11293,14 @@ module Aws::IoT
10602
11293
  # operator: "IN", # accepts IN, NOT_IN
10603
11294
  # },
10604
11295
  # criteria: {
10605
- # 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
11296
+ # 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, in-set, not-in-set
10606
11297
  # value: {
10607
11298
  # count: 1,
10608
11299
  # cidrs: ["Cidr"],
10609
11300
  # ports: [1],
11301
+ # number: 1.0,
11302
+ # numbers: [1.0],
11303
+ # strings: ["stringValue"],
10610
11304
  # },
10611
11305
  # duration_seconds: 1,
10612
11306
  # consecutive_datapoints_to_alarm: 1,
@@ -10614,7 +11308,11 @@ module Aws::IoT
10614
11308
  # statistical_threshold: {
10615
11309
  # statistic: "EvaluationStatistic",
10616
11310
  # },
11311
+ # ml_detection_config: {
11312
+ # confidence_level: "LOW", # required, accepts LOW, MEDIUM, HIGH
11313
+ # },
10617
11314
  # },
11315
+ # suppress_alerts: false,
10618
11316
  # },
10619
11317
  # ],
10620
11318
  # })
@@ -10645,7 +11343,7 @@ module Aws::IoT
10645
11343
  params: params,
10646
11344
  config: config)
10647
11345
  context[:gem_name] = 'aws-sdk-iot'
10648
- context[:gem_version] = '1.63.0'
11346
+ context[:gem_version] = '1.64.0'
10649
11347
  Seahorse::Client::Request.new(handlers, context)
10650
11348
  end
10651
11349