aws-sdk-iot 1.45.0 → 1.46.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.
@@ -29,6 +29,7 @@ module Aws::IoT
29
29
  AddThingToThingGroupResponse = Shapes::StructureShape.new(name: 'AddThingToThingGroupResponse')
30
30
  AddThingsToThingGroupParams = Shapes::StructureShape.new(name: 'AddThingsToThingGroupParams')
31
31
  AdditionalMetricsToRetainList = Shapes::ListShape.new(name: 'AdditionalMetricsToRetainList')
32
+ AdditionalMetricsToRetainV2List = Shapes::ListShape.new(name: 'AdditionalMetricsToRetainV2List')
32
33
  AdditionalParameterMap = Shapes::MapShape.new(name: 'AdditionalParameterMap')
33
34
  AggregationField = Shapes::StringShape.new(name: 'AggregationField')
34
35
  AlarmName = Shapes::StringShape.new(name: 'AlarmName')
@@ -201,6 +202,8 @@ module Aws::IoT
201
202
  CreateBillingGroupResponse = Shapes::StructureShape.new(name: 'CreateBillingGroupResponse')
202
203
  CreateCertificateFromCsrRequest = Shapes::StructureShape.new(name: 'CreateCertificateFromCsrRequest')
203
204
  CreateCertificateFromCsrResponse = Shapes::StructureShape.new(name: 'CreateCertificateFromCsrResponse')
205
+ CreateDimensionRequest = Shapes::StructureShape.new(name: 'CreateDimensionRequest')
206
+ CreateDimensionResponse = Shapes::StructureShape.new(name: 'CreateDimensionResponse')
204
207
  CreateDomainConfigurationRequest = Shapes::StructureShape.new(name: 'CreateDomainConfigurationRequest')
205
208
  CreateDomainConfigurationResponse = Shapes::StructureShape.new(name: 'CreateDomainConfigurationResponse')
206
209
  CreateDynamicThingGroupRequest = Shapes::StructureShape.new(name: 'CreateDynamicThingGroupRequest')
@@ -261,6 +264,8 @@ module Aws::IoT
261
264
  DeleteCACertificateResponse = Shapes::StructureShape.new(name: 'DeleteCACertificateResponse')
262
265
  DeleteCertificateRequest = Shapes::StructureShape.new(name: 'DeleteCertificateRequest')
263
266
  DeleteConflictException = Shapes::StructureShape.new(name: 'DeleteConflictException')
267
+ DeleteDimensionRequest = Shapes::StructureShape.new(name: 'DeleteDimensionRequest')
268
+ DeleteDimensionResponse = Shapes::StructureShape.new(name: 'DeleteDimensionResponse')
264
269
  DeleteDomainConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteDomainConfigurationRequest')
265
270
  DeleteDomainConfigurationResponse = Shapes::StructureShape.new(name: 'DeleteDomainConfigurationResponse')
266
271
  DeleteDynamicThingGroupRequest = Shapes::StructureShape.new(name: 'DeleteDynamicThingGroupRequest')
@@ -322,6 +327,8 @@ module Aws::IoT
322
327
  DescribeCertificateResponse = Shapes::StructureShape.new(name: 'DescribeCertificateResponse')
323
328
  DescribeDefaultAuthorizerRequest = Shapes::StructureShape.new(name: 'DescribeDefaultAuthorizerRequest')
324
329
  DescribeDefaultAuthorizerResponse = Shapes::StructureShape.new(name: 'DescribeDefaultAuthorizerResponse')
330
+ DescribeDimensionRequest = Shapes::StructureShape.new(name: 'DescribeDimensionRequest')
331
+ DescribeDimensionResponse = Shapes::StructureShape.new(name: 'DescribeDimensionResponse')
325
332
  DescribeDomainConfigurationRequest = Shapes::StructureShape.new(name: 'DescribeDomainConfigurationRequest')
326
333
  DescribeDomainConfigurationResponse = Shapes::StructureShape.new(name: 'DescribeDomainConfigurationResponse')
327
334
  DescribeEndpointRequest = Shapes::StructureShape.new(name: 'DescribeEndpointRequest')
@@ -369,6 +376,13 @@ module Aws::IoT
369
376
  DetailsValue = Shapes::StringShape.new(name: 'DetailsValue')
370
377
  DeviceCertificateUpdateAction = Shapes::StringShape.new(name: 'DeviceCertificateUpdateAction')
371
378
  DeviceDefenderThingName = Shapes::StringShape.new(name: 'DeviceDefenderThingName')
379
+ DimensionArn = Shapes::StringShape.new(name: 'DimensionArn')
380
+ DimensionName = Shapes::StringShape.new(name: 'DimensionName')
381
+ DimensionNames = Shapes::ListShape.new(name: 'DimensionNames')
382
+ DimensionStringValue = Shapes::StringShape.new(name: 'DimensionStringValue')
383
+ DimensionStringValues = Shapes::ListShape.new(name: 'DimensionStringValues')
384
+ DimensionType = Shapes::StringShape.new(name: 'DimensionType')
385
+ DimensionValueOperator = Shapes::StringShape.new(name: 'DimensionValueOperator')
372
386
  DisableAllLogs = Shapes::BooleanShape.new(name: 'DisableAllLogs')
373
387
  DisableTopicRuleRequest = Shapes::StructureShape.new(name: 'DisableTopicRuleRequest')
374
388
  DomainConfigurationArn = Shapes::StringShape.new(name: 'DomainConfigurationArn')
@@ -554,6 +568,8 @@ module Aws::IoT
554
568
  ListCertificatesByCAResponse = Shapes::StructureShape.new(name: 'ListCertificatesByCAResponse')
555
569
  ListCertificatesRequest = Shapes::StructureShape.new(name: 'ListCertificatesRequest')
556
570
  ListCertificatesResponse = Shapes::StructureShape.new(name: 'ListCertificatesResponse')
571
+ ListDimensionsRequest = Shapes::StructureShape.new(name: 'ListDimensionsRequest')
572
+ ListDimensionsResponse = Shapes::StructureShape.new(name: 'ListDimensionsResponse')
557
573
  ListDomainConfigurationsRequest = Shapes::StructureShape.new(name: 'ListDomainConfigurationsRequest')
558
574
  ListDomainConfigurationsResponse = Shapes::StructureShape.new(name: 'ListDomainConfigurationsResponse')
559
575
  ListIndicesRequest = Shapes::StructureShape.new(name: 'ListIndicesRequest')
@@ -643,6 +659,8 @@ module Aws::IoT
643
659
  Message = Shapes::StringShape.new(name: 'Message')
644
660
  MessageFormat = Shapes::StringShape.new(name: 'MessageFormat')
645
661
  MessageId = Shapes::StringShape.new(name: 'MessageId')
662
+ MetricDimension = Shapes::StructureShape.new(name: 'MetricDimension')
663
+ MetricToRetain = Shapes::StructureShape.new(name: 'MetricToRetain')
646
664
  MetricValue = Shapes::StructureShape.new(name: 'MetricValue')
