aws-cdk-lib 2.167.2__py3-none-any.whl → 2.169.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (60) hide show
  1. aws_cdk/__init__.py +2083 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.167.2.jsii.tgz → aws-cdk-lib@2.169.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_accessanalyzer/__init__.py +244 -13
  5. aws_cdk/aws_applicationautoscaling/__init__.py +1691 -95
  6. aws_cdk/aws_applicationinsights/__init__.py +41 -0
  7. aws_cdk/aws_applicationsignals/__init__.py +124 -0
  8. aws_cdk/aws_autoscaling/__init__.py +743 -7
  9. aws_cdk/aws_batch/__init__.py +202 -5
  10. aws_cdk/aws_bedrock/__init__.py +12 -12
  11. aws_cdk/aws_cleanrooms/__init__.py +17 -8
  12. aws_cdk/aws_cloudformation/__init__.py +2571 -492
  13. aws_cdk/aws_cloudfront/__init__.py +281 -0
  14. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
  15. aws_cdk/aws_cloudfront_origins/__init__.py +714 -132
  16. aws_cdk/aws_cloudtrail/__init__.py +52 -14
  17. aws_cdk/aws_codebuild/__init__.py +670 -4
  18. aws_cdk/aws_connect/__init__.py +378 -0
  19. aws_cdk/aws_connectcampaignsv2/__init__.py +3376 -0
  20. aws_cdk/aws_customerprofiles/__init__.py +44 -0
  21. aws_cdk/aws_deadline/__init__.py +299 -6
  22. aws_cdk/aws_dynamodb/__init__.py +359 -16
  23. aws_cdk/aws_ec2/__init__.py +19 -6
  24. aws_cdk/aws_ecs/__init__.py +231 -12
  25. aws_cdk/aws_efs/__init__.py +61 -4
  26. aws_cdk/aws_eks/__init__.py +116 -0
  27. aws_cdk/aws_elasticloadbalancingv2/__init__.py +160 -11
  28. aws_cdk/aws_fis/__init__.py +495 -0
  29. aws_cdk/aws_gamelift/__init__.py +3204 -1104
  30. aws_cdk/aws_iot/__init__.py +209 -0
  31. aws_cdk/aws_iotfleetwise/__init__.py +550 -0
  32. aws_cdk/aws_iotsitewise/__init__.py +6 -3
  33. aws_cdk/aws_ivs/__init__.py +458 -0
  34. aws_cdk/aws_kinesisfirehose/__init__.py +756 -8
  35. aws_cdk/aws_lambda/__init__.py +634 -259
  36. aws_cdk/aws_lambda_destinations/__init__.py +73 -0
  37. aws_cdk/aws_lambda_event_sources/__init__.py +102 -2
  38. aws_cdk/aws_location/__init__.py +18 -18
  39. aws_cdk/aws_mediastore/__init__.py +22 -10
  40. aws_cdk/aws_opensearchservice/__init__.py +6 -0
  41. aws_cdk/aws_quicksight/__init__.py +35 -19
  42. aws_cdk/aws_rbin/__init__.py +902 -0
  43. aws_cdk/aws_rds/__init__.py +166 -3
  44. aws_cdk/aws_route53resolver/__init__.py +76 -19
  45. aws_cdk/aws_sagemaker/__init__.py +32 -0
  46. aws_cdk/aws_securityhub/__init__.py +11 -14
  47. aws_cdk/aws_ses/__init__.py +58 -5
  48. aws_cdk/aws_sns/__init__.py +593 -8
  49. aws_cdk/aws_sns_subscriptions/__init__.py +68 -22
  50. aws_cdk/aws_stepfunctions_tasks/__init__.py +1601 -8
  51. aws_cdk/aws_synthetics/__init__.py +46 -0
  52. aws_cdk/aws_transfer/__init__.py +0 -8
  53. aws_cdk/aws_vpclattice/__init__.py +157 -2
  54. aws_cdk/aws_wisdom/__init__.py +113 -69
  55. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.169.0.dist-info}/METADATA +1 -1
  56. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.169.0.dist-info}/RECORD +60 -58
  57. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.169.0.dist-info}/LICENSE +0 -0
  58. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.169.0.dist-info}/NOTICE +0 -0
  59. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.169.0.dist-info}/WHEEL +0 -0
  60. {aws_cdk_lib-2.167.2.dist-info → aws_cdk_lib-2.169.0.dist-info}/top_level.txt +0 -0
@@ -2033,6 +2033,97 @@ class CfnScalingPolicy(
2033
2033
  policy_type="policyType",
2034
2034
 
2035
2035
  # the properties below are optional
2036
+ predictive_scaling_policy_configuration=appscaling.CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty(
2037
+ metric_specifications=[appscaling.CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty(
2038
+ target_value=123,
2039
+
2040
+ # the properties below are optional
2041
+ customized_capacity_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty(
2042
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
2043
+ expression="expression",
2044
+ id="id",
2045
+ label="label",
2046
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
2047
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
2048
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
2049
+ name="name",
2050
+ value="value"
2051
+ )],
2052
+ metric_name="metricName",
2053
+ namespace="namespace"
2054
+ ),
2055
+ stat="stat",
2056
+ unit="unit"
2057
+ ),
2058
+ return_data=False
2059
+ )]
2060
+ ),
2061
+ customized_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty(
2062
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
2063
+ expression="expression",
2064
+ id="id",
2065
+ label="label",
2066
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
2067
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
2068
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
2069
+ name="name",
2070
+ value="value"
2071
+ )],
2072
+ metric_name="metricName",
2073
+ namespace="namespace"
2074
+ ),
2075
+ stat="stat",
2076
+ unit="unit"
2077
+ ),
2078
+ return_data=False
2079
+ )]
2080
+ ),
2081
+ customized_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty(
2082
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
2083
+ expression="expression",
2084
+ id="id",
2085
+ label="label",
2086
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
2087
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
2088
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
2089
+ name="name",
2090
+ value="value"
2091
+ )],
2092
+ metric_name="metricName",
2093
+ namespace="namespace"
2094
+ ),
2095
+ stat="stat",
2096
+ unit="unit"
2097
+ ),
2098
+ return_data=False
2099
+ )]
2100
+ ),
2101
+ predefined_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty(
2102
+ predefined_metric_type="predefinedMetricType",
2103
+
2104
+ # the properties below are optional
2105
+ resource_label="resourceLabel"
2106
+ ),
2107
+ predefined_metric_pair_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty(
2108
+ predefined_metric_type="predefinedMetricType",
2109
+
2110
+ # the properties below are optional
2111
+ resource_label="resourceLabel"
2112
+ ),
2113
+ predefined_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty(
2114
+ predefined_metric_type="predefinedMetricType",
2115
+
2116
+ # the properties below are optional
2117
+ resource_label="resourceLabel"
2118
+ )
2119
+ )],
2120
+
2121
+ # the properties below are optional
2122
+ max_capacity_breach_behavior="maxCapacityBreachBehavior",
2123
+ max_capacity_buffer=123,
2124
+ mode="mode",
2125
+ scheduling_buffer_time=123
2126
+ ),
2036
2127
  resource_id="resourceId",
2037
2128
  scalable_dimension="scalableDimension",
2038
2129
  scaling_target_id="scalingTargetId",
