aws-sdk-iot 1.63.0 → 1.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  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