647
665
  Minimum = Shapes::FloatShape.new(name: 'Minimum')
648
666
  MinimumNumberOfExecutedThings = Shapes::IntegerShape.new(name: 'MinimumNumberOfExecutedThings')
@@ -994,6 +1012,8 @@ module Aws::IoT
994
1012
  UpdateCACertificateRequest = Shapes::StructureShape.new(name: 'UpdateCACertificateRequest')
995
1013
  UpdateCertificateRequest = Shapes::StructureShape.new(name: 'UpdateCertificateRequest')
996
1014
  UpdateDeviceCertificateParams = Shapes::StructureShape.new(name: 'UpdateDeviceCertificateParams')
1015
+ UpdateDimensionRequest = Shapes::StructureShape.new(name: 'UpdateDimensionRequest')
1016
+ UpdateDimensionResponse = Shapes::StructureShape.new(name: 'UpdateDimensionResponse')
997
1017
  UpdateDomainConfigurationRequest = Shapes::StructureShape.new(name: 'UpdateDomainConfigurationRequest')
998
1018
  UpdateDomainConfigurationResponse = Shapes::StructureShape.new(name: 'UpdateDomainConfigurationResponse')
999
1019
  UpdateDynamicThingGroupRequest = Shapes::StructureShape.new(name: 'UpdateDynamicThingGroupRequest')
@@ -1117,6 +1137,8 @@ module Aws::IoT
1117
1137
 
1118
1138
  AdditionalMetricsToRetainList.member = Shapes::ShapeRef.new(shape: BehaviorMetric)
1119
1139
 
1140
+ AdditionalMetricsToRetainV2List.member = Shapes::ShapeRef.new(shape: MetricToRetain)
1141
+
1120
1142
  AdditionalParameterMap.key = Shapes::ShapeRef.new(shape: AttributeKey)
1121
1143
  AdditionalParameterMap.value = Shapes::ShapeRef.new(shape: Value)
1122
1144
 
@@ -1311,6 +1333,7 @@ module Aws::IoT
1311
1333
 
1312
1334
  Behavior.add_member(:name, Shapes::ShapeRef.new(shape: BehaviorName, required: true, location_name: "name"))
1313
1335
  Behavior.add_member(:metric, Shapes::ShapeRef.new(shape: BehaviorMetric, location_name: "metric"))
1336
+ Behavior.add_member(:metric_dimension, Shapes::ShapeRef.new(shape: MetricDimension, location_name: "metricDimension"))
1314
1337
  Behavior.add_member(:criteria, Shapes::ShapeRef.new(shape: BehaviorCriteria, location_name: "criteria"))
1315
1338
  Behavior.struct_class = Types::Behavior
1316
1339
 
@@ -1498,6 +1521,17 @@ module Aws::IoT
1498
1521
  CreateCertificateFromCsrResponse.add_member(:certificate_pem, Shapes::ShapeRef.new(shape: CertificatePem, location_name: "certificatePem"))
1499
1522
  CreateCertificateFromCsrResponse.struct_class = Types::CreateCertificateFromCsrResponse
1500
1523
 
1524
+ CreateDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
1525
+ CreateDimensionRequest.add_member(:type, Shapes::ShapeRef.new(shape: DimensionType, required: true, location_name: "type"))
1526
+ CreateDimensionRequest.add_member(:string_values, Shapes::ShapeRef.new(shape: DimensionStringValues, required: true, location_name: "stringValues"))
1527
+ CreateDimensionRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1528
+ CreateDimensionRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
1529
+ CreateDimensionRequest.struct_class = Types::CreateDimensionRequest
1530
+
1531
+ CreateDimensionResponse.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, location_name: "name"))
1532
+ CreateDimensionResponse.add_member(:arn, Shapes::ShapeRef.new(shape: DimensionArn, location_name: "arn"))
1533
+ CreateDimensionResponse.struct_class = Types::CreateDimensionResponse
1534
+
1501
1535
  CreateDomainConfigurationRequest.add_member(:domain_configuration_name, Shapes::ShapeRef.new(shape: DomainConfigurationName, required: true, location: "uri", location_name: "domainConfigurationName"))
1502
1536
  CreateDomainConfigurationRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: DomainName, location_name: "domainName"))
1503
1537
  CreateDomainConfigurationRequest.add_member(:server_certificate_arns, Shapes::ShapeRef.new(shape: ServerCertificateArns, location_name: "serverCertificateArns"))
@@ -1661,7 +1695,8 @@ module Aws::IoT
1661
1695
  CreateSecurityProfileRequest.add_member(:security_profile_description, Shapes::ShapeRef.new(shape: SecurityProfileDescription, location_name: "securityProfileDescription"))
1662
1696
  CreateSecurityProfileRequest.add_member(:behaviors, Shapes::ShapeRef.new(shape: Behaviors, location_name: "behaviors"))
1663
1697
  CreateSecurityProfileRequest.add_member(:alert_targets, Shapes::ShapeRef.new(shape: AlertTargets, location_name: "alertTargets"))
1664
- CreateSecurityProfileRequest.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, location_name: "additionalMetricsToRetain"))
1698
+ CreateSecurityProfileRequest.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, deprecated: true, location_name: "additionalMetricsToRetain", metadata: {"deprecatedMessage"=>"Use additionalMetricsToRetainV2."}))
1699
+ CreateSecurityProfileRequest.add_member(:additional_metrics_to_retain_v2, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainV2List, location_name: "additionalMetricsToRetainV2"))
1665
1700
  CreateSecurityProfileRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tags"))
1666
1701
  CreateSecurityProfileRequest.struct_class = Types::CreateSecurityProfileRequest
1667
1702
 
@@ -1761,6 +1796,11 @@ module Aws::IoT
1761
1796
  DeleteConflictException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
1762
1797
  DeleteConflictException.struct_class = Types::DeleteConflictException
1763
1798
 
1799
+ DeleteDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
1800
+ DeleteDimensionRequest.struct_class = Types::DeleteDimensionRequest
1801
+
1802
+ DeleteDimensionResponse.struct_class = Types::DeleteDimensionResponse
1803
+
1764
1804
  DeleteDomainConfigurationRequest.add_member(:domain_configuration_name, Shapes::ShapeRef.new(shape: DomainConfigurationName, required: true, location: "uri", location_name: "domainConfigurationName"))
1765
1805
  DeleteDomainConfigurationRequest.struct_class = Types::DeleteDomainConfigurationRequest
1766
1806
 
@@ -1947,6 +1987,17 @@ module Aws::IoT
1947
1987
  DescribeDefaultAuthorizerResponse.add_member(:authorizer_description, Shapes::ShapeRef.new(shape: AuthorizerDescription, location_name: "authorizerDescription"))
1948
1988
  DescribeDefaultAuthorizerResponse.struct_class = Types::DescribeDefaultAuthorizerResponse
1949
1989
 