@@ -2102,6 +2193,7 @@ class CfnScalingPolicy(
2102
2193
  *,
2103
2194
  policy_name: builtins.str,
2104
2195
  policy_type: builtins.str,
2196
+ predictive_scaling_policy_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2105
2197
  resource_id: typing.Optional[builtins.str] = None,
2106
2198
  scalable_dimension: typing.Optional[builtins.str] = None,
2107
2199
  scaling_target_id: typing.Optional[builtins.str] = None,
@@ -2114,6 +2206,7 @@ class CfnScalingPolicy(
2114
2206
  :param id: Construct identifier for this resource (unique in its scope).
2115
2207
  :param policy_name: The name of the scaling policy. Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.
2116
2208
  :param policy_type: The scaling policy type. The following policy types are supported: ``TargetTrackingScaling`` —Not supported for Amazon EMR ``StepScaling`` —Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.
2209
+ :param predictive_scaling_policy_configuration:
2117
2210
  :param resource_id: The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. - ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service`` . - Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`` . - EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`` . - AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet`` . - DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table`` . - DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index`` . - Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster`` . - SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering`` . - Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our `GitHub repository <https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource>`_ . - Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`` . - Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`` . - Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST`` . Example: ``function:my-function:prod`` or ``function:my-function:1`` . - Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable`` . - Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`` . - Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster`` . - Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster`` . - SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering`` . - SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component`` . - Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456`` .
2118
2211
  :param scalable_dimension: The scalable dimension. This string consists of the service namespace, resource type, and scaling property. - ``ecs:service:DesiredCount`` - The task count of an ECS service. - ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group. - ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet. - ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet. - ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table. - ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table. - ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index. - ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index. - ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. - ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant. - ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service. - ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint. - ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint. - ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function. - ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table. - ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table. - ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. - ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group. - ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group. - ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster. - ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint. - ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component. - ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.
2119
2212
  :param scaling_target_id: The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource. .. epigraph:: You must specify either the ``ScalingTargetId`` property, or the ``ResourceId`` , ``ScalableDimension`` , and ``ServiceNamespace`` properties, but not both.
@@ -2128,6 +2221,7 @@ class CfnScalingPolicy(
2128
2221
  props = CfnScalingPolicyProps(
2129
2222
  policy_name=policy_name,
2130
2223
  policy_type=policy_type,
2224
+ predictive_scaling_policy_configuration=predictive_scaling_policy_configuration,
2131
2225
  resource_id=resource_id,
2132
2226
  scalable_dimension=scalable_dimension,
2133
2227
  scaling_target_id=scaling_target_id,
@@ -2208,6 +2302,23 @@ class CfnScalingPolicy(
2208
2302
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2209
2303
  jsii.set(self, "policyType", value) # pyright: ignore[reportArgumentType]
2210
2304
 
2305
+ @builtins.property
2306
+ @jsii.member(jsii_name="predictiveScalingPolicyConfiguration")
2307
+ def predictive_scaling_policy_configuration(
2308
+ self,
2309
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty"]]:
2310
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty"]], jsii.get(self, "predictiveScalingPolicyConfiguration"))
2311
+
2312
+ @predictive_scaling_policy_configuration.setter
2313
+ def predictive_scaling_policy_configuration(
2314
+ self,
2315
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty"]],
2316
+ ) -> None:
2317
+ if __debug__:
2318
+ type_hints = typing.get_type_hints(_typecheckingstub__a8ff4907f03a84bc381a0bf64cc7a5454e5ac237c8f91eef6a31a3bb7ccceabb)
2319
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2320
+ jsii.set(self, "predictiveScalingPolicyConfiguration", value) # pyright: ignore[reportArgumentType]
2321
+
2211
2322
  @builtins.property
2212
2323
  @jsii.member(jsii_name="resourceId")
2213
2324
  def resource_id(self) -> typing.Optional[builtins.str]:
@@ -2428,46 +2539,1323 @@ class CfnScalingPolicy(
2428
2539
  result = self._values.get("metric_name")
2429
2540
  return typing.cast(typing.Optional[builtins.str], result)
2430
2541
 
2431
- @builtins.property
2432
- def metrics(
2433
- self,
2434
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.TargetTrackingMetricDataQueryProperty"]]]]:
2435
- '''The metrics to include in the target tracking scaling policy, as a metric data query.
2542
+ @builtins.property
2543
+ def metrics(
2544
+ self,
2545
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.TargetTrackingMetricDataQueryProperty"]]]]:
2546
+ '''The metrics to include in the target tracking scaling policy, as a metric data query.
2547
+
2548
+ This can include both raw metric and metric math expressions.
2549
+
2550
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-metrics
2551
+ '''
2552
+ result = self._values.get("metrics")
2553
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.TargetTrackingMetricDataQueryProperty"]]]], result)
2554
+
2555
+ @builtins.property
2556
+ def namespace(self) -> typing.Optional[builtins.str]:
2557
+ '''The namespace of the metric.
2558
+
2559
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-namespace
2560
+ '''
2561
+ result = self._values.get("namespace")
2562
+ return typing.cast(typing.Optional[builtins.str], result)
2563
+
2564
+ @builtins.property
2565
+ def statistic(self) -> typing.Optional[builtins.str]:
2566
+ '''The statistic of the metric.
2567
+
2568
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-statistic
2569
+ '''
2570
+ result = self._values.get("statistic")
2571
+ return typing.cast(typing.Optional[builtins.str], result)
2572
+
2573
+ @builtins.property
2574
+ def unit(self) -> typing.Optional[builtins.str]:
2575
+ '''The unit of the metric.
2576
+
2577
+ For a complete list of the units that CloudWatch supports, see the `MetricDatum <https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html>`_ data type in the *Amazon CloudWatch API Reference* .
2578
+
2579
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-unit
2580
+ '''
2581
+ result = self._values.get("unit")
2582
+ return typing.cast(typing.Optional[builtins.str], result)
2583
+
2584
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2585
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2586
+
2587
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2588
+ return not (rhs == self)
2589
+
2590
+ def __repr__(self) -> str:
2591
+ return "CustomizedMetricSpecificationProperty(%s)" % ", ".join(
2592
+ k + "=" + repr(v) for k, v in self._values.items()
2593
+ )
2594
+
2595
+ @jsii.data_type(
2596
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.MetricDimensionProperty",
2597
+ jsii_struct_bases=[],
2598
+ name_mapping={"name": "name", "value": "value"},
2599
+ )
2600
+ class MetricDimensionProperty:
2601
+ def __init__(self, *, name: builtins.str, value: builtins.str) -> None:
2602
+ '''``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the `AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html>`_ property type. Duplicate dimensions are not allowed.
2603
+
2604
+ :param name: The name of the dimension.
2605
+ :param value: The value of the dimension.
2606
+
2607
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html
2608
+ :exampleMetadata: fixture=_generated
2609
+
2610
+ Example::
2611
+
2612
+ # The code below shows an example of how to instantiate this type.
2613
+ # The values are placeholders you should change.
2614
+ from aws_cdk import aws_applicationautoscaling as appscaling
2615
+
2616
+ metric_dimension_property = appscaling.CfnScalingPolicy.MetricDimensionProperty(
2617
+ name="name",
2618
+ value="value"
2619
+ )
2620
+ '''
2621
+ if __debug__:
2622
+ type_hints = typing.get_type_hints(_typecheckingstub__2bbab6c71eac87b44a87976e9ec88ca8fb9d041a349eeb47474fae5790b2b304)
2623
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2624
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2625
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2626
+ "name": name,
2627
+ "value": value,
2628
+ }
2629
+
2630
+ @builtins.property
2631
+ def name(self) -> builtins.str:
2632
+ '''The name of the dimension.
2633
+
2634
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-name
2635
+ '''
2636
+ result = self._values.get("name")
2637
+ assert result is not None, "Required property 'name' is missing"
2638
+ return typing.cast(builtins.str, result)
2639
+
2640
+ @builtins.property
2641
+ def value(self) -> builtins.str:
2642
+ '''The value of the dimension.
2643
+
2644
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-value
2645
+ '''
2646
+ result = self._values.get("value")
2647
+ assert result is not None, "Required property 'value' is missing"
2648
+ return typing.cast(builtins.str, result)
2649
+
2650
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2651
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2652
+
2653
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2654
+ return not (rhs == self)
2655
+
2656
+ def __repr__(self) -> str:
2657
+ return "MetricDimensionProperty(%s)" % ", ".join(
2658
+ k + "=" + repr(v) for k, v in self._values.items()
2659
+ )
2660
+
2661
+ @jsii.data_type(
2662
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredefinedMetricSpecificationProperty",
2663
+ jsii_struct_bases=[],
2664
+ name_mapping={
2665
+ "predefined_metric_type": "predefinedMetricType",
2666
+ "resource_label": "resourceLabel",
2667
+ },
2668
+ )
2669
+ class PredefinedMetricSpecificationProperty:
2670
+ def __init__(
2671
+ self,
2672
+ *,
2673
+ predefined_metric_type: builtins.str,
2674
+ resource_label: typing.Optional[builtins.str] = None,
2675
+ ) -> None:
2676
+ '''Contains predefined metric specification information for a target tracking scaling policy for Application Auto Scaling.
2677
+
2678
+ ``PredefinedMetricSpecification`` is a property of the `AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html>`_ property type.
2679
+
2680
+ :param predefined_metric_type: The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.
2681
+ :param resource_label: Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`` . Where: - app// is the final portion of the load balancer ARN - targetgroup// is the final portion of the target group ARN. To find the ARN for an Application Load Balancer, use the `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`_ API operation. To find the ARN for the target group, use the `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`_ API operation.
2682
+
2683
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html
2684
+ :exampleMetadata: fixture=_generated
2685
+
2686
+ Example::
2687
+
2688
+ # The code below shows an example of how to instantiate this type.
2689
+ # The values are placeholders you should change.
2690
+ from aws_cdk import aws_applicationautoscaling as appscaling
2691
+
2692
+ predefined_metric_specification_property = appscaling.CfnScalingPolicy.PredefinedMetricSpecificationProperty(
2693
+ predefined_metric_type="predefinedMetricType",
2694
+
2695
+ # the properties below are optional
2696
+ resource_label="resourceLabel"
2697
+ )
2698
+ '''
2699
+ if __debug__:
2700
+ type_hints = typing.get_type_hints(_typecheckingstub__006a90e58fd47516fb147d13d14740fcdcd4c98e1ffcee20b2746e63c245c11a)
2701
+ check_type(argname="argument predefined_metric_type", value=predefined_metric_type, expected_type=type_hints["predefined_metric_type"])
2702
+ check_type(argname="argument resource_label", value=resource_label, expected_type=type_hints["resource_label"])
2703
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2704
+ "predefined_metric_type": predefined_metric_type,
2705
+ }
2706
+ if resource_label is not None:
2707
+ self._values["resource_label"] = resource_label
2708
+
2709
+ @builtins.property
2710
+ def predefined_metric_type(self) -> builtins.str:
2711
+ '''The metric type.
2712
+
2713
+ The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.
2714
+
2715
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype
2716
+ '''
2717
+ result = self._values.get("predefined_metric_type")
2718
+ assert result is not None, "Required property 'predefined_metric_type' is missing"
2719
+ return typing.cast(builtins.str, result)
2720
+
2721
+ @builtins.property
2722
+ def resource_label(self) -> typing.Optional[builtins.str]:
2723
+ '''Identifies the resource associated with the metric type.
2724
+
2725
+ You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.
2726
+
2727
+ You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:
2728
+
2729
+ ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`` .
2730
+
2731
+ Where:
2732
+
2733
+ - app// is the final portion of the load balancer ARN
2734
+ - targetgroup// is the final portion of the target group ARN.
2735
+
2736
+ To find the ARN for an Application Load Balancer, use the `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`_ API operation. To find the ARN for the target group, use the `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`_ API operation.
2737
+
2738
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel
2739
+ '''
2740
+ result = self._values.get("resource_label")
2741
+ return typing.cast(typing.Optional[builtins.str], result)
2742
+
2743
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2744
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2745
+
2746
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2747
+ return not (rhs == self)
2748
+
2749
+ def __repr__(self) -> str:
2750
+ return "PredefinedMetricSpecificationProperty(%s)" % ", ".join(
2751
+ k + "=" + repr(v) for k, v in self._values.items()
2752
+ )
2753
+
2754
+ @jsii.data_type(
2755
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty",
2756
+ jsii_struct_bases=[],
2757
+ name_mapping={"metric_data_queries": "metricDataQueries"},
2758
+ )
2759
+ class PredictiveScalingCustomizedCapacityMetricProperty:
2760
+ def __init__(
2761
+ self,
2762
+ *,
2763
+ metric_data_queries: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]],
2764
+ ) -> None:
2765
+ '''
2766
+ :param metric_data_queries:
2767
+
2768
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingcustomizedcapacitymetric.html
2769
+ :exampleMetadata: fixture=_generated
2770
+
2771
+ Example::
2772
+
2773
+ # The code below shows an example of how to instantiate this type.
2774
+ # The values are placeholders you should change.
2775
+ from aws_cdk import aws_applicationautoscaling as appscaling
2776
+
2777
+ predictive_scaling_customized_capacity_metric_property = appscaling.CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty(
2778
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
2779
+ expression="expression",
2780
+ id="id",
2781
+ label="label",
2782
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
2783
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
2784
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
2785
+ name="name",
2786
+ value="value"
2787
+ )],
2788
+ metric_name="metricName",
2789
+ namespace="namespace"
2790
+ ),
2791
+ stat="stat",
2792
+ unit="unit"
2793
+ ),
2794
+ return_data=False
2795
+ )]
2796
+ )
2797
+ '''
2798
+ if __debug__:
2799
+ type_hints = typing.get_type_hints(_typecheckingstub__baf809a31130dc9f7046310d5551e4d1bc142c89cd1fb21ab0fece90cd2ef669)
2800
+ check_type(argname="argument metric_data_queries", value=metric_data_queries, expected_type=type_hints["metric_data_queries"])
2801
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2802
+ "metric_data_queries": metric_data_queries,
2803
+ }
2804
+
2805
+ @builtins.property
2806
+ def metric_data_queries(
2807
+ self,
2808
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty"]]]:
2809
+ '''
2810
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingcustomizedcapacitymetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingcustomizedcapacitymetric-metricdataqueries
2811
+ '''
2812
+ result = self._values.get("metric_data_queries")
2813
+ assert result is not None, "Required property 'metric_data_queries' is missing"
2814
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty"]]], result)
2815
+
2816
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2817
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2818
+
2819
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2820
+ return not (rhs == self)
2821
+
2822
+ def __repr__(self) -> str:
2823
+ return "PredictiveScalingCustomizedCapacityMetricProperty(%s)" % ", ".join(
2824
+ k + "=" + repr(v) for k, v in self._values.items()
2825
+ )
2826
+
2827
+ @jsii.data_type(
2828
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty",
2829
+ jsii_struct_bases=[],
2830
+ name_mapping={"metric_data_queries": "metricDataQueries"},
2831
+ )
2832
+ class PredictiveScalingCustomizedLoadMetricProperty:
2833
+ def __init__(
2834
+ self,
2835
+ *,
2836
+ metric_data_queries: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]],
2837
+ ) -> None:
2838
+ '''
2839
+ :param metric_data_queries:
2840
+
2841
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingcustomizedloadmetric.html
2842
+ :exampleMetadata: fixture=_generated
2843
+
2844
+ Example::
2845
+
2846
+ # The code below shows an example of how to instantiate this type.
2847
+ # The values are placeholders you should change.
2848
+ from aws_cdk import aws_applicationautoscaling as appscaling
2849
+
2850
+ predictive_scaling_customized_load_metric_property = appscaling.CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty(
2851
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
2852
+ expression="expression",
2853
+ id="id",
2854
+ label="label",
2855
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
2856
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
2857
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
2858
+ name="name",
2859
+ value="value"
2860
+ )],
2861
+ metric_name="metricName",
2862
+ namespace="namespace"
2863
+ ),
2864
+ stat="stat",
2865
+ unit="unit"
2866
+ ),
2867
+ return_data=False
2868
+ )]
2869
+ )
2870
+ '''
2871
+ if __debug__:
2872
+ type_hints = typing.get_type_hints(_typecheckingstub__ac39ce2bb72379aa4920ed39bac91cdf3aa4ff447d41bf13801719c58eab7362)
2873
+ check_type(argname="argument metric_data_queries", value=metric_data_queries, expected_type=type_hints["metric_data_queries"])
2874
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2875
+ "metric_data_queries": metric_data_queries,
2876
+ }
2877
+
2878
+ @builtins.property
2879
+ def metric_data_queries(
2880
+ self,
2881
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty"]]]:
2882
+ '''
2883
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingcustomizedloadmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingcustomizedloadmetric-metricdataqueries
2884
+ '''
2885
+ result = self._values.get("metric_data_queries")
2886
+ assert result is not None, "Required property 'metric_data_queries' is missing"
2887
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty"]]], result)
2888
+
2889
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2890
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2891
+
2892
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2893
+ return not (rhs == self)
2894
+
2895
+ def __repr__(self) -> str:
2896
+ return "PredictiveScalingCustomizedLoadMetricProperty(%s)" % ", ".join(
2897
+ k + "=" + repr(v) for k, v in self._values.items()
2898
+ )
2899
+
2900
+ @jsii.data_type(
2901
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty",
2902
+ jsii_struct_bases=[],
2903
+ name_mapping={"metric_data_queries": "metricDataQueries"},
2904
+ )
2905
+ class PredictiveScalingCustomizedScalingMetricProperty:
2906
+ def __init__(
2907
+ self,
2908
+ *,
2909
+ metric_data_queries: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]],
2910
+ ) -> None:
2911
+ '''
2912
+ :param metric_data_queries:
2913
+
2914
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingcustomizedscalingmetric.html
2915
+ :exampleMetadata: fixture=_generated
2916
+
2917
+ Example::
2918
+
2919
+ # The code below shows an example of how to instantiate this type.
2920
+ # The values are placeholders you should change.
2921
+ from aws_cdk import aws_applicationautoscaling as appscaling
2922
+
2923
+ predictive_scaling_customized_scaling_metric_property = appscaling.CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty(
2924
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
2925
+ expression="expression",
2926
+ id="id",
2927
+ label="label",
2928
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
2929
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
2930
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
2931
+ name="name",
2932
+ value="value"
2933
+ )],
2934
+ metric_name="metricName",
2935
+ namespace="namespace"
2936
+ ),
2937
+ stat="stat",
2938
+ unit="unit"
2939
+ ),
2940
+ return_data=False
2941
+ )]
2942
+ )
2943
+ '''
2944
+ if __debug__:
2945
+ type_hints = typing.get_type_hints(_typecheckingstub__35c3daca56887d07a7f16cb4e42cd7ee2b3e51829f3cd7bea4e65022fc7eddb6)
2946
+ check_type(argname="argument metric_data_queries", value=metric_data_queries, expected_type=type_hints["metric_data_queries"])
2947
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2948
+ "metric_data_queries": metric_data_queries,
2949
+ }
2950
+
2951
+ @builtins.property
2952
+ def metric_data_queries(
2953
+ self,
2954
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty"]]]:
2955
+ '''
2956
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingcustomizedscalingmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingcustomizedscalingmetric-metricdataqueries
2957
+ '''
2958
+ result = self._values.get("metric_data_queries")
2959
+ assert result is not None, "Required property 'metric_data_queries' is missing"
2960
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty"]]], result)
2961
+
2962
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2963
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2964
+
2965
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2966
+ return not (rhs == self)
2967
+
2968
+ def __repr__(self) -> str:
2969
+ return "PredictiveScalingCustomizedScalingMetricProperty(%s)" % ", ".join(
2970
+ k + "=" + repr(v) for k, v in self._values.items()
2971
+ )
2972
+
2973
+ @jsii.data_type(
2974
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty",
2975
+ jsii_struct_bases=[],
2976
+ name_mapping={
2977
+ "expression": "expression",
2978
+ "id": "id",
2979
+ "label": "label",
2980
+ "metric_stat": "metricStat",
2981
+ "return_data": "returnData",
2982
+ },
2983
+ )
2984
+ class PredictiveScalingMetricDataQueryProperty:
2985
+ def __init__(
2986
+ self,
2987
+ *,
2988
+ expression: typing.Optional[builtins.str] = None,
2989
+ id: typing.Optional[builtins.str] = None,
2990
+ label: typing.Optional[builtins.str] = None,
2991
+ metric_stat: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricStatProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2992
+ return_data: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2993
+ ) -> None:
2994
+ '''
2995
+ :param expression: The math expression to perform on the returned data, if this object is performing a math expression.
2996
+ :param id: A short name that identifies the object's results in the response.
2997
+ :param label: A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.
2998
+ :param metric_stat:
2999
+ :param return_data: Indicates whether to return the timestamps and raw data values of this metric.
3000
+
3001
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery.html
3002
+ :exampleMetadata: fixture=_generated
3003
+
3004
+ Example::
3005
+
3006
+ # The code below shows an example of how to instantiate this type.
3007
+ # The values are placeholders you should change.
3008
+ from aws_cdk import aws_applicationautoscaling as appscaling
3009
+
3010
+ predictive_scaling_metric_data_query_property = appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3011
+ expression="expression",
3012
+ id="id",
3013
+ label="label",
3014
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3015
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3016
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3017
+ name="name",
3018
+ value="value"
3019
+ )],
3020
+ metric_name="metricName",
3021
+ namespace="namespace"
3022
+ ),
3023
+ stat="stat",
3024
+ unit="unit"
3025
+ ),
3026
+ return_data=False
3027
+ )
3028
+ '''
3029
+ if __debug__:
3030
+ type_hints = typing.get_type_hints(_typecheckingstub__7cb94698782194f83da9ca6414a5ca1d6c86a5b368bafaae48a59aa90207ed6e)
3031
+ check_type(argname="argument expression", value=expression, expected_type=type_hints["expression"])
3032
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3033
+ check_type(argname="argument label", value=label, expected_type=type_hints["label"])
3034
+ check_type(argname="argument metric_stat", value=metric_stat, expected_type=type_hints["metric_stat"])
3035
+ check_type(argname="argument return_data", value=return_data, expected_type=type_hints["return_data"])
3036
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3037
+ if expression is not None:
3038
+ self._values["expression"] = expression
3039
+ if id is not None:
3040
+ self._values["id"] = id
3041
+ if label is not None:
3042
+ self._values["label"] = label
3043
+ if metric_stat is not None:
3044
+ self._values["metric_stat"] = metric_stat
3045
+ if return_data is not None:
3046
+ self._values["return_data"] = return_data
3047
+
3048
+ @builtins.property
3049
+ def expression(self) -> typing.Optional[builtins.str]:
3050
+ '''The math expression to perform on the returned data, if this object is performing a math expression.
3051
+
3052
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery-expression
3053
+ '''
3054
+ result = self._values.get("expression")
3055
+ return typing.cast(typing.Optional[builtins.str], result)
3056
+
3057
+ @builtins.property
3058
+ def id(self) -> typing.Optional[builtins.str]:
3059
+ '''A short name that identifies the object's results in the response.
3060
+
3061
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery-id
3062
+ '''
3063
+ result = self._values.get("id")
3064
+ return typing.cast(typing.Optional[builtins.str], result)
3065
+
3066
+ @builtins.property
3067
+ def label(self) -> typing.Optional[builtins.str]:
3068
+ '''A human-readable label for this metric or expression.
3069
+
3070
+ This is especially useful if this is a math expression, so that you know what the value represents.
3071
+
3072
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery-label
3073
+ '''
3074
+ result = self._values.get("label")
3075
+ return typing.cast(typing.Optional[builtins.str], result)
3076
+
3077
+ @builtins.property
3078
+ def metric_stat(
3079
+ self,
3080
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricStatProperty"]]:
3081
+ '''
3082
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery-metricstat
3083
+ '''
3084
+ result = self._values.get("metric_stat")
3085
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricStatProperty"]], result)
3086
+
3087
+ @builtins.property
3088
+ def return_data(
3089
+ self,
3090
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
3091
+ '''Indicates whether to return the timestamps and raw data values of this metric.
3092
+
3093
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdataquery-returndata
3094
+ '''
3095
+ result = self._values.get("return_data")
3096
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
3097
+
3098
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3099
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3100
+
3101
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3102
+ return not (rhs == self)
3103
+
3104
+ def __repr__(self) -> str:
3105
+ return "PredictiveScalingMetricDataQueryProperty(%s)" % ", ".join(
3106
+ k + "=" + repr(v) for k, v in self._values.items()
3107
+ )
3108
+
3109
+ @jsii.data_type(
3110
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty",
3111
+ jsii_struct_bases=[],
3112
+ name_mapping={"name": "name", "value": "value"},
3113
+ )
3114
+ class PredictiveScalingMetricDimensionProperty:
3115
+ def __init__(
3116
+ self,
3117
+ *,
3118
+ name: typing.Optional[builtins.str] = None,
3119
+ value: typing.Optional[builtins.str] = None,
3120
+ ) -> None:
3121
+ '''
3122
+ :param name: The name of the dimension.
3123
+ :param value: The value of the dimension.
3124
+
3125
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdimension.html
3126
+ :exampleMetadata: fixture=_generated
3127
+
3128
+ Example::
3129
+
3130
+ # The code below shows an example of how to instantiate this type.
3131
+ # The values are placeholders you should change.
3132
+ from aws_cdk import aws_applicationautoscaling as appscaling
3133
+
3134
+ predictive_scaling_metric_dimension_property = appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3135
+ name="name",
3136
+ value="value"
3137
+ )
3138
+ '''
3139
+ if __debug__:
3140
+ type_hints = typing.get_type_hints(_typecheckingstub__7ccc47b2e2a5c048e3788cb9ab802a7d336f9313040d285e9600e27e4aac7530)
3141
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
3142
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3143
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3144
+ if name is not None:
3145
+ self._values["name"] = name
3146
+ if value is not None:
3147
+ self._values["value"] = value
3148
+
3149
+ @builtins.property
3150
+ def name(self) -> typing.Optional[builtins.str]:
3151
+ '''The name of the dimension.
3152
+
3153
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdimension.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdimension-name
3154
+ '''
3155
+ result = self._values.get("name")
3156
+ return typing.cast(typing.Optional[builtins.str], result)
3157
+
3158
+ @builtins.property
3159
+ def value(self) -> typing.Optional[builtins.str]:
3160
+ '''The value of the dimension.
3161
+
3162
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricdimension.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricdimension-value
3163
+ '''
3164
+ result = self._values.get("value")
3165
+ return typing.cast(typing.Optional[builtins.str], result)
3166
+
3167
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3168
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3169
+
3170
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3171
+ return not (rhs == self)
3172
+
3173
+ def __repr__(self) -> str:
3174
+ return "PredictiveScalingMetricDimensionProperty(%s)" % ", ".join(
3175
+ k + "=" + repr(v) for k, v in self._values.items()
3176
+ )
3177
+
3178
+ @jsii.data_type(
3179
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingMetricProperty",
3180
+ jsii_struct_bases=[],
3181
+ name_mapping={
3182
+ "dimensions": "dimensions",
3183
+ "metric_name": "metricName",
3184
+ "namespace": "namespace",
3185
+ },
3186
+ )
3187
+ class PredictiveScalingMetricProperty:
3188
+ def __init__(
3189
+ self,
3190
+ *,
3191
+ dimensions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricDimensionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3192
+ metric_name: typing.Optional[builtins.str] = None,
3193
+ namespace: typing.Optional[builtins.str] = None,
3194
+ ) -> None:
3195
+ '''
3196
+ :param dimensions: The dimensions for the metric.
3197
+ :param metric_name: The name of the metric.
3198
+ :param namespace: The namespace of the metric.
3199
+
3200
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetric.html
3201
+ :exampleMetadata: fixture=_generated
3202
+
3203
+ Example::
3204
+
3205
+ # The code below shows an example of how to instantiate this type.
3206
+ # The values are placeholders you should change.
3207
+ from aws_cdk import aws_applicationautoscaling as appscaling
3208
+
3209
+ predictive_scaling_metric_property = appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3210
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3211
+ name="name",
3212
+ value="value"
3213
+ )],
3214
+ metric_name="metricName",
3215
+ namespace="namespace"
3216
+ )
3217
+ '''
3218
+ if __debug__:
3219
+ type_hints = typing.get_type_hints(_typecheckingstub__f0b4c5e65c6e655cdbc3a71099a7f7da3c2dbccf56465777a98264de1eb74f85)
3220
+ check_type(argname="argument dimensions", value=dimensions, expected_type=type_hints["dimensions"])
3221
+ check_type(argname="argument metric_name", value=metric_name, expected_type=type_hints["metric_name"])
3222
+ check_type(argname="argument namespace", value=namespace, expected_type=type_hints["namespace"])
3223
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3224
+ if dimensions is not None:
3225
+ self._values["dimensions"] = dimensions
3226
+ if metric_name is not None:
3227
+ self._values["metric_name"] = metric_name
3228
+ if namespace is not None:
3229
+ self._values["namespace"] = namespace
3230
+
3231
+ @builtins.property
3232
+ def dimensions(
3233
+ self,
3234
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDimensionProperty"]]]]:
3235
+ '''The dimensions for the metric.
3236
+
3237
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetric-dimensions
3238
+ '''
3239
+ result = self._values.get("dimensions")
3240
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricDimensionProperty"]]]], result)
3241
+
3242
+ @builtins.property
3243
+ def metric_name(self) -> typing.Optional[builtins.str]:
3244
+ '''The name of the metric.
3245
+
3246
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetric-metricname
3247
+ '''
3248
+ result = self._values.get("metric_name")
3249
+ return typing.cast(typing.Optional[builtins.str], result)
3250
+
3251
+ @builtins.property
3252
+ def namespace(self) -> typing.Optional[builtins.str]:
3253
+ '''The namespace of the metric.
3254
+
3255
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetric-namespace
3256
+ '''
3257
+ result = self._values.get("namespace")
3258
+ return typing.cast(typing.Optional[builtins.str], result)
3259
+
3260
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3261
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3262
+
3263
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3264
+ return not (rhs == self)
3265
+
3266
+ def __repr__(self) -> str:
3267
+ return "PredictiveScalingMetricProperty(%s)" % ", ".join(
3268
+ k + "=" + repr(v) for k, v in self._values.items()
3269
+ )
3270
+
3271
+ @jsii.data_type(
3272
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty",
3273
+ jsii_struct_bases=[],
3274
+ name_mapping={
3275
+ "target_value": "targetValue",
3276
+ "customized_capacity_metric_specification": "customizedCapacityMetricSpecification",
3277
+ "customized_load_metric_specification": "customizedLoadMetricSpecification",
3278
+ "customized_scaling_metric_specification": "customizedScalingMetricSpecification",
3279
+ "predefined_load_metric_specification": "predefinedLoadMetricSpecification",
3280
+ "predefined_metric_pair_specification": "predefinedMetricPairSpecification",
3281
+ "predefined_scaling_metric_specification": "predefinedScalingMetricSpecification",
3282
+ },
3283
+ )
3284
+ class PredictiveScalingMetricSpecificationProperty:
3285
+ def __init__(
3286
+ self,
3287
+ *,
3288
+ target_value: jsii.Number,
3289
+ customized_capacity_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3290
+ customized_load_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3291
+ customized_scaling_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3292
+ predefined_load_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3293
+ predefined_metric_pair_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3294
+ predefined_scaling_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3295
+ ) -> None:
3296
+ '''
3297
+ :param target_value:
3298
+ :param customized_capacity_metric_specification:
3299
+ :param customized_load_metric_specification:
3300
+ :param customized_scaling_metric_specification:
3301
+ :param predefined_load_metric_specification:
3302
+ :param predefined_metric_pair_specification:
3303
+ :param predefined_scaling_metric_specification:
3304
+
3305
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html
3306
+ :exampleMetadata: fixture=_generated
3307
+
3308
+ Example::
3309
+
3310
+ # The code below shows an example of how to instantiate this type.
3311
+ # The values are placeholders you should change.
3312
+ from aws_cdk import aws_applicationautoscaling as appscaling
3313
+
3314
+ predictive_scaling_metric_specification_property = appscaling.CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty(
3315
+ target_value=123,
3316
+
3317
+ # the properties below are optional
3318
+ customized_capacity_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty(
3319
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3320
+ expression="expression",
3321
+ id="id",
3322
+ label="label",
3323
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3324
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3325
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3326
+ name="name",
3327
+ value="value"
3328
+ )],
3329
+ metric_name="metricName",
3330
+ namespace="namespace"
3331
+ ),
3332
+ stat="stat",
3333
+ unit="unit"
3334
+ ),
3335
+ return_data=False
3336
+ )]
3337
+ ),
3338
+ customized_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty(
3339
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3340
+ expression="expression",
3341
+ id="id",
3342
+ label="label",
3343
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3344
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3345
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3346
+ name="name",
3347
+ value="value"
3348
+ )],
3349
+ metric_name="metricName",
3350
+ namespace="namespace"
3351
+ ),
3352
+ stat="stat",
3353
+ unit="unit"
3354
+ ),
3355
+ return_data=False
3356
+ )]
3357
+ ),
3358
+ customized_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty(
3359
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3360
+ expression="expression",
3361
+ id="id",
3362
+ label="label",
3363
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3364
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3365
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3366
+ name="name",
3367
+ value="value"
3368
+ )],
3369
+ metric_name="metricName",
3370
+ namespace="namespace"
3371
+ ),
3372
+ stat="stat",
3373
+ unit="unit"
3374
+ ),
3375
+ return_data=False
3376
+ )]
3377
+ ),
3378
+ predefined_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty(
3379
+ predefined_metric_type="predefinedMetricType",
3380
+
3381
+ # the properties below are optional
3382
+ resource_label="resourceLabel"
3383
+ ),
3384
+ predefined_metric_pair_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty(
3385
+ predefined_metric_type="predefinedMetricType",
3386
+
3387
+ # the properties below are optional
3388
+ resource_label="resourceLabel"
3389
+ ),
3390
+ predefined_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty(
3391
+ predefined_metric_type="predefinedMetricType",
3392
+
3393
+ # the properties below are optional
3394
+ resource_label="resourceLabel"
3395
+ )
3396
+ )
3397
+ '''
3398
+ if __debug__:
3399
+ type_hints = typing.get_type_hints(_typecheckingstub__f335e7dbac02e5d34252ec23dcd35d90e1872a21cb862e79274e27b4db9fe43d)
3400
+ check_type(argname="argument target_value", value=target_value, expected_type=type_hints["target_value"])
3401
+ check_type(argname="argument customized_capacity_metric_specification", value=customized_capacity_metric_specification, expected_type=type_hints["customized_capacity_metric_specification"])
3402
+ check_type(argname="argument customized_load_metric_specification", value=customized_load_metric_specification, expected_type=type_hints["customized_load_metric_specification"])
3403
+ check_type(argname="argument customized_scaling_metric_specification", value=customized_scaling_metric_specification, expected_type=type_hints["customized_scaling_metric_specification"])
3404
+ check_type(argname="argument predefined_load_metric_specification", value=predefined_load_metric_specification, expected_type=type_hints["predefined_load_metric_specification"])
3405
+ check_type(argname="argument predefined_metric_pair_specification", value=predefined_metric_pair_specification, expected_type=type_hints["predefined_metric_pair_specification"])
3406
+ check_type(argname="argument predefined_scaling_metric_specification", value=predefined_scaling_metric_specification, expected_type=type_hints["predefined_scaling_metric_specification"])
3407
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3408
+ "target_value": target_value,
3409
+ }
3410
+ if customized_capacity_metric_specification is not None:
3411
+ self._values["customized_capacity_metric_specification"] = customized_capacity_metric_specification
3412
+ if customized_load_metric_specification is not None:
3413
+ self._values["customized_load_metric_specification"] = customized_load_metric_specification
3414
+ if customized_scaling_metric_specification is not None:
3415
+ self._values["customized_scaling_metric_specification"] = customized_scaling_metric_specification
3416
+ if predefined_load_metric_specification is not None:
3417
+ self._values["predefined_load_metric_specification"] = predefined_load_metric_specification
3418
+ if predefined_metric_pair_specification is not None:
3419
+ self._values["predefined_metric_pair_specification"] = predefined_metric_pair_specification
3420
+ if predefined_scaling_metric_specification is not None:
3421
+ self._values["predefined_scaling_metric_specification"] = predefined_scaling_metric_specification
3422
+
3423
+ @builtins.property
3424
+ def target_value(self) -> jsii.Number:
3425
+ '''
3426
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-targetvalue
3427
+ '''
3428
+ result = self._values.get("target_value")
3429
+ assert result is not None, "Required property 'target_value' is missing"
3430
+ return typing.cast(jsii.Number, result)
3431
+
3432
+ @builtins.property
3433
+ def customized_capacity_metric_specification(
3434
+ self,
3435
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty"]]:
3436
+ '''
3437
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-customizedcapacitymetricspecification
3438
+ '''
3439
+ result = self._values.get("customized_capacity_metric_specification")
3440
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty"]], result)
3441
+
3442
+ @builtins.property
3443
+ def customized_load_metric_specification(
3444
+ self,
3445
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty"]]:
3446
+ '''
3447
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-customizedloadmetricspecification
3448
+ '''
3449
+ result = self._values.get("customized_load_metric_specification")
3450
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty"]], result)
3451
+
3452
+ @builtins.property
3453
+ def customized_scaling_metric_specification(
3454
+ self,
3455
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty"]]:
3456
+ '''
3457
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-customizedscalingmetricspecification
3458
+ '''
3459
+ result = self._values.get("customized_scaling_metric_specification")
3460
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty"]], result)
3461
+
3462
+ @builtins.property
3463
+ def predefined_load_metric_specification(
3464
+ self,
3465
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty"]]:
3466
+ '''
3467
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedloadmetricspecification
3468
+ '''
3469
+ result = self._values.get("predefined_load_metric_specification")
3470
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty"]], result)
3471
+
3472
+ @builtins.property
3473
+ def predefined_metric_pair_specification(
3474
+ self,
3475
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty"]]:
3476
+ '''
3477
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedmetricpairspecification
3478
+ '''
3479
+ result = self._values.get("predefined_metric_pair_specification")
3480
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty"]], result)
3481
+
3482
+ @builtins.property
3483
+ def predefined_scaling_metric_specification(
3484
+ self,
3485
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty"]]:
3486
+ '''
3487
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedscalingmetricspecification
3488
+ '''
3489
+ result = self._values.get("predefined_scaling_metric_specification")
3490
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty"]], result)
3491
+
3492
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3493
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3494
+
3495
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3496
+ return not (rhs == self)
3497
+
3498
+ def __repr__(self) -> str:
3499
+ return "PredictiveScalingMetricSpecificationProperty(%s)" % ", ".join(
3500
+ k + "=" + repr(v) for k, v in self._values.items()
3501
+ )
3502
+
3503
+ @jsii.data_type(
3504
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty",
3505
+ jsii_struct_bases=[],
3506
+ name_mapping={"metric": "metric", "stat": "stat", "unit": "unit"},
3507
+ )
3508
+ class PredictiveScalingMetricStatProperty:
3509
+ def __init__(
3510
+ self,
3511
+ *,
3512
+ metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3513
+ stat: typing.Optional[builtins.str] = None,
3514
+ unit: typing.Optional[builtins.str] = None,
3515
+ ) -> None:
3516
+ '''
3517
+ :param metric:
3518
+ :param stat: The statistic to return. It can include any CloudWatch statistic or extended statistic.
3519
+ :param unit: The unit to use for the returned data points.
3520
+
3521
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricstat.html
3522
+ :exampleMetadata: fixture=_generated
3523
+
3524
+ Example::
3525
+
3526
+ # The code below shows an example of how to instantiate this type.
3527
+ # The values are placeholders you should change.
3528
+ from aws_cdk import aws_applicationautoscaling as appscaling
3529
+
3530
+ predictive_scaling_metric_stat_property = appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3531
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3532
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3533
+ name="name",
3534
+ value="value"
3535
+ )],
3536
+ metric_name="metricName",
3537
+ namespace="namespace"
3538
+ ),
3539
+ stat="stat",
3540
+ unit="unit"
3541
+ )
3542
+ '''
3543
+ if __debug__:
3544
+ type_hints = typing.get_type_hints(_typecheckingstub__d53af1f339feb5962e1705bee9b01c7d79acf6dc4927d3891f0bd6415f07b584)
3545
+ check_type(argname="argument metric", value=metric, expected_type=type_hints["metric"])
3546
+ check_type(argname="argument stat", value=stat, expected_type=type_hints["stat"])
3547
+ check_type(argname="argument unit", value=unit, expected_type=type_hints["unit"])
3548
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3549
+ if metric is not None:
3550
+ self._values["metric"] = metric
3551
+ if stat is not None:
3552
+ self._values["stat"] = stat
3553
+ if unit is not None:
3554
+ self._values["unit"] = unit
3555
+
3556
+ @builtins.property
3557
+ def metric(
3558
+ self,
3559
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricProperty"]]:
3560
+ '''
3561
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricstat.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricstat-metric
3562
+ '''
3563
+ result = self._values.get("metric")
3564
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricProperty"]], result)
3565
+
3566
+ @builtins.property
3567
+ def stat(self) -> typing.Optional[builtins.str]:
3568
+ '''The statistic to return.
3569
+
3570
+ It can include any CloudWatch statistic or extended statistic.
3571
+
3572
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricstat.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricstat-stat
3573
+ '''
3574
+ result = self._values.get("stat")
3575
+ return typing.cast(typing.Optional[builtins.str], result)
3576
+
3577
+ @builtins.property
3578
+ def unit(self) -> typing.Optional[builtins.str]:
3579
+ '''The unit to use for the returned data points.
3580
+
3581
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingmetricstat.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingmetricstat-unit
3582
+ '''
3583
+ result = self._values.get("unit")
3584
+ return typing.cast(typing.Optional[builtins.str], result)
3585
+
3586
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3587
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3588
+
3589
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3590
+ return not (rhs == self)
3591
+
3592
+ def __repr__(self) -> str:
3593
+ return "PredictiveScalingMetricStatProperty(%s)" % ", ".join(
3594
+ k + "=" + repr(v) for k, v in self._values.items()
3595
+ )
3596
+
3597
+ @jsii.data_type(
3598
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty",
3599
+ jsii_struct_bases=[],
3600
+ name_mapping={
3601
+ "metric_specifications": "metricSpecifications",
3602
+ "max_capacity_breach_behavior": "maxCapacityBreachBehavior",
3603
+ "max_capacity_buffer": "maxCapacityBuffer",
3604
+ "mode": "mode",
3605
+ "scheduling_buffer_time": "schedulingBufferTime",
3606
+ },
3607
+ )
3608
+ class PredictiveScalingPolicyConfigurationProperty:
3609
+ def __init__(
3610
+ self,
3611
+ *,
3612
+ metric_specifications: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]]],
3613
+ max_capacity_breach_behavior: typing.Optional[builtins.str] = None,
3614
+ max_capacity_buffer: typing.Optional[jsii.Number] = None,
3615
+ mode: typing.Optional[builtins.str] = None,
3616
+ scheduling_buffer_time: typing.Optional[jsii.Number] = None,
3617
+ ) -> None:
3618
+ '''
3619
+ :param metric_specifications:
3620
+ :param max_capacity_breach_behavior:
3621
+ :param max_capacity_buffer:
3622
+ :param mode:
3623
+ :param scheduling_buffer_time:
3624
+
3625
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration.html
3626
+ :exampleMetadata: fixture=_generated
3627
+
3628
+ Example::
3629
+
3630
+ # The code below shows an example of how to instantiate this type.
3631
+ # The values are placeholders you should change.
3632
+ from aws_cdk import aws_applicationautoscaling as appscaling
3633
+
3634
+ predictive_scaling_policy_configuration_property = appscaling.CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty(
3635
+ metric_specifications=[appscaling.CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty(
3636
+ target_value=123,
3637
+
3638
+ # the properties below are optional
3639
+ customized_capacity_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty(
3640
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3641
+ expression="expression",
3642
+ id="id",
3643
+ label="label",
3644
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3645
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3646
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3647
+ name="name",
3648
+ value="value"
3649
+ )],
3650
+ metric_name="metricName",
3651
+ namespace="namespace"
3652
+ ),
3653
+ stat="stat",
3654
+ unit="unit"
3655
+ ),
3656
+ return_data=False
3657
+ )]
3658
+ ),
3659
+ customized_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty(
3660
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3661
+ expression="expression",
3662
+ id="id",
3663
+ label="label",
3664
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3665
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3666
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3667
+ name="name",
3668
+ value="value"
3669
+ )],
3670
+ metric_name="metricName",
3671
+ namespace="namespace"
3672
+ ),
3673
+ stat="stat",
3674
+ unit="unit"
3675
+ ),
3676
+ return_data=False
3677
+ )]
3678
+ ),
3679
+ customized_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty(
3680
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
3681
+ expression="expression",
3682
+ id="id",
3683
+ label="label",
3684
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
3685
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
3686
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
3687
+ name="name",
3688
+ value="value"
3689
+ )],
3690
+ metric_name="metricName",
3691
+ namespace="namespace"
3692
+ ),
3693
+ stat="stat",
3694
+ unit="unit"
3695
+ ),
3696
+ return_data=False
3697
+ )]
3698
+ ),
3699
+ predefined_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty(
3700
+ predefined_metric_type="predefinedMetricType",
3701
+
3702
+ # the properties below are optional
3703
+ resource_label="resourceLabel"
3704
+ ),
3705
+ predefined_metric_pair_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty(
3706
+ predefined_metric_type="predefinedMetricType",
3707
+
3708
+ # the properties below are optional
3709
+ resource_label="resourceLabel"
3710
+ ),
3711
+ predefined_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty(
3712
+ predefined_metric_type="predefinedMetricType",
3713
+
3714
+ # the properties below are optional
3715
+ resource_label="resourceLabel"
3716
+ )
3717
+ )],
3718
+
3719
+ # the properties below are optional
3720
+ max_capacity_breach_behavior="maxCapacityBreachBehavior",
3721
+ max_capacity_buffer=123,
3722
+ mode="mode",
3723
+ scheduling_buffer_time=123
3724
+ )
3725
+ '''
3726
+ if __debug__:
3727
+ type_hints = typing.get_type_hints(_typecheckingstub__a024b2cdbcf20111811a18e787b7998d587e828c585bbe53e9448b30f36a847a)
3728
+ check_type(argname="argument metric_specifications", value=metric_specifications, expected_type=type_hints["metric_specifications"])
3729
+ check_type(argname="argument max_capacity_breach_behavior", value=max_capacity_breach_behavior, expected_type=type_hints["max_capacity_breach_behavior"])
3730
+ check_type(argname="argument max_capacity_buffer", value=max_capacity_buffer, expected_type=type_hints["max_capacity_buffer"])
3731
+ check_type(argname="argument mode", value=mode, expected_type=type_hints["mode"])
3732
+ check_type(argname="argument scheduling_buffer_time", value=scheduling_buffer_time, expected_type=type_hints["scheduling_buffer_time"])
3733
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3734
+ "metric_specifications": metric_specifications,
3735
+ }
3736
+ if max_capacity_breach_behavior is not None:
3737
+ self._values["max_capacity_breach_behavior"] = max_capacity_breach_behavior
3738
+ if max_capacity_buffer is not None:
3739
+ self._values["max_capacity_buffer"] = max_capacity_buffer
3740
+ if mode is not None:
3741
+ self._values["mode"] = mode
3742
+ if scheduling_buffer_time is not None:
3743
+ self._values["scheduling_buffer_time"] = scheduling_buffer_time
3744
+
3745
+ @builtins.property
3746
+ def metric_specifications(
3747
+ self,
3748
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty"]]]:
3749
+ '''
3750
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration-metricspecifications
3751
+ '''
3752
+ result = self._values.get("metric_specifications")
3753
+ assert result is not None, "Required property 'metric_specifications' is missing"
3754
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty"]]], result)
3755
+
3756
+ @builtins.property
3757
+ def max_capacity_breach_behavior(self) -> typing.Optional[builtins.str]:
3758
+ '''
3759
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration-maxcapacitybreachbehavior
3760
+ '''
3761
+ result = self._values.get("max_capacity_breach_behavior")
3762
+ return typing.cast(typing.Optional[builtins.str], result)
3763
+
3764
+ @builtins.property
3765
+ def max_capacity_buffer(self) -> typing.Optional[jsii.Number]:
3766
+ '''
3767
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration-maxcapacitybuffer
3768
+ '''
3769
+ result = self._values.get("max_capacity_buffer")
3770
+ return typing.cast(typing.Optional[jsii.Number], result)
3771
+
3772
+ @builtins.property
3773
+ def mode(self) -> typing.Optional[builtins.str]:
3774
+ '''
3775
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration-mode
3776
+ '''
3777
+ result = self._values.get("mode")
3778
+ return typing.cast(typing.Optional[builtins.str], result)
3779
+
3780
+ @builtins.property
3781
+ def scheduling_buffer_time(self) -> typing.Optional[jsii.Number]:
3782
+ '''
3783
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration-schedulingbuffertime
3784
+ '''
3785
+ result = self._values.get("scheduling_buffer_time")
3786
+ return typing.cast(typing.Optional[jsii.Number], result)
3787
+
3788
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3789
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3790
+
3791
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3792
+ return not (rhs == self)
3793
+
3794
+ def __repr__(self) -> str:
3795
+ return "PredictiveScalingPolicyConfigurationProperty(%s)" % ", ".join(
3796
+ k + "=" + repr(v) for k, v in self._values.items()
3797
+ )
3798
+
3799
+ @jsii.data_type(
3800
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty",
3801
+ jsii_struct_bases=[],
3802
+ name_mapping={
3803
+ "predefined_metric_type": "predefinedMetricType",
3804
+ "resource_label": "resourceLabel",
3805
+ },
3806
+ )
3807
+ class PredictiveScalingPredefinedLoadMetricProperty:
3808
+ def __init__(
3809
+ self,
3810
+ *,
3811
+ predefined_metric_type: builtins.str,
3812
+ resource_label: typing.Optional[builtins.str] = None,
3813
+ ) -> None:
3814
+ '''
3815
+ :param predefined_metric_type:
3816
+ :param resource_label:
3817
+
3818
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html
3819
+ :exampleMetadata: fixture=_generated
2436
3820
 