1990
+ DescribeDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
1991
+ DescribeDimensionRequest.struct_class = Types::DescribeDimensionRequest
1992
+
1993
+ DescribeDimensionResponse.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, location_name: "name"))
1994
+ DescribeDimensionResponse.add_member(:arn, Shapes::ShapeRef.new(shape: DimensionArn, location_name: "arn"))
1995
+ DescribeDimensionResponse.add_member(:type, Shapes::ShapeRef.new(shape: DimensionType, location_name: "type"))
1996
+ DescribeDimensionResponse.add_member(:string_values, Shapes::ShapeRef.new(shape: DimensionStringValues, location_name: "stringValues"))
1997
+ DescribeDimensionResponse.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDate"))
1998
+ DescribeDimensionResponse.add_member(:last_modified_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModifiedDate"))
1999
+ DescribeDimensionResponse.struct_class = Types::DescribeDimensionResponse
2000
+
1950
2001
  DescribeDomainConfigurationRequest.add_member(:domain_configuration_name, Shapes::ShapeRef.new(shape: ReservedDomainConfigurationName, required: true, location: "uri", location_name: "domainConfigurationName"))
1951
2002
  DescribeDomainConfigurationRequest.struct_class = Types::DescribeDomainConfigurationRequest
1952
2003
 
@@ -2058,7 +2109,8 @@ module Aws::IoT
2058
2109
  DescribeSecurityProfileResponse.add_member(:security_profile_description, Shapes::ShapeRef.new(shape: SecurityProfileDescription, location_name: "securityProfileDescription"))
2059
2110
  DescribeSecurityProfileResponse.add_member(:behaviors, Shapes::ShapeRef.new(shape: Behaviors, location_name: "behaviors"))
2060
2111
  DescribeSecurityProfileResponse.add_member(:alert_targets, Shapes::ShapeRef.new(shape: AlertTargets, location_name: "alertTargets"))
2061
- DescribeSecurityProfileResponse.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, location_name: "additionalMetricsToRetain"))
2112
+ DescribeSecurityProfileResponse.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, deprecated: true, location_name: "additionalMetricsToRetain", metadata: {"deprecatedMessage"=>"Use additionalMetricsToRetainV2."}))
2113
+ DescribeSecurityProfileResponse.add_member(:additional_metrics_to_retain_v2, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainV2List, location_name: "additionalMetricsToRetainV2"))
2062
2114
  DescribeSecurityProfileResponse.add_member(:version, Shapes::ShapeRef.new(shape: Version, location_name: "version"))
2063
2115
  DescribeSecurityProfileResponse.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDate"))
2064
2116
  DescribeSecurityProfileResponse.add_member(:last_modified_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModifiedDate"))
@@ -2151,6 +2203,10 @@ module Aws::IoT
2151
2203
  DetailsMap.key = Shapes::ShapeRef.new(shape: DetailsKey)
2152
2204
  DetailsMap.value = Shapes::ShapeRef.new(shape: DetailsValue)
2153
2205
 
2206
+ DimensionNames.member = Shapes::ShapeRef.new(shape: DimensionName)
2207
+
2208
+ DimensionStringValues.member = Shapes::ShapeRef.new(shape: DimensionStringValue)
2209
+
2154
2210
  DisableTopicRuleRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: RuleName, required: true, location: "uri", location_name: "ruleName"))
2155
2211
  DisableTopicRuleRequest.struct_class = Types::DisableTopicRuleRequest
2156
2212
 
@@ -2633,6 +2689,14 @@ module Aws::IoT
2633
2689
  ListCertificatesResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: Marker, location_name: "nextMarker"))
2634
2690
  ListCertificatesResponse.struct_class = Types::ListCertificatesResponse
2635
2691
 
2692
+ ListDimensionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
2693
+ ListDimensionsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
2694
+ ListDimensionsRequest.struct_class = Types::ListDimensionsRequest
2695
+
2696
+ ListDimensionsResponse.add_member(:dimension_names, Shapes::ShapeRef.new(shape: DimensionNames, location_name: "dimensionNames"))
2697
+ ListDimensionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
2698
+ ListDimensionsResponse.struct_class = Types::ListDimensionsResponse
2699
+
2636
2700
  ListDomainConfigurationsRequest.add_member(:marker, Shapes::ShapeRef.new(shape: Marker, location: "querystring", location_name: "marker"))
2637
2701
  ListDomainConfigurationsRequest.add_member(:page_size, Shapes::ShapeRef.new(shape: PageSize, location: "querystring", location_name: "pageSize"))
2638
2702
  ListDomainConfigurationsRequest.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceType, location: "querystring", location_name: "serviceType"))
@@ -2799,6 +2863,7 @@ module Aws::IoT
2799
2863
 
2800
2864
  ListSecurityProfilesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
2801
2865
  ListSecurityProfilesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
2866
+ ListSecurityProfilesRequest.add_member(:dimension_name, Shapes::ShapeRef.new(shape: DimensionName, location: "querystring", location_name: "dimensionName"))
2802
2867
  ListSecurityProfilesRequest.struct_class = Types::ListSecurityProfilesRequest
2803
2868
 
2804
2869
  ListSecurityProfilesResponse.add_member(:security_profile_identifiers, Shapes::ShapeRef.new(shape: SecurityProfileIdentifiers, location_name: "securityProfileIdentifiers"))
@@ -2981,6 +3046,14 @@ module Aws::IoT
2981
3046
  MalformedPolicyException.add_member(:message, Shapes::ShapeRef.new(shape: errorMessage, location_name: "message"))
2982
3047
  MalformedPolicyException.struct_class = Types::MalformedPolicyException
2983
3048
 
3049
+ MetricDimension.add_member(:dimension_name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location_name: "dimensionName"))
3050
+ MetricDimension.add_member(:operator, Shapes::ShapeRef.new(shape: DimensionValueOperator, location_name: "operator"))
3051
+ MetricDimension.struct_class = Types::MetricDimension
3052
+
3053
+ MetricToRetain.add_member(:metric, Shapes::ShapeRef.new(shape: BehaviorMetric, required: true, location_name: "metric"))
3054
+ MetricToRetain.add_member(:metric_dimension, Shapes::ShapeRef.new(shape: MetricDimension, location_name: "metricDimension"))
3055
+ MetricToRetain.struct_class = Types::MetricToRetain
3056
+
2984
3057
  MetricValue.add_member(:count, Shapes::ShapeRef.new(shape: UnsignedLong, location_name: "count"))
2985
3058
  MetricValue.add_member(:cidrs, Shapes::ShapeRef.new(shape: Cidrs, location_name: "cidrs"))
2986
3059
  MetricValue.add_member(:ports, Shapes::ShapeRef.new(shape: Ports, location_name: "ports"))
@@ -3746,6 +3819,18 @@ module Aws::IoT
3746
3819
  UpdateDeviceCertificateParams.add_member(:action, Shapes::ShapeRef.new(shape: DeviceCertificateUpdateAction, required: true, location_name: "action"))
3747
3820
  UpdateDeviceCertificateParams.struct_class = Types::UpdateDeviceCertificateParams
3748
3821
 
3822
+ UpdateDimensionRequest.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, required: true, location: "uri", location_name: "name"))
3823
+ UpdateDimensionRequest.add_member(:string_values, Shapes::ShapeRef.new(shape: DimensionStringValues, required: true, location_name: "stringValues"))
3824
+ UpdateDimensionRequest.struct_class = Types::UpdateDimensionRequest
3825
+
3826
+ UpdateDimensionResponse.add_member(:name, Shapes::ShapeRef.new(shape: DimensionName, location_name: "name"))
3827
+ UpdateDimensionResponse.add_member(:arn, Shapes::ShapeRef.new(shape: DimensionArn, location_name: "arn"))
3828
+ UpdateDimensionResponse.add_member(:type, Shapes::ShapeRef.new(shape: DimensionType, location_name: "type"))
3829
+ UpdateDimensionResponse.add_member(:string_values, Shapes::ShapeRef.new(shape: DimensionStringValues, location_name: "stringValues"))
3830
+ UpdateDimensionResponse.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDate"))
3831
+ UpdateDimensionResponse.add_member(:last_modified_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModifiedDate"))
3832
+ UpdateDimensionResponse.struct_class = Types::UpdateDimensionResponse
3833
+
3749
3834
  UpdateDomainConfigurationRequest.add_member(:domain_configuration_name, Shapes::ShapeRef.new(shape: ReservedDomainConfigurationName, required: true, location: "uri", location_name: "domainConfigurationName"))
3750
3835
  UpdateDomainConfigurationRequest.add_member(:authorizer_config, Shapes::ShapeRef.new(shape: AuthorizerConfig, location_name: "authorizerConfig"))
3751
3836
  UpdateDomainConfigurationRequest.add_member(:domain_configuration_status, Shapes::ShapeRef.new(shape: DomainConfigurationStatus, location_name: "domainConfigurationStatus"))
@@ -3827,7 +3912,8 @@ module Aws::IoT
3827
3912
  UpdateSecurityProfileRequest.add_member(:security_profile_description, Shapes::ShapeRef.new(shape: SecurityProfileDescription, location_name: "securityProfileDescription"))
3828
3913
  UpdateSecurityProfileRequest.add_member(:behaviors, Shapes::ShapeRef.new(shape: Behaviors, location_name: "behaviors"))
3829
3914
  UpdateSecurityProfileRequest.add_member(:alert_targets, Shapes::ShapeRef.new(shape: AlertTargets, location_name: "alertTargets"))
3830
- UpdateSecurityProfileRequest.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, location_name: "additionalMetricsToRetain"))
3915
+ UpdateSecurityProfileRequest.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, deprecated: true, location_name: "additionalMetricsToRetain", metadata: {"deprecatedMessage"=>"Use additionalMetricsToRetainV2."}))
3916
+ UpdateSecurityProfileRequest.add_member(:additional_metrics_to_retain_v2, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainV2List, location_name: "additionalMetricsToRetainV2"))
3831
3917
  UpdateSecurityProfileRequest.add_member(:delete_behaviors, Shapes::ShapeRef.new(shape: DeleteBehaviors, location_name: "deleteBehaviors"))
3832
3918
  UpdateSecurityProfileRequest.add_member(:delete_alert_targets, Shapes::ShapeRef.new(shape: DeleteAlertTargets, location_name: "deleteAlertTargets"))
3833
3919
  UpdateSecurityProfileRequest.add_member(:delete_additional_metrics_to_retain, Shapes::ShapeRef.new(shape: DeleteAdditionalMetricsToRetain, location_name: "deleteAdditionalMetricsToRetain"))
@@ -3839,7 +3925,8 @@ module Aws::IoT
3839
3925
  UpdateSecurityProfileResponse.add_member(:security_profile_description, Shapes::ShapeRef.new(shape: SecurityProfileDescription, location_name: "securityProfileDescription"))
3840
3926
  UpdateSecurityProfileResponse.add_member(:behaviors, Shapes::ShapeRef.new(shape: Behaviors, location_name: "behaviors"))
3841
3927
  UpdateSecurityProfileResponse.add_member(:alert_targets, Shapes::ShapeRef.new(shape: AlertTargets, location_name: "alertTargets"))
3842
- UpdateSecurityProfileResponse.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, location_name: "additionalMetricsToRetain"))
3928
+ UpdateSecurityProfileResponse.add_member(:additional_metrics_to_retain, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainList, deprecated: true, location_name: "additionalMetricsToRetain", metadata: {"deprecatedMessage"=>"Use additionalMetricsToRetainV2."}))
3929
+ UpdateSecurityProfileResponse.add_member(:additional_metrics_to_retain_v2, Shapes::ShapeRef.new(shape: AdditionalMetricsToRetainV2List, location_name: "additionalMetricsToRetainV2"))
3843
3930
  UpdateSecurityProfileResponse.add_member(:version, Shapes::ShapeRef.new(shape: Version, location_name: "version"))
3844
3931
  UpdateSecurityProfileResponse.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDate"))
3845
3932
  UpdateSecurityProfileResponse.add_member(:last_modified_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastModifiedDate"))
@@ -4177,6 +4264,19 @@ module Aws::IoT
4177
4264
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
4178
4265
  end)
4179
4266
 
4267
+ api.add_operation(:create_dimension, Seahorse::Model::Operation.new.tap do |o|
4268
+ o.name = "CreateDimension"
4269
+ o.http_method = "POST"
4270
+ o.http_request_uri = "/dimensions/{name}"
4271
+ o.input = Shapes::ShapeRef.new(shape: CreateDimensionRequest)
4272
+ o.output = Shapes::ShapeRef.new(shape: CreateDimensionResponse)
4273
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
4274
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
4275
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
4276
+ o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
4277
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
4278
+ end)
4279
+
4180
4280
  api.add_operation(:create_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
4181
4281
  o.name = "CreateDomainConfiguration"
4182
4282
  o.http_method = "POST"
@@ -4532,6 +4632,17 @@ module Aws::IoT
4532
4632
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
4533
4633
  end)
4534
4634
 
4635
+ api.add_operation(:delete_dimension, Seahorse::Model::Operation.new.tap do |o|
4636
+ o.name = "DeleteDimension"
4637
+ o.http_method = "DELETE"
4638
+ o.http_request_uri = "/dimensions/{name}"
4639
+ o.input = Shapes::ShapeRef.new(shape: DeleteDimensionRequest)
4640
+ o.output = Shapes::ShapeRef.new(shape: DeleteDimensionResponse)
4641
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
4642
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
4643
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
4644
+ end)
4645
+
4535
4646
  api.add_operation(:delete_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
4536
4647
  o.name = "DeleteDomainConfiguration"
4537
4648
  o.http_method = "DELETE"
@@ -4942,6 +5053,18 @@ module Aws::IoT
4942
5053
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
4943
5054
  end)
4944
5055
 