2437
- This can include both raw metric and metric math expressions.
3821
+ Example::
2438
3822
 
2439
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-metrics
3823
+ # The code below shows an example of how to instantiate this type.
3824
+ # The values are placeholders you should change.
3825
+ from aws_cdk import aws_applicationautoscaling as appscaling
3826
+
3827
+ predictive_scaling_predefined_load_metric_property = appscaling.CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty(
3828
+ predefined_metric_type="predefinedMetricType",
3829
+
3830
+ # the properties below are optional
3831
+ resource_label="resourceLabel"
3832
+ )
2440
3833
  '''
2441
- result = self._values.get("metrics")
2442
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnScalingPolicy.TargetTrackingMetricDataQueryProperty"]]]], result)
3834
+ if __debug__:
3835
+ type_hints = typing.get_type_hints(_typecheckingstub__0bb7634203f8476604909d001544c9b836ba5d194e9a327c1241da9a9e962b52)
3836
+ check_type(argname="argument predefined_metric_type", value=predefined_metric_type, expected_type=type_hints["predefined_metric_type"])
3837
+ check_type(argname="argument resource_label", value=resource_label, expected_type=type_hints["resource_label"])
3838
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3839
+ "predefined_metric_type": predefined_metric_type,
3840
+ }
3841
+ if resource_label is not None:
3842
+ self._values["resource_label"] = resource_label
2443
3843
 
2444
3844
  @builtins.property
2445
- def namespace(self) -> typing.Optional[builtins.str]:
2446
- '''The namespace of the metric.
2447
-
2448
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-namespace
3845
+ def predefined_metric_type(self) -> builtins.str:
2449
3846
  '''
2450
- result = self._values.get("namespace")
2451
- return typing.cast(typing.Optional[builtins.str], result)
2452
-
2453
- @builtins.property
2454
- def statistic(self) -> typing.Optional[builtins.str]:
2455
- '''The statistic of the metric.
2456
-
2457
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-statistic
3847
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpredefinedloadmetric-predefinedmetrictype
2458
3848
  '''
2459
- result = self._values.get("statistic")
2460
- return typing.cast(typing.Optional[builtins.str], result)
3849
+ result = self._values.get("predefined_metric_type")
3850
+ assert result is not None, "Required property 'predefined_metric_type' is missing"
3851
+ return typing.cast(builtins.str, result)
2461
3852
 
2462
3853
  @builtins.property
2463
- def unit(self) -> typing.Optional[builtins.str]:
2464
- '''The unit of the metric.
2465
-
2466
- For a complete list of the units that CloudWatch supports, see the `MetricDatum <https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html>`_ data type in the *Amazon CloudWatch API Reference* .
2467
-
2468
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-unit
3854
+ def resource_label(self) -> typing.Optional[builtins.str]:
2469
3855
  '''
2470
- result = self._values.get("unit")
3856
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpredefinedloadmetric-resourcelabel
3857
+ '''
3858
+ result = self._values.get("resource_label")
2471
3859
  return typing.cast(typing.Optional[builtins.str], result)
2472
3860
 
2473
3861
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
@@ -2477,23 +3865,30 @@ class CfnScalingPolicy(
2477
3865
  return not (rhs == self)
2478
3866
 
2479
3867
  def __repr__(self) -> str:
2480
- return "CustomizedMetricSpecificationProperty(%s)" % ", ".join(
3868
+ return "PredictiveScalingPredefinedLoadMetricProperty(%s)" % ", ".join(
2481
3869
  k + "=" + repr(v) for k, v in self._values.items()
2482
3870
  )
2483
3871
 
2484
3872
  @jsii.data_type(
2485
- jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.MetricDimensionProperty",
3873
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty",
2486
3874
  jsii_struct_bases=[],
2487
- name_mapping={"name": "name", "value": "value"},
3875
+ name_mapping={
3876
+ "predefined_metric_type": "predefinedMetricType",
3877
+ "resource_label": "resourceLabel",
3878
+ },
2488
3879
  )
2489
- class MetricDimensionProperty:
2490
- def __init__(self, *, name: builtins.str, value: builtins.str) -> None:
2491
- '''``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the `AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html>`_ property type. Duplicate dimensions are not allowed.
2492
-
2493
- :param name: The name of the dimension.
2494
- :param value: The value of the dimension.
3880
+ class PredictiveScalingPredefinedMetricPairProperty:
3881
+ def __init__(
3882
+ self,
3883
+ *,
3884
+ predefined_metric_type: builtins.str,
3885
+ resource_label: typing.Optional[builtins.str] = None,
3886
+ ) -> None:
3887
+ '''
3888
+ :param predefined_metric_type:
3889
+ :param resource_label:
2495
3890
 
2496
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html
3891
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html
2497
3892
  :exampleMetadata: fixture=_generated
2498
3893
 
2499
3894
  Example::
@@ -2502,39 +3897,39 @@ class CfnScalingPolicy(
2502
3897
  # The values are placeholders you should change.
2503
3898
  from aws_cdk import aws_applicationautoscaling as appscaling
2504
3899
 
2505
- metric_dimension_property = appscaling.CfnScalingPolicy.MetricDimensionProperty(
2506
- name="name",
2507
- value="value"
3900
+ predictive_scaling_predefined_metric_pair_property = appscaling.CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty(
3901
+ predefined_metric_type="predefinedMetricType",
3902
+
3903
+ # the properties below are optional
3904
+ resource_label="resourceLabel"
2508
3905
  )
2509
3906
  '''
2510
3907
  if __debug__:
2511
- type_hints = typing.get_type_hints(_typecheckingstub__2bbab6c71eac87b44a87976e9ec88ca8fb9d041a349eeb47474fae5790b2b304)
2512
- check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2513
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3908
+ type_hints = typing.get_type_hints(_typecheckingstub__19e838d5ee35da6e163a6c82692435e1c4fccbdfba878fa19dfc5269dfc85d11)
3909
+ check_type(argname="argument predefined_metric_type", value=predefined_metric_type, expected_type=type_hints["predefined_metric_type"])
3910
+ check_type(argname="argument resource_label", value=resource_label, expected_type=type_hints["resource_label"])
2514
3911
  self._values: typing.Dict[builtins.str, typing.Any] = {
2515
- "name": name,
2516
- "value": value,
3912
+ "predefined_metric_type": predefined_metric_type,
2517
3913
  }
3914
+ if resource_label is not None:
3915
+ self._values["resource_label"] = resource_label
2518
3916
 
2519
3917
  @builtins.property
2520
- def name(self) -> builtins.str:
2521
- '''The name of the dimension.
2522
-
2523
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-name
3918
+ def predefined_metric_type(self) -> builtins.str:
2524
3919
  '''
2525
- result = self._values.get("name")
2526
- assert result is not None, "Required property 'name' is missing"
3920
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpredefinedmetricpair-predefinedmetrictype
3921
+ '''
3922
+ result = self._values.get("predefined_metric_type")
3923
+ assert result is not None, "Required property 'predefined_metric_type' is missing"
2527
3924
  return typing.cast(builtins.str, result)
2528
3925
 
2529
3926
  @builtins.property
2530
- def value(self) -> builtins.str:
2531
- '''The value of the dimension.
2532
-
2533
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-value
3927
+ def resource_label(self) -> typing.Optional[builtins.str]:
2534
3928
  '''
2535
- result = self._values.get("value")
2536
- assert result is not None, "Required property 'value' is missing"
2537
- return typing.cast(builtins.str, result)
3929
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpredefinedmetricpair-resourcelabel
3930
+ '''
3931
+ result = self._values.get("resource_label")
3932
+ return typing.cast(typing.Optional[builtins.str], result)
2538
3933
 
2539
3934
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2540
3935
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -2543,33 +3938,30 @@ class CfnScalingPolicy(
2543
3938
  return not (rhs == self)
2544
3939
 
2545
3940
  def __repr__(self) -> str:
2546
- return "MetricDimensionProperty(%s)" % ", ".join(
3941
+ return "PredictiveScalingPredefinedMetricPairProperty(%s)" % ", ".join(
2547
3942
  k + "=" + repr(v) for k, v in self._values.items()
2548
3943
  )
2549
3944
 
2550
3945
  @jsii.data_type(
2551
- jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredefinedMetricSpecificationProperty",
3946
+ jsii_type="aws-cdk-lib.aws_applicationautoscaling.CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty",
2552
3947
  jsii_struct_bases=[],
2553
3948
  name_mapping={
2554
3949
  "predefined_metric_type": "predefinedMetricType",
2555
3950
  "resource_label": "resourceLabel",
2556
3951
  },
2557
3952
  )
2558
- class PredefinedMetricSpecificationProperty:
3953
+ class PredictiveScalingPredefinedScalingMetricProperty:
2559
3954
  def __init__(
2560
3955
  self,
2561
3956
  *,
2562
3957
  predefined_metric_type: builtins.str,
2563
3958
  resource_label: typing.Optional[builtins.str] = None,
2564
3959
  ) -> None:
2565
- '''Contains predefined metric specification information for a target tracking scaling policy for Application Auto Scaling.
2566
-
2567
- ``PredefinedMetricSpecification`` is a property of the `AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html>`_ property type.
2568
-
2569
- :param predefined_metric_type: The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.
2570
- :param resource_label: Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`` . Where: - app// is the final portion of the load balancer ARN - targetgroup// is the final portion of the target group ARN. To find the ARN for an Application Load Balancer, use the `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`_ API operation. To find the ARN for the target group, use the `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`_ API operation.
3960
+ '''
3961
+ :param predefined_metric_type:
3962
+ :param resource_label:
2571
3963
 
2572
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html
3964
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html
2573
3965
  :exampleMetadata: fixture=_generated
2574
3966
 
2575
3967
  Example::
@@ -2578,7 +3970,7 @@ class CfnScalingPolicy(
2578
3970
  # The values are placeholders you should change.
2579
3971
  from aws_cdk import aws_applicationautoscaling as appscaling
2580
3972
 
2581
- predefined_metric_specification_property = appscaling.CfnScalingPolicy.PredefinedMetricSpecificationProperty(
3973
+ predictive_scaling_predefined_scaling_metric_property = appscaling.CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty(
2582
3974
  predefined_metric_type="predefinedMetricType",
2583
3975
 
2584
3976
  # the properties below are optional
@@ -2586,7 +3978,7 @@ class CfnScalingPolicy(
2586
3978
  )
2587
3979
  '''
2588
3980
  if __debug__:
2589
- type_hints = typing.get_type_hints(_typecheckingstub__006a90e58fd47516fb147d13d14740fcdcd4c98e1ffcee20b2746e63c245c11a)
3981
+ type_hints = typing.get_type_hints(_typecheckingstub__a97590b84b4d83fa36cc26f5970df44f2c84513403b6eb5b15cc94570c24d547)
2590
3982
  check_type(argname="argument predefined_metric_type", value=predefined_metric_type, expected_type=type_hints["predefined_metric_type"])
2591
3983
  check_type(argname="argument resource_label", value=resource_label, expected_type=type_hints["resource_label"])
2592
3984
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -2597,11 +3989,8 @@ class CfnScalingPolicy(
2597
3989
 
2598
3990
  @builtins.property
2599
3991
  def predefined_metric_type(self) -> builtins.str:
2600
- '''The metric type.
2601
-
2602
- The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.
2603
-
2604
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype
3992
+ '''
3993
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric-predefinedmetrictype
2605
3994
  '''
2606
3995
  result = self._values.get("predefined_metric_type")
2607
3996
  assert result is not None, "Required property 'predefined_metric_type' is missing"
@@ -2609,22 +3998,8 @@ class CfnScalingPolicy(
2609
3998
 
2610
3999
  @builtins.property
2611
4000
  def resource_label(self) -> typing.Optional[builtins.str]:
2612
- '''Identifies the resource associated with the metric type.
2613
-
2614
- You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.
2615
-
2616
- You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:
2617
-
2618
- ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff`` .
2619
-
2620
- Where:
2621
-
2622
- - app// is the final portion of the load balancer ARN
2623
- - targetgroup// is the final portion of the target group ARN.
2624
-
2625
- To find the ARN for an Application Load Balancer, use the `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`_ API operation. To find the ARN for the target group, use the `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`_ API operation.
2626
-
2627
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel
4001
+ '''
4002
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric-resourcelabel
2628
4003
  '''
2629
4004
  result = self._values.get("resource_label")
2630
4005
  return typing.cast(typing.Optional[builtins.str], result)
@@ -2636,7 +4011,7 @@ class CfnScalingPolicy(
2636
4011
  return not (rhs == self)
2637
4012
 
2638
4013
  def __repr__(self) -> str:
2639
- return "PredefinedMetricSpecificationProperty(%s)" % ", ".join(
4014
+ return "PredictiveScalingPredefinedScalingMetricProperty(%s)" % ", ".join(
2640
4015
  k + "=" + repr(v) for k, v in self._values.items()
2641
4016
  )
2642
4017
 
@@ -3525,6 +4900,7 @@ class CfnScalingPolicy(
3525
4900
  name_mapping={
3526
4901
  "policy_name": "policyName",
3527
4902
  "policy_type": "policyType",
4903
+ "predictive_scaling_policy_configuration": "predictiveScalingPolicyConfiguration",
3528
4904
  "resource_id": "resourceId",
3529
4905
  "scalable_dimension": "scalableDimension",
3530
4906
  "scaling_target_id": "scalingTargetId",
@@ -3539,6 +4915,7 @@ class CfnScalingPolicyProps:
3539
4915
  *,
3540
4916
  policy_name: builtins.str,
3541
4917
  policy_type: builtins.str,
4918
+ predictive_scaling_policy_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3542
4919
  resource_id: typing.Optional[builtins.str] = None,
3543
4920
  scalable_dimension: typing.Optional[builtins.str] = None,
3544
4921
  scaling_target_id: typing.Optional[builtins.str] = None,
@@ -3550,6 +4927,7 @@ class CfnScalingPolicyProps:
3550
4927
 
3551
4928
  :param policy_name: The name of the scaling policy. Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.
3552
4929
  :param policy_type: The scaling policy type. The following policy types are supported: ``TargetTrackingScaling`` —Not supported for Amazon EMR ``StepScaling`` —Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.
4930
+ :param predictive_scaling_policy_configuration:
3553
4931
  :param resource_id: The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. - ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service`` . - Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`` . - EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0`` . - AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet`` . - DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table`` . - DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index`` . - Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster`` . - SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering`` . - Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our `GitHub repository <https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource>`_ . - Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE`` . - Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE`` . - Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST`` . Example: ``function:my-function:prod`` or ``function:my-function:1`` . - Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable`` . - Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5`` . - Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster`` . - Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster`` . - SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering`` . - SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component`` . - Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456`` .
3554
4932
  :param scalable_dimension: The scalable dimension. This string consists of the service namespace, resource type, and scaling property. - ``ecs:service:DesiredCount`` - The task count of an ECS service. - ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group. - ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet. - ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet. - ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table. - ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table. - ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index. - ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index. - ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. - ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant. - ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service. - ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint. - ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint. - ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function. - ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table. - ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table. - ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. - ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group. - ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group. - ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster. - ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint. - ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component. - ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.
3555
4933
  :param scaling_target_id: The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource. .. epigraph:: You must specify either the ``ScalingTargetId`` property, or the ``ResourceId`` , ``ScalableDimension`` , and ``ServiceNamespace`` properties, but not both.
@@ -3571,6 +4949,97 @@ class CfnScalingPolicyProps:
3571
4949
  policy_type="policyType",
3572
4950
 
3573
4951
  # the properties below are optional
4952
+ predictive_scaling_policy_configuration=appscaling.CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty(
4953
+ metric_specifications=[appscaling.CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty(
4954
+ target_value=123,
4955
+
4956
+ # the properties below are optional
4957
+ customized_capacity_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty(
4958
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
4959
+ expression="expression",
4960
+ id="id",
4961
+ label="label",
4962
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
4963
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
4964
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
4965
+ name="name",
4966
+ value="value"
4967
+ )],
4968
+ metric_name="metricName",
4969
+ namespace="namespace"
4970
+ ),
4971
+ stat="stat",
4972
+ unit="unit"
4973
+ ),
4974
+ return_data=False
4975
+ )]
4976
+ ),
4977
+ customized_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty(
4978
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
4979
+ expression="expression",
4980
+ id="id",
4981
+ label="label",
4982
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
4983
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
4984
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
4985
+ name="name",
4986
+ value="value"
4987
+ )],
4988
+ metric_name="metricName",
4989
+ namespace="namespace"
4990
+ ),
4991
+ stat="stat",
4992
+ unit="unit"
4993
+ ),
4994
+ return_data=False
4995
+ )]
4996
+ ),
4997
+ customized_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty(
4998
+ metric_data_queries=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty(
4999
+ expression="expression",
5000
+ id="id",
5001
+ label="label",
5002
+ metric_stat=appscaling.CfnScalingPolicy.PredictiveScalingMetricStatProperty(
5003
+ metric=appscaling.CfnScalingPolicy.PredictiveScalingMetricProperty(
5004
+ dimensions=[appscaling.CfnScalingPolicy.PredictiveScalingMetricDimensionProperty(
5005
+ name="name",
5006
+ value="value"
5007
+ )],
5008
+ metric_name="metricName",
5009
+ namespace="namespace"
5010
+ ),
5011
+ stat="stat",
5012
+ unit="unit"
5013
+ ),
5014
+ return_data=False
5015
+ )]
5016
+ ),
5017
+ predefined_load_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty(
5018
+ predefined_metric_type="predefinedMetricType",
5019
+
5020
+ # the properties below are optional
5021
+ resource_label="resourceLabel"
5022
+ ),
5023
+ predefined_metric_pair_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty(
5024
+ predefined_metric_type="predefinedMetricType",
5025
+
5026
+ # the properties below are optional
5027
+ resource_label="resourceLabel"
5028
+ ),
5029
+ predefined_scaling_metric_specification=appscaling.CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty(
5030
+ predefined_metric_type="predefinedMetricType",
5031
+
5032
+ # the properties below are optional
5033
+ resource_label="resourceLabel"
5034
+ )
5035
+ )],
5036
+
5037
+ # the properties below are optional
5038
+ max_capacity_breach_behavior="maxCapacityBreachBehavior",
5039
+ max_capacity_buffer=123,
5040
+ mode="mode",
5041
+ scheduling_buffer_time=123
5042
+ ),
3574
5043
  resource_id="resourceId",