5056
+ api.add_operation(:describe_dimension, Seahorse::Model::Operation.new.tap do |o|
5057
+ o.name = "DescribeDimension"
5058
+ o.http_method = "GET"
5059
+ o.http_request_uri = "/dimensions/{name}"
5060
+ o.input = Shapes::ShapeRef.new(shape: DescribeDimensionRequest)
5061
+ o.output = Shapes::ShapeRef.new(shape: DescribeDimensionResponse)
5062
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
5063
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
5064
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
5065
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
5066
+ end)
5067
+
4945
5068
  api.add_operation(:describe_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
4946
5069
  o.name = "DescribeDomainConfiguration"
4947
5070
  o.http_method = "GET"
@@ -5566,6 +5689,17 @@ module Aws::IoT
5566
5689
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
5567
5690
  end)
5568
5691
 
5692
+ api.add_operation(:list_dimensions, Seahorse::Model::Operation.new.tap do |o|
5693
+ o.name = "ListDimensions"
5694
+ o.http_method = "GET"
5695
+ o.http_request_uri = "/dimensions"
5696
+ o.input = Shapes::ShapeRef.new(shape: ListDimensionsRequest)
5697
+ o.output = Shapes::ShapeRef.new(shape: ListDimensionsResponse)
5698
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
5699
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
5700
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
5701
+ end)
5702
+
5569
5703
  api.add_operation(:list_domain_configurations, Seahorse::Model::Operation.new.tap do |o|
5570
5704
  o.name = "ListDomainConfigurations"
5571
5705
  o.http_method = "GET"
@@ -5794,6 +5928,7 @@ module Aws::IoT
5794
5928
  o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
5795
5929
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
5796
5930
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
5931
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
5797
5932
  end)
5798
5933
 
5799
5934
  api.add_operation(:list_security_profiles_for_target, Seahorse::Model::Operation.new.tap do |o|
@@ -6385,6 +6520,18 @@ module Aws::IoT
6385
6520
  o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
6386
6521
  end)
6387
6522
 
6523
+ api.add_operation(:update_dimension, Seahorse::Model::Operation.new.tap do |o|
6524
+ o.name = "UpdateDimension"
6525
+ o.http_method = "PATCH"
6526
+ o.http_request_uri = "/dimensions/{name}"
6527
+ o.input = Shapes::ShapeRef.new(shape: UpdateDimensionRequest)
6528
+ o.output = Shapes::ShapeRef.new(shape: UpdateDimensionResponse)
6529
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
6530
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
6531
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
6532
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
6533
+ end)
6534
+
6388
6535
  api.add_operation(:update_domain_configuration, Seahorse::Model::Operation.new.tap do |o|
6389
6536
  o.name = "UpdateDomainConfiguration"
6390
6537
  o.http_method = "PUT"
@@ -6,13 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::IoT
9
- # This class provides a resource oriented interface for IoT.
10
- # To create a resource object:
11
- # resource = Aws::IoT::Resource.new(region: 'us-west-2')
12
- # You can supply a client object with custom configuration that will be used for all resource operations.
13
- # If you do not pass +:client+, a default client will be constructed.
14
- # client = Aws::IoT::Client.new(region: 'us-west-2')
15
- # resource = Aws::IoT::Resource.new(client: client)
9
+
16
10
  class Resource
17
11
 
18
12
  # @param options ({})
@@ -293,7 +293,7 @@ module Aws::IoT
293
293
  # @return [Types::CloudwatchAlarmAction]
294
294
  #
295
295
  # @!attribute [rw] cloudwatch_logs
296
- # Send data to CloudWatch logs.
296
+ # Send data to CloudWatch Logs.
297
297
  # @return [Types::CloudwatchLogsAction]
298
298
  #
299
299
  # @!attribute [rw] elasticsearch
@@ -1327,6 +1327,10 @@ module Aws::IoT
1327
1327
  # {
1328
1328
  # name: "BehaviorName", # required
1329
1329
  # metric: "BehaviorMetric",
1330
+ # metric_dimension: {
1331
+ # dimension_name: "DimensionName", # required
1332
+ # operator: "IN", # accepts IN, NOT_IN
1333
+ # },
1330
1334
  # criteria: {
1331
1335
  # 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
1332
1336
  # value: {
@@ -1351,6 +1355,13 @@ module Aws::IoT
1351
1355
  # What is measured by the behavior.
1352
1356
  # @return [String]
1353
1357
  #
1358
+ # @!attribute [rw] metric_dimension
1359
+ # The dimension for a metric in your behavior. For example, using a
1360
+ # `TOPIC_FILTER` dimension, you can narrow down the scope of the
1361
+ # metric only to MQTT topics whose name match the pattern specified in
1362
+ # the dimension.
1363
+ # @return [Types::MetricDimension]
1364
+ #
1354
1365
  # @!attribute [rw] criteria
1355
1366
  # The criteria that determine if a device is behaving normally in
1356
1367
  # regard to the `metric`.
@@ -1359,6 +1370,7 @@ module Aws::IoT
1359
1370
  class Behavior < Struct.new(
1360
1371
  :name,
1361
1372
  :metric,
1373
+ :metric_dimension,
1362
1374
  :criteria)
1363
1375
  include Aws::Structure
1364
1376
  end
@@ -1925,7 +1937,7 @@ module Aws::IoT
1925
1937
  include Aws::Structure
1926
1938
  end
1927
1939
 
1928
- # Describes an action that sends data to CloudWatch logs.
1940
+ # Describes an action that sends data to CloudWatch Logs.
1929
1941
  #
1930
1942
  # @note When making an API call, you may pass CloudwatchLogsAction
1931
1943
  # data as a hash:
@@ -2317,6 +2329,75 @@ module Aws::IoT
2317
2329
  include Aws::Structure
2318
2330
  end
2319
2331
 
2332
+ # @note When making an API call, you may pass CreateDimensionRequest
2333
+ # data as a hash:
2334
+ #
2335
+ # {
2336
+ # name: "DimensionName", # required
2337
+ # type: "TOPIC_FILTER", # required, accepts TOPIC_FILTER
2338
+ # string_values: ["DimensionStringValue"], # required
2339
+ # tags: [
2340
+ # {
2341
+ # key: "TagKey",
2342
+ # value: "TagValue",
2343
+ # },
2344
+ # ],
2345
+ # client_request_token: "ClientRequestToken", # required
2346
+ # }
2347
+ #
2348
+ # @!attribute [rw] name
2349
+ # A unique identifier for the dimension. Choose something that
2350
+ # describes the type and value to make it easy to remember what it
2351
+ # does.
2352
+ # @return [String]
2353
+ #
2354
+ # @!attribute [rw] type
2355
+ # Specifies the type of dimension. Supported types: `TOPIC_FILTER.`
2356
+ # @return [String]
2357
+ #
2358
+ # @!attribute [rw] string_values
2359
+ # Specifies the value or list of values for the dimension. For
2360
+ # `TOPIC_FILTER` dimensions, this is a pattern used to match the MQTT
2361
+ # topic (for example, "admin/#").
2362
+ # @return [Array<String>]
2363
+ #
2364
+ # @!attribute [rw] tags
2365
+ # Metadata that can be used to manage the dimension.
2366
+ # @return [Array<Types::Tag>]
2367
+ #
2368
+ # @!attribute [rw] client_request_token
2369
+ # Each dimension must have a unique client request token. If you try
2370
+ # to create a new dimension with the same token as a dimension that
2371
+ # already exists, an exception occurs. If you omit this value, AWS
2372
+ # SDKs will automatically generate a unique client request.
2373
+ #
2374
+ # **A suitable default value is auto-generated.** You should normally
2375
+ # not need to pass this option.
2376
+ # @return [String]
2377
+ #
2378
+ class CreateDimensionRequest < Struct.new(
2379
+ :name,
2380
+ :type,
2381
+ :string_values,
2382
+ :tags,
2383
+ :client_request_token)
2384
+ include Aws::Structure
2385
+ end
2386
+
2387
+ # @!attribute [rw] name
2388
+ # A unique identifier for the dimension.
2389
+ # @return [String]
2390
+ #
2391
+ # @!attribute [rw] arn
2392
+ # The ARN (Amazon resource name) of the created dimension.
2393
+ # @return [String]
2394
+ #
2395
+ class CreateDimensionResponse < Struct.new(
2396
+ :name,
2397
+ :arn)
2398
+ include Aws::Structure
2399
+ end
2400
+
2320
2401
  # @note When making an API call, you may pass CreateDomainConfigurationRequest
2321
2402
  # data as a hash:
2322
2403
  #
@@ -3349,6 +3430,10 @@ module Aws::IoT
3349
3430
  # {
3350
3431
  # name: "BehaviorName", # required
3351
3432
  # metric: "BehaviorMetric",
3433
+ # metric_dimension: {
3434
+ # dimension_name: "DimensionName", # required
3435
+ # operator: "IN", # accepts IN, NOT_IN
3436
+ # },
3352
3437
  # criteria: {
3353
3438
  # 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
3354
3439
  # value: {
@@ -3372,6 +3457,15 @@ module Aws::IoT
3372
3457
  # },
3373
3458
  # },
3374
3459
  # additional_metrics_to_retain: ["BehaviorMetric"],
3460
+ # additional_metrics_to_retain_v2: [
3461
+ # {
3462
+ # metric: "BehaviorMetric", # required
3463
+ # metric_dimension: {
3464
+ # dimension_name: "DimensionName", # required
3465
+ # operator: "IN", # accepts IN, NOT_IN
3466
+ # },
3467
+ # },
3468
+ # ],
3375
3469
  # tags: [
3376
3470
  # {
3377
3471
  # key: "TagKey",
@@ -3403,8 +3497,17 @@ module Aws::IoT
3403
3497
  # A list of metrics whose data is retained (stored). By default, data
3404
3498
  # is retained for any metric used in the profile's `behaviors`, but
3405
3499
  # it is also retained for any metric specified here.
3500
+ #
3501
+ # **Note:** This API field is deprecated. Please use
3502
+ # CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
3406
3503
  # @return [Array<String>]
3407
3504
  #
3505
+ # @!attribute [rw] additional_metrics_to_retain_v2
3506
+ # A list of metrics whose data is retained (stored). By default, data
3507
+ # is retained for any metric used in the profile's `behaviors`, but
3508
+ # it is also retained for any metric specified here.
3509
+ # @return [Array<Types::MetricToRetain>]
3510
+ #
3408
3511
  # @!attribute [rw] tags
3409
3512
  # Metadata that can be used to manage the security profile.
3410
3513
  # @return [Array<Types::Tag>]
@@ -3415,6 +3518,7 @@ module Aws::IoT
3415
3518
  :behaviors,
3416
3519
  :alert_targets,
3417
3520
  :additional_metrics_to_retain,
3521
+ :additional_metrics_to_retain_v2,
3418
3522
  :tags)