3575
5044
  scalable_dimension="scalableDimension",
3576
5045
  scaling_target_id="scalingTargetId",
@@ -3636,6 +5105,7 @@ class CfnScalingPolicyProps:
3636
5105
  type_hints = typing.get_type_hints(_typecheckingstub__eabc9b9cdfb95f21a9439a9250c214148ffe31ecc08a87e6125ff826c886f42c)
3637
5106
  check_type(argname="argument policy_name", value=policy_name, expected_type=type_hints["policy_name"])
3638
5107
  check_type(argname="argument policy_type", value=policy_type, expected_type=type_hints["policy_type"])
5108
+ check_type(argname="argument predictive_scaling_policy_configuration", value=predictive_scaling_policy_configuration, expected_type=type_hints["predictive_scaling_policy_configuration"])
3639
5109
  check_type(argname="argument resource_id", value=resource_id, expected_type=type_hints["resource_id"])
3640
5110
  check_type(argname="argument scalable_dimension", value=scalable_dimension, expected_type=type_hints["scalable_dimension"])
3641
5111
  check_type(argname="argument scaling_target_id", value=scaling_target_id, expected_type=type_hints["scaling_target_id"])
@@ -3646,6 +5116,8 @@ class CfnScalingPolicyProps:
3646
5116
  "policy_name": policy_name,