3419
3523
  include Aws::Structure
3420
3524
  end
@@ -4228,6 +4332,24 @@ module Aws::IoT
4228
4332
  include Aws::Structure
4229
4333
  end
4230
4334
 
4335
+ # @note When making an API call, you may pass DeleteDimensionRequest
4336
+ # data as a hash:
4337
+ #
4338
+ # {
4339
+ # name: "DimensionName", # required
4340
+ # }
4341
+ #
4342
+ # @!attribute [rw] name
4343
+ # The unique identifier for the dimension that you want to delete.
4344
+ # @return [String]
4345
+ #
4346
+ class DeleteDimensionRequest < Struct.new(
4347
+ :name)
4348
+ include Aws::Structure
4349
+ end
4350
+
4351
+ class DeleteDimensionResponse < Aws::EmptyStructure; end
4352
+
4231
4353
  # @note When making an API call, you may pass DeleteDomainConfigurationRequest
4232
4354
  # data as a hash:
4233
4355
  #
@@ -5086,6 +5208,58 @@ module Aws::IoT
5086
5208
  include Aws::Structure
5087
5209
  end
5088
5210
 
5211
+ # @note When making an API call, you may pass DescribeDimensionRequest
5212
+ # data as a hash:
5213
+ #
5214
+ # {
5215
+ # name: "DimensionName", # required
5216
+ # }
5217
+ #
5218
+ # @!attribute [rw] name
5219
+ # The unique identifier for the dimension.
5220
+ # @return [String]
5221
+ #
5222
+ class DescribeDimensionRequest < Struct.new(
5223
+ :name)
5224
+ include Aws::Structure
5225
+ end
5226
+
5227
+ # @!attribute [rw] name
5228
+ # The unique identifier for the dimension.
5229
+ # @return [String]
5230
+ #
5231
+ # @!attribute [rw] arn
5232
+ # The ARN (Amazon resource name) for the dimension.
5233
+ # @return [String]
5234
+ #
5235
+ # @!attribute [rw] type
5236
+ # The type of the dimension.
5237
+ # @return [String]
5238
+ #
5239
+ # @!attribute [rw] string_values
5240
+ # The value or list of values used to scope the dimension. For
5241
+ # example, for topic filters, this is the pattern used to match the
5242
+ # MQTT topic name.
5243
+ # @return [Array<String>]
5244
+ #
5245
+ # @!attribute [rw] creation_date
5246
+ # The date the dimension was created.
5247
+ # @return [Time]
5248
+ #
5249
+ # @!attribute [rw] last_modified_date
5250
+ # The date the dimension was last modified.
5251
+ # @return [Time]
5252
+ #
5253
+ class DescribeDimensionResponse < Struct.new(
5254
+ :name,
5255
+ :arn,
5256
+ :type,
5257
+ :string_values,
5258
+ :creation_date,
5259
+ :last_modified_date)
5260
+ include Aws::Structure
5261
+ end
5262
+
5089
5263
  # @note When making an API call, you may pass DescribeDomainConfigurationRequest
5090
5264
  # data as a hash:
5091
5265
  #
@@ -5646,8 +5820,17 @@ module Aws::IoT
5646
5820
  # A list of metrics whose data is retained (stored). By default, data
5647
5821
  # is retained for any metric used in the profile's `behaviors`, but
5648
5822
  # it is also retained for any metric specified here.
5823
+ #
5824
+ # **Note:** This API field is deprecated. Please use
5825
+ # DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
5649
5826
  # @return [Array<String>]
5650
5827
  #
5828
+ # @!attribute [rw] additional_metrics_to_retain_v2
5829
+ # A list of metrics whose data is retained (stored). By default, data
5830
+ # is retained for any metric used in the profile's behaviors, but it
5831
+ # is also retained for any metric specified here.
5832
+ # @return [Array<Types::MetricToRetain>]
5833
+ #
5651
5834
  # @!attribute [rw] version
5652
5835
  # The version of the security profile. A new version is generated
5653
5836
  # whenever the security profile is updated.
@@ -5668,6 +5851,7 @@ module Aws::IoT
5668
5851
  :behaviors,
5669
5852
  :alert_targets,
5670
5853
  :additional_metrics_to_retain,
5854
+ :additional_metrics_to_retain_v2,
5671
5855
  :version,
5672
5856
  :creation_date,
5673
5857
  :last_modified_date)
@@ -7086,7 +7270,7 @@ module Aws::IoT
7086
7270
  # not specify a confirmation URL AWS IoT uses the endpoint URL as the
7087
7271
  # confirmation URL. If you use substitution templates in the
7088
7272
  # confirmationUrl, you must create and enable topic rule destinations
7089
- # that match each possible value of the substituion template before
7273
+ # that match each possible value of the substitution template before
7090
7274
  # traffic is allowed to your endpoint URL.
7091
7275
  # @return [String]
7092
7276
  #
@@ -8553,6 +8737,44 @@ module Aws::IoT
8553
8737
  include Aws::Structure
8554
8738
  end
8555
8739
 
8740
+ # @note When making an API call, you may pass ListDimensionsRequest
8741
+ # data as a hash:
8742
+ #
8743
+ # {
8744
+ # next_token: "NextToken",
8745
+ # max_results: 1,
8746
+ # }
8747
+ #
8748
+ # @!attribute [rw] next_token
8749
+ # The token for the next set of results.
8750
+ # @return [String]
8751
+ #
8752
+ # @!attribute [rw] max_results
8753
+ # The maximum number of results to retrieve at one time.
8754
+ # @return [Integer]
8755
+ #
8756
+ class ListDimensionsRequest < Struct.new(
8757
+ :next_token,
8758
+ :max_results)
8759
+ include Aws::Structure
8760
+ end
8761
+
8762
+ # @!attribute [rw] dimension_names
8763
+ # A list of the names of the defined dimensions. Use
8764
+ # `DescribeDimension` to get details for a dimension.
8765
+ # @return [Array<String>]
8766
+ #
8767
+ # @!attribute [rw] next_token
8768
+ # A token that can be used to retrieve the next set of results, or
8769
+ # `null` if there are no additional results.
8770
+ # @return [String]
8771
+ #
8772
+ class ListDimensionsResponse < Struct.new(
8773
+ :dimension_names,
8774
+ :next_token)
8775
+ include Aws::Structure
8776
+ end
8777
+
8556
8778
  # @note When making an API call, you may pass ListDomainConfigurationsRequest
8557
8779
  # data as a hash:
8558
8780
  #
@@ -9381,6 +9603,7 @@ module Aws::IoT
9381
9603
  # {
9382
9604
  # next_token: "NextToken",
9383
9605
  # max_results: 1,
9606
+ # dimension_name: "DimensionName",
9384
9607
  # }
9385
9608
  #
9386
9609
  # @!attribute [rw] next_token
@@ -9391,9 +9614,15 @@ module Aws::IoT
9391
9614
  # The maximum number of results to return at one time.
9392
9615
  # @return [Integer]
9393
9616
  #
9617
+ # @!attribute [rw] dimension_name
9618
+ # A filter to limit results to the security profiles that use the
9619
+ # defined dimension.
9620
+ # @return [String]
9621
+ #
9394
9622
  class ListSecurityProfilesRequest < Struct.new(
9395
9623
  :next_token,
9396
- :max_results)
9624
+ :max_results,
9625
+ :dimension_name)
9397
9626
  include Aws::Structure
9398
9627
  end
9399
9628
 
@@ -10274,6 +10503,63 @@ module Aws::IoT
10274
10503
  include Aws::Structure
10275
10504
  end
10276
10505
 
10506
+ # The dimension of a metric.
10507
+ #
10508
+ # @note When making an API call, you may pass MetricDimension
10509
+ # data as a hash:
10510
+ #
10511
+ # {
10512
+ # dimension_name: "DimensionName", # required
10513
+ # operator: "IN", # accepts IN, NOT_IN
10514
+ # }
10515
+ #
10516
+ # @!attribute [rw] dimension_name
10517
+ # A unique identifier for the dimension.
10518
+ # @return [String]
10519
+ #
10520
+ # @!attribute [rw] operator
10521
+ # Defines how the `dimensionValues` of a dimension are interpreted.
10522
+ # For example, for DimensionType TOPIC\_FILTER, with `IN` operator, a
10523
+ # message will be counted only if its topic matches one of the topic
10524
+ # filters. With `NOT_IN` Operator, a message will be counted only if
10525
+ # it doesn't match any of the topic filters. The operator is
10526
+ # optional: if it's not provided (is `null`), it will be interpreted
10527
+ # as `IN`.
10528
+ # @return [String]
10529
+ #
10530
+ class MetricDimension < Struct.new(
10531
+ :dimension_name,
10532
+ :operator)
10533
+ include Aws::Structure
10534
+ end
10535
+
10536
+ # The metric you want to retain. Dimensions are optional.
10537
+ #
10538
+ # @note When making an API call, you may pass MetricToRetain
10539
+ # data as a hash:
10540
+ #
10541
+ # {
10542
+ # metric: "BehaviorMetric", # required
10543
+ # metric_dimension: {
10544
+ # dimension_name: "DimensionName", # required
10545
+ # operator: "IN", # accepts IN, NOT_IN
10546
+ # },
10547
+ # }
10548
+ #
10549
+ # @!attribute [rw] metric
10550
+ # What is measured by the behavior.
10551
+ # @return [String]
10552
+ #
10553
+ # @!attribute [rw] metric_dimension
10554
+ # The dimension of a metric.
10555
+ # @return [Types::MetricDimension]
10556
+ #
10557
+ class MetricToRetain < Struct.new(
10558
+ :metric,
10559
+ :metric_dimension)
10560
+ include Aws::Structure
10561
+ end
10562
+
10277
10563
  # The value to be compared with the `metric`.
10278
10564
  #
10279
10565
  # @note When making an API call, you may pass MetricValue