3647
5117
  "policy_type": policy_type,
3648
5118
  }
5119
+ if predictive_scaling_policy_configuration is not None:
5120
+ self._values["predictive_scaling_policy_configuration"] = predictive_scaling_policy_configuration
3649
5121
  if resource_id is not None:
3650
5122
  self._values["resource_id"] = resource_id
3651
5123
  if scalable_dimension is not None:
@@ -3687,6 +5159,16 @@ class CfnScalingPolicyProps:
3687
5159
  assert result is not None, "Required property 'policy_type' is missing"
3688
5160
  return typing.cast(builtins.str, result)
3689
5161
 
5162
+ @builtins.property
5163
+ def predictive_scaling_policy_configuration(
5164
+ self,
5165
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty]]:
5166
+ '''
5167
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-predictivescalingpolicyconfiguration
5168
+ '''
5169
+ result = self._values.get("predictive_scaling_policy_configuration")
5170
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty]], result)
5171
+
3690
5172
  @builtins.property
3691
5173
  def resource_id(self) -> typing.Optional[builtins.str]:
3692
5174
  '''The identifier of the resource associated with the scaling policy.
@@ -6323,6 +7805,7 @@ def _typecheckingstub__1fdbd49d0d5c8d10cb6dba70c50d20e471988b2d94237a064669be24b
6323
7805
  *,
6324
7806
  policy_name: builtins.str,
6325
7807
  policy_type: builtins.str,
7808
+ predictive_scaling_policy_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6326
7809
  resource_id: typing.Optional[builtins.str] = None,
6327
7810
  scalable_dimension: typing.Optional[builtins.str] = None,
6328
7811
  scaling_target_id: typing.Optional[builtins.str] = None,
@@ -6357,6 +7840,12 @@ def _typecheckingstub__64ceb2a355ff27a664253fe046aa1782da96620b29bc51aeb4cc3d41e
6357
7840
  """Type checking stubs"""
6358
7841
  pass
6359
7842
 
7843
+ def _typecheckingstub__a8ff4907f03a84bc381a0bf64cc7a5454e5ac237c8f91eef6a31a3bb7ccceabb(
7844
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty]],
7845
+ ) -> None:
7846
+ """Type checking stubs"""
7847
+ pass
7848
+
6360
7849
  def _typecheckingstub__471855b6df8fda8e34a03d46cd115dff8f7756d99f246dde133740f2be29f4c4(
6361
7850
  value: typing.Optional[builtins.str],
6362
7851
  ) -> None:
@@ -6421,6 +7910,112 @@ def _typecheckingstub__006a90e58fd47516fb147d13d14740fcdcd4c98e1ffcee20b2746e63c
6421
7910
  """Type checking stubs"""
6422
7911
  pass
6423
7912
 
7913
+ def _typecheckingstub__baf809a31130dc9f7046310d5551e4d1bc142c89cd1fb21ab0fece90cd2ef669(
7914
+ *,
7915
+ metric_data_queries: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]],
7916
+ ) -> None:
7917
+ """Type checking stubs"""
7918
+ pass
7919
+
7920
+ def _typecheckingstub__ac39ce2bb72379aa4920ed39bac91cdf3aa4ff447d41bf13801719c58eab7362(
7921
+ *,
7922
+ metric_data_queries: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]],
7923
+ ) -> None:
7924
+ """Type checking stubs"""
7925
+ pass
7926
+
7927
+ def _typecheckingstub__35c3daca56887d07a7f16cb4e42cd7ee2b3e51829f3cd7bea4e65022fc7eddb6(
7928
+ *,
7929
+ metric_data_queries: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]],
7930
+ ) -> None:
7931
+ """Type checking stubs"""
7932
+ pass
7933
+
7934
+ def _typecheckingstub__7cb94698782194f83da9ca6414a5ca1d6c86a5b368bafaae48a59aa90207ed6e(
7935
+ *,
7936
+ expression: typing.Optional[builtins.str] = None,
7937
+ id: typing.Optional[builtins.str] = None,
7938
+ label: typing.Optional[builtins.str] = None,
7939
+ metric_stat: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricStatProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7940
+ return_data: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7941
+ ) -> None:
7942
+ """Type checking stubs"""
7943
+ pass
7944
+
7945
+ def _typecheckingstub__7ccc47b2e2a5c048e3788cb9ab802a7d336f9313040d285e9600e27e4aac7530(
7946
+ *,
7947
+ name: typing.Optional[builtins.str] = None,
7948
+ value: typing.Optional[builtins.str] = None,
7949
+ ) -> None:
7950
+ """Type checking stubs"""
7951
+ pass
7952
+
7953
+ def _typecheckingstub__f0b4c5e65c6e655cdbc3a71099a7f7da3c2dbccf56465777a98264de1eb74f85(
7954
+ *,
7955
+ dimensions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricDimensionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
7956
+ metric_name: typing.Optional[builtins.str] = None,
7957
+ namespace: typing.Optional[builtins.str] = None,
7958
+ ) -> None:
7959
+ """Type checking stubs"""
7960
+ pass
7961
+
7962
+ def _typecheckingstub__f335e7dbac02e5d34252ec23dcd35d90e1872a21cb862e79274e27b4db9fe43d(
7963
+ *,
7964
+ target_value: jsii.Number,
7965
+ customized_capacity_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingCustomizedCapacityMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7966
+ customized_load_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingCustomizedLoadMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7967
+ customized_scaling_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingCustomizedScalingMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7968
+ predefined_load_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingPredefinedLoadMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7969
+ predefined_metric_pair_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingPredefinedMetricPairProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7970
+ predefined_scaling_metric_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingPredefinedScalingMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7971
+ ) -> None:
7972
+ """Type checking stubs"""
7973
+ pass
7974
+
7975
+ def _typecheckingstub__d53af1f339feb5962e1705bee9b01c7d79acf6dc4927d3891f0bd6415f07b584(
7976
+ *,
7977
+ metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7978
+ stat: typing.Optional[builtins.str] = None,
7979
+ unit: typing.Optional[builtins.str] = None,
7980
+ ) -> None:
7981
+ """Type checking stubs"""
7982
+ pass
7983
+
7984
+ def _typecheckingstub__a024b2cdbcf20111811a18e787b7998d587e828c585bbe53e9448b30f36a847a(
7985
+ *,
7986
+ metric_specifications: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingMetricSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]],
7987
+ max_capacity_breach_behavior: typing.Optional[builtins.str] = None,
7988
+ max_capacity_buffer: typing.Optional[jsii.Number] = None,
7989
+ mode: typing.Optional[builtins.str] = None,
7990
+ scheduling_buffer_time: typing.Optional[jsii.Number] = None,
7991
+ ) -> None:
7992
+ """Type checking stubs"""
7993
+ pass
7994
+
7995
+ def _typecheckingstub__0bb7634203f8476604909d001544c9b836ba5d194e9a327c1241da9a9e962b52(
7996
+ *,
7997
+ predefined_metric_type: builtins.str,
7998
+ resource_label: typing.Optional[builtins.str] = None,
7999
+ ) -> None:
8000
+ """Type checking stubs"""
8001
+ pass
8002
+
8003
+ def _typecheckingstub__19e838d5ee35da6e163a6c82692435e1c4fccbdfba878fa19dfc5269dfc85d11(
8004
+ *,
8005
+ predefined_metric_type: builtins.str,
8006
+ resource_label: typing.Optional[builtins.str] = None,
8007
+ ) -> None:
8008
+ """Type checking stubs"""
8009
+ pass
8010
+
8011
+ def _typecheckingstub__a97590b84b4d83fa36cc26f5970df44f2c84513403b6eb5b15cc94570c24d547(
8012
+ *,
8013
+ predefined_metric_type: builtins.str,
8014
+ resource_label: typing.Optional[builtins.str] = None,
8015
+ ) -> None:
8016
+ """Type checking stubs"""
8017
+ pass
8018
+
6424
8019
  def _typecheckingstub__3a06f512f9ba96f90127c3ef28f9aaa4ff2dd9349ab6fe34199dccd68563dfbe(
6425
8020
  *,
6426
8021
  scaling_adjustment: jsii.Number,
@@ -6494,6 +8089,7 @@ def _typecheckingstub__eabc9b9cdfb95f21a9439a9250c214148ffe31ecc08a87e6125ff826c
6494
8089
  *,
6495
8090
  policy_name: builtins.str,
6496
8091
  policy_type: builtins.str,
8092
+ predictive_scaling_policy_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnScalingPolicy.PredictiveScalingPolicyConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6497
8093
  resource_id: typing.Optional[builtins.str] = None,
6498
8094
  scalable_dimension: typing.Optional[builtins.str] = None,
6499
8095
  scaling_target_id: typing.Optional[builtins.str] = None,