@@ -14513,6 +14799,70 @@ module Aws::IoT
14513
14799
  include Aws::Structure
14514
14800
  end
14515
14801
 
14802
+ # @note When making an API call, you may pass UpdateDimensionRequest
14803
+ # data as a hash:
14804
+ #
14805
+ # {
14806
+ # name: "DimensionName", # required
14807
+ # string_values: ["DimensionStringValue"], # required
14808
+ # }
14809
+ #
14810
+ # @!attribute [rw] name
14811
+ # A unique identifier for the dimension. Choose something that
14812
+ # describes the type and value to make it easy to remember what it
14813
+ # does.
14814
+ # @return [String]
14815
+ #
14816
+ # @!attribute [rw] string_values
14817
+ # Specifies the value or list of values for the dimension. For
14818
+ # `TOPIC_FILTER` dimensions, this is a pattern used to match the MQTT
14819
+ # topic (for example, "admin/#").
14820
+ # @return [Array<String>]
14821
+ #
14822
+ class UpdateDimensionRequest < Struct.new(
14823
+ :name,
14824
+ :string_values)
14825
+ include Aws::Structure
14826
+ end
14827
+
14828
+ # @!attribute [rw] name
14829
+ # A unique identifier for the dimension.
14830
+ # @return [String]
14831
+ #
14832
+ # @!attribute [rw] arn
14833
+ # The ARN (Amazon resource name) of the created dimension.
14834
+ # @return [String]
14835
+ #
14836
+ # @!attribute [rw] type
14837
+ # The type of the dimension.
14838
+ # @return [String]
14839
+ #
14840
+ # @!attribute [rw] string_values
14841
+ # The value or list of values used to scope the dimension. For
14842
+ # example, for topic filters, this is the pattern used to match the
14843
+ # MQTT topic name.
14844
+ # @return [Array<String>]
14845
+ #
14846
+ # @!attribute [rw] creation_date
14847
+ # The date and time, in milliseconds since epoch, when the dimension
14848
+ # was initially created.
14849
+ # @return [Time]
14850
+ #
14851
+ # @!attribute [rw] last_modified_date
14852
+ # The date and time, in milliseconds since epoch, when the dimension
14853
+ # was most recently updated.
14854
+ # @return [Time]
14855
+ #
14856
+ class UpdateDimensionResponse < Struct.new(
14857
+ :name,
14858
+ :arn,
14859
+ :type,
14860
+ :string_values,
14861
+ :creation_date,
14862
+ :last_modified_date)
14863
+ include Aws::Structure
14864
+ end
14865
+
14516
14866
  # @note When making an API call, you may pass UpdateDomainConfigurationRequest
14517
14867
  # data as a hash:
14518
14868
  #
@@ -15008,6 +15358,10 @@ module Aws::IoT
15008
15358
  # {
15009
15359
  # name: "BehaviorName", # required
15010
15360
  # metric: "BehaviorMetric",
15361
+ # metric_dimension: {
15362
+ # dimension_name: "DimensionName", # required
15363
+ # operator: "IN", # accepts IN, NOT_IN
15364
+ # },
15011
15365
  # criteria: {
15012
15366
  # 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
15013
15367
  # value: {
@@ -15031,6 +15385,15 @@ module Aws::IoT
15031
15385
  # },
15032
15386
  # },
15033
15387
  # additional_metrics_to_retain: ["BehaviorMetric"],
15388
+ # additional_metrics_to_retain_v2: [
15389
+ # {
15390
+ # metric: "BehaviorMetric", # required
15391
+ # metric_dimension: {
15392
+ # dimension_name: "DimensionName", # required
15393
+ # operator: "IN", # accepts IN, NOT_IN
15394
+ # },
15395
+ # },
15396
+ # ],
15034
15397
  # delete_behaviors: false,
15035
15398
  # delete_alert_targets: false,
15036
15399
  # delete_additional_metrics_to_retain: false,
@@ -15058,8 +15421,17 @@ module Aws::IoT
15058
15421
  # A list of metrics whose data is retained (stored). By default, data
15059
15422
  # is retained for any metric used in the profile's `behaviors`, but
15060
15423
  # it is also retained for any metric specified here.
15424
+ #
15425
+ # **Note:** This API field is deprecated. Please use
15426
+ # UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
15061
15427
  # @return [Array<String>]
15062
15428
  #
15429
+ # @!attribute [rw] additional_metrics_to_retain_v2
15430
+ # A list of metrics whose data is retained (stored). By default, data
15431
+ # is retained for any metric used in the profile's behaviors, but it
15432
+ # is also retained for any metric specified here.
15433
+ # @return [Array<Types::MetricToRetain>]
15434
+ #
15063
15435
  # @!attribute [rw] delete_behaviors
15064
15436
  # If true, delete all `behaviors` defined for this security profile.
15065
15437
  # If any `behaviors` are defined in the current invocation, an
@@ -15091,6 +15463,7 @@ module Aws::IoT
15091
15463
  :behaviors,
15092
15464
  :alert_targets,
15093
15465
  :additional_metrics_to_retain,
15466
+ :additional_metrics_to_retain_v2,
15094
15467
  :delete_behaviors,
15095
15468
  :delete_alert_targets,
15096
15469
  :delete_additional_metrics_to_retain,
@@ -15123,8 +15496,17 @@ module Aws::IoT
15123
15496
  # A list of metrics whose data is retained (stored). By default, data
15124
15497
  # is retained for any metric used in the security profile's
15125
15498
  # `behaviors`, but it is also retained for any metric specified here.
15499
+ #
15500
+ # **Note:** This API field is deprecated. Please use
15501
+ # UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
15126
15502
  # @return [Array<String>]
15127
15503
  #
15504
+ # @!attribute [rw] additional_metrics_to_retain_v2
15505
+ # A list of metrics whose data is retained (stored). By default, data
15506
+ # is retained for any metric used in the profile's behaviors, but it
15507
+ # is also retained for any metric specified here.
15508
+ # @return [Array<Types::MetricToRetain>]
15509
+ #
15128
15510
  # @!attribute [rw] version
15129
15511
  # The updated version of the security profile.
15130
15512
  # @return [Integer]
@@ -15144,6 +15526,7 @@ module Aws::IoT
15144
15526
  :behaviors,
15145
15527
  :alert_targets,
15146
15528
  :additional_metrics_to_retain,
15529
+ :additional_metrics_to_retain_v2,
15147
15530
  :version,
15148
15531
  :creation_date,
15149
15532
  :last_modified_date)
@@ -15425,6 +15808,10 @@ module Aws::IoT
15425
15808
  # {
15426
15809
  # name: "BehaviorName", # required
15427
15810
  # metric: "BehaviorMetric",
15811
+ # metric_dimension: {
15812
+ # dimension_name: "DimensionName", # required
15813
+ # operator: "IN", # accepts IN, NOT_IN
15814
+ # },
15428
15815
  # criteria: {
15429
15816
  # 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
15430
15817
  # value: {