aws-cdk-lib 2.158.0__py3-none-any.whl → 2.159.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 (62) hide show
  1. aws_cdk/__init__.py +36 -19
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.158.0.jsii.tgz → aws-cdk-lib@2.159.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplify/__init__.py +22 -8
  5. aws_cdk/aws_apigatewayv2/__init__.py +30 -0
  6. aws_cdk/aws_appconfig/__init__.py +3 -3
  7. aws_cdk/aws_applicationinsights/__init__.py +544 -4
  8. aws_cdk/aws_applicationsignals/__init__.py +170 -142
  9. aws_cdk/aws_athena/__init__.py +15 -15
  10. aws_cdk/aws_auditmanager/__init__.py +5 -5
  11. aws_cdk/aws_bedrock/__init__.py +7 -7
  12. aws_cdk/aws_codebuild/__init__.py +39 -18
  13. aws_cdk/aws_codeconnections/__init__.py +1 -1
  14. aws_cdk/aws_cognito/__init__.py +390 -203
  15. aws_cdk/aws_connect/__init__.py +1679 -152
  16. aws_cdk/aws_datazone/__init__.py +665 -40
  17. aws_cdk/aws_docdb/__init__.py +6 -1
  18. aws_cdk/aws_dynamodb/__init__.py +5 -5
  19. aws_cdk/aws_ec2/__init__.py +121 -36
  20. aws_cdk/aws_ecr/__init__.py +14 -6
  21. aws_cdk/aws_ecs/__init__.py +20 -20
  22. aws_cdk/aws_elasticloadbalancingv2/__init__.py +167 -20
  23. aws_cdk/aws_emr/__init__.py +8 -8
  24. aws_cdk/aws_events/__init__.py +19 -17
  25. aws_cdk/aws_events_targets/__init__.py +165 -85
  26. aws_cdk/aws_fms/__init__.py +59 -0
  27. aws_cdk/aws_fsx/__init__.py +3 -3
  28. aws_cdk/aws_gamelift/__init__.py +40 -52
  29. aws_cdk/aws_globalaccelerator/__init__.py +22 -29
  30. aws_cdk/aws_iam/__init__.py +22 -20
  31. aws_cdk/aws_iotfleetwise/__init__.py +419 -0
  32. aws_cdk/aws_iotsitewise/__init__.py +90 -1
  33. aws_cdk/aws_iotwireless/__init__.py +205 -0
  34. aws_cdk/aws_lambda/__init__.py +129 -16
  35. aws_cdk/aws_lex/__init__.py +15 -1
  36. aws_cdk/aws_logs/__init__.py +1 -1
  37. aws_cdk/aws_mediaconnect/__init__.py +111 -0
  38. aws_cdk/aws_medialive/__init__.py +7988 -3262
  39. aws_cdk/aws_msk/__init__.py +287 -479
  40. aws_cdk/aws_opensearchservice/__init__.py +6 -0
  41. aws_cdk/aws_pcaconnectorscep/__init__.py +69 -30
  42. aws_cdk/aws_pipes/__init__.py +49 -0
  43. aws_cdk/aws_qbusiness/__init__.py +11 -14
  44. aws_cdk/aws_quicksight/__init__.py +638 -99
  45. aws_cdk/aws_rds/__init__.py +38 -27
  46. aws_cdk/aws_s3/__init__.py +215 -33
  47. aws_cdk/aws_s3objectlambda/__init__.py +2 -2
  48. aws_cdk/aws_sagemaker/__init__.py +872 -58
  49. aws_cdk/aws_secretsmanager/__init__.py +22 -8
  50. aws_cdk/aws_securityhub/__init__.py +261 -19
  51. aws_cdk/aws_securitylake/__init__.py +327 -7
  52. aws_cdk/aws_servicediscovery/__init__.py +5 -5
  53. aws_cdk/aws_sns/__init__.py +0 -8
  54. aws_cdk/aws_ssm/__init__.py +20 -12
  55. aws_cdk/aws_stepfunctions_tasks/__init__.py +36 -0
  56. aws_cdk/cx_api/__init__.py +19 -0
  57. {aws_cdk_lib-2.158.0.dist-info → aws_cdk_lib-2.159.0.dist-info}/METADATA +1 -1
  58. {aws_cdk_lib-2.158.0.dist-info → aws_cdk_lib-2.159.0.dist-info}/RECORD +62 -62
  59. {aws_cdk_lib-2.158.0.dist-info → aws_cdk_lib-2.159.0.dist-info}/LICENSE +0 -0
  60. {aws_cdk_lib-2.158.0.dist-info → aws_cdk_lib-2.159.0.dist-info}/NOTICE +0 -0
  61. {aws_cdk_lib-2.158.0.dist-info → aws_cdk_lib-2.159.0.dist-info}/WHEEL +0 -0
  62. {aws_cdk_lib-2.158.0.dist-info → aws_cdk_lib-2.159.0.dist-info}/top_level.txt +0 -0
@@ -91,9 +91,23 @@ class CfnServiceLevelObjective(
91
91
 
92
92
  Create an SLO to set a target for a service or operation’s availability or latency. CloudWatch measures this target frequently you can find whether it has been breached.
93
93
 
94
- When you create an SLO, you set an *attainment goal* for it. An *attainment goal* is the ratio of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.
94
+ The target performance quality that is defined for an SLO is the *attainment goal* . An attainment goal is the percentage of time or requests that the SLI is expected to meet the threshold over each time interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.
95
95
 
96
- After you have created an SLO, you can retrieve error budget reports for it. An *error budget* is the number of periods or amount of time that your service can accumulate during an interval before your overall SLO budget health is breached and the SLO is considered to be unmet. for example, an SLO with a threshold that 99.95% of requests must be completed under 2000ms every month translates to an error budget of 21.9 minutes of downtime per month.
96
+ When you create an SLO, you specify whether it is a *period-based SLO* or a *request-based SLO* . Each type of SLO has a different way of evaluating your application's performance against its attainment goal.
97
+
98
+ - A *period-based SLO* uses defined *periods* of time within a specified total time interval. For each period of time, Application Signals determines whether the application met its goal. The attainment rate is calculated as the ``number of good periods/number of total periods`` .
99
+
100
+ For example, for a period-based SLO, meeting an attainment goal of 99.9% means that within your interval, your application must meet its performance goal during at least 99.9% of the time periods.
101
+
102
+ - A *request-based SLO* doesn't use pre-defined periods of time. Instead, the SLO measures ``number of good requests/number of total requests`` during the interval. At any time, you can find the ratio of good requests to total requests for the interval up to the time stamp that you specify, and measure that ratio against the goal set in your SLO.
103
+
104
+ After you have created an SLO, you can retrieve error budget reports for it. An *error budget* is the amount of time or amount of requests that your application can be non-compliant with the SLO's goal, and still have your application meet the goal.
105
+
106
+ - For a period-based SLO, the error budget starts at a number defined by the highest number of periods that can fail to meet the threshold, while still meeting the overall goal. The *remaining error budget* decreases with every failed period that is recorded. The error budget within one interval can never increase.
107
+
108
+ For example, an SLO with a threshold that 99.95% of requests must be completed under 2000ms every month translates to an error budget of 21.9 minutes of downtime per month.
109
+
110
+ - For a request-based SLO, the remaining error budget is dynamic and can increase or decrease, depending on the ratio of good requests to total requests.
97
111
 
98
112
  When you call this operation, Application Signals creates the *AWSServiceRoleForCloudWatchApplicationSignals* service-linked role, if it doesn't already exist in your account. This service- linked role has the following permissions:
99
113
 
@@ -107,6 +121,8 @@ class CfnServiceLevelObjective(
107
121
 
108
122
  You can easily set SLO targets for your applications that are discovered by Application Signals, using critical metrics such as latency and availability. You can also set SLOs against any CloudWatch metric or math expression that produces a time series.
109
123
 
124
+ You cannot change from a period-based SLO to a request-based SLO, or change from a request-based SLO to a period-based SLO.
125
+
110
126
  For more information about SLOs, see `Service level objectives (SLOs) <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html>`_ .
111
127
 
112
128
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html
@@ -121,42 +137,6 @@ class CfnServiceLevelObjective(
121
137
 
122
138
  cfn_service_level_objective = applicationsignals.CfnServiceLevelObjective(self, "MyCfnServiceLevelObjective",
123
139
  name="name",
124
- sli=applicationsignals.CfnServiceLevelObjective.SliProperty(
125
- comparison_operator="comparisonOperator",
126
- metric_threshold=123,
127
- sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
128
- key_attributes={
129
- "key_attributes_key": "keyAttributes"
130
- },
131
- metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
132
- id="id",
133
-
134
- # the properties below are optional
135
- account_id="accountId",
136
- expression="expression",
137
- metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
138
- metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
139
- dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
140
- name="name",
141
- value="value"
142
- )],
143
- metric_name="metricName",
144
- namespace="namespace"
145
- ),
146
- period=123,
147
- stat="stat",
148
-
149
- # the properties below are optional
150
- unit="unit"
151
- ),
152
- return_data=False
153
- )],
154
- metric_type="metricType",
155
- operation_name="operationName",
156
- period_seconds=123,
157
- statistic="statistic"
158
- )
159
- ),
160
140
 
161
141
  # the properties below are optional
162
142
  description="description",
@@ -259,6 +239,42 @@ class CfnServiceLevelObjective(
259
239
  comparison_operator="comparisonOperator",
260
240
  metric_threshold=123
261
241
  ),
242
+ sli=applicationsignals.CfnServiceLevelObjective.SliProperty(
243
+ comparison_operator="comparisonOperator",
244
+ metric_threshold=123,
245
+ sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
246
+ key_attributes={
247
+ "key_attributes_key": "keyAttributes"
248
+ },
249
+ metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
250
+ id="id",
251
+
252
+ # the properties below are optional
253
+ account_id="accountId",
254
+ expression="expression",
255
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
256
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
257
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
258
+ name="name",
259
+ value="value"
260
+ )],
261
+ metric_name="metricName",
262
+ namespace="namespace"
263
+ ),
264
+ period=123,
265
+ stat="stat",
266
+
267
+ # the properties below are optional
268
+ unit="unit"
269
+ ),
270
+ return_data=False
271
+ )],
272
+ metric_type="metricType",
273
+ operation_name="operationName",
274
+ period_seconds=123,
275
+ statistic="statistic"
276
+ )
277
+ ),
262
278
  tags=[CfnTag(
263
279
  key="key",
264
280
  value="value"
@@ -272,20 +288,20 @@ class CfnServiceLevelObjective(
272
288
  id: builtins.str,
273
289
  *,
274
290
  name: builtins.str,
275
- sli: typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.SliProperty", typing.Dict[builtins.str, typing.Any]]],
276
291
  description: typing.Optional[builtins.str] = None,
277
292
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.GoalProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
278
293
  request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.RequestBasedSliProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
294
+ sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.SliProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
279
295
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
280
296
  ) -> None:
281
297
  '''
282
298
  :param scope: Scope in which this resource is defined.
283
299
  :param id: Construct identifier for this resource (unique in its scope).
284
300
  :param name: A name for this SLO.
285
- :param sli: A structure containing information about the performance metric that this SLO monitors.
286
301
  :param description: An optional description for this SLO. Default: - "No description"
287
302
  :param goal: This structure contains the attributes that determine the goal of an SLO. This includes the time period for evaluation and the attainment threshold.
288
- :param request_based_sli: This structure contains information about the performance metric that a request-based SLO monitors.
303
+ :param request_based_sli: A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.
304
+ :param sli: A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.
289
305
  :param tags: A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource permission. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
290
306
  '''
291
307
  if __debug__:
@@ -294,10 +310,10 @@ class CfnServiceLevelObjective(
294
310
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
295
311
  props = CfnServiceLevelObjectiveProps(
296
312
  name=name,
297
- sli=sli,
298
313
  description=description,
299
314
  goal=goal,
300
315
  request_based_sli=request_based_sli,
316
+ sli=sli,
301
317
  tags=tags,
302
318
  )
303
319
 
@@ -393,24 +409,6 @@ class CfnServiceLevelObjective(
393
409
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
394
410
  jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
395
411
 
396
- @builtins.property
397
- @jsii.member(jsii_name="sli")
398
- def sli(
399
- self,
400
- ) -> typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"]:
401
- '''A structure containing information about the performance metric that this SLO monitors.'''
402
- return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"], jsii.get(self, "sli"))
403
-
404
- @sli.setter
405
- def sli(
406
- self,
407
- value: typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"],
408
- ) -> None:
409
- if __debug__:
410
- type_hints = typing.get_type_hints(_typecheckingstub__938ccf6991aba4b5875a4ca09dfcdb00a5c7e9a92bba0e785ddfbebb228037c3)
411
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
412
- jsii.set(self, "sli", value) # pyright: ignore[reportArgumentType]
413
-
414
412
  @builtins.property
415
413
  @jsii.member(jsii_name="description")
416
414
  def description(self) -> typing.Optional[builtins.str]:
@@ -447,7 +445,7 @@ class CfnServiceLevelObjective(
447
445
  def request_based_sli(
448
446
  self,
449
447
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliProperty"]]:
450
- '''This structure contains information about the performance metric that a request-based SLO monitors.'''
448
+ '''A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.'''
451
449
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliProperty"]], jsii.get(self, "requestBasedSli"))
452
450
 
453
451
  @request_based_sli.setter
@@ -460,6 +458,24 @@ class CfnServiceLevelObjective(
460
458
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
461
459
  jsii.set(self, "requestBasedSli", value) # pyright: ignore[reportArgumentType]
462
460
 
461
+ @builtins.property
462
+ @jsii.member(jsii_name="sli")
463
+ def sli(
464
+ self,
465
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"]]:
466
+ '''A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.'''
467
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"]], jsii.get(self, "sli"))
468
+
469
+ @sli.setter
470
+ def sli(
471
+ self,
472
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"]],
473
+ ) -> None:
474
+ if __debug__:
475
+ type_hints = typing.get_type_hints(_typecheckingstub__938ccf6991aba4b5875a4ca09dfcdb00a5c7e9a92bba0e785ddfbebb228037c3)
476
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
477
+ jsii.set(self, "sli", value) # pyright: ignore[reportArgumentType]
478
+
463
479
  @builtins.property
464
480
  @jsii.member(jsii_name="tags")
465
481
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -666,7 +682,7 @@ class CfnServiceLevelObjective(
666
682
 
667
683
  This includes the time period for evaluation and the attainment threshold.
668
684
 
669
- :param attainment_goal: The threshold that determines if the goal is being met. An *attainment goal* is the ratio of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state. If you omit this parameter, 99 is used to represent 99% as the attainment goal.
685
+ :param attainment_goal: The threshold that determines if the goal is being met. If this is a period-based SLO, the attainment goal is the percentage of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state. If this is a request-based SLO, the attainment goal is the percentage of requests that must be successful to meet the attainment goal. If you omit this parameter, 99 is used to represent 99% as the attainment goal.
670
686
  :param interval: The time period used to evaluate the SLO. It can be either a calendar interval or rolling interval. If you omit this parameter, a rolling interval of 7 days is used.
671
687
  :param warning_threshold: The percentage of remaining budget over total budget that you want to get warnings for. If you omit this parameter, the default of 50.0 is used.
672
688
 
@@ -712,7 +728,9 @@ class CfnServiceLevelObjective(
712
728
  def attainment_goal(self) -> typing.Optional[jsii.Number]:
713
729
  '''The threshold that determines if the goal is being met.
714
730
 
715
- An *attainment goal* is the ratio of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.
731
+ If this is a period-based SLO, the attainment goal is the percentage of good periods that meet the threshold requirements to the total periods within the interval. For example, an attainment goal of 99.9% means that within your interval, you are targeting 99.9% of the periods to be in healthy state.
732
+
733
+ If this is a request-based SLO, the attainment goal is the percentage of requests that must be successful to meet the attainment goal.
716
734
 
717
735
  If you omit this parameter, 99 is used to represent 99% as the attainment goal.
718
736
 
@@ -1242,8 +1260,8 @@ class CfnServiceLevelObjective(
1242
1260
 
1243
1261
  This value observed for the metric defined in ``TotalRequestCountMetric`` is divided by the number found for ``MonitoredRequestCountMetric`` to determine the percentage of successful requests that this SLO tracks.
1244
1262
 
1245
- :param bad_count_metric: If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
1246
- :param good_count_metric: If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
1263
+ :param bad_count_metric: If you want to count "bad requests" to determine the percentage of successful requests for this request-based SLO, specify the metric to use as "bad requests" in this structure.
1264
+ :param good_count_metric: If you want to count "good requests" to determine the percentage of successful requests for this request-based SLO, specify the metric to use as "good requests" in this structure.
1247
1265
 
1248
1266
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-monitoredrequestcountmetric.html
1249
1267
  :exampleMetadata: fixture=_generated
@@ -1317,7 +1335,7 @@ class CfnServiceLevelObjective(
1317
1335
  def bad_count_metric(
1318
1336
  self,
1319
1337
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1320
- '''If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
1338
+ '''If you want to count "bad requests" to determine the percentage of successful requests for this request-based SLO, specify the metric to use as "bad requests" in this structure.
1321
1339
 
1322
1340
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-monitoredrequestcountmetric.html#cfn-applicationsignals-servicelevelobjective-monitoredrequestcountmetric-badcountmetric
1323
1341
  '''
@@ -1328,7 +1346,7 @@ class CfnServiceLevelObjective(
1328
1346
  def good_count_metric(
1329
1347
  self,
1330
1348
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1331
- '''If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
1349
+ '''If you want to count "good requests" to determine the percentage of successful requests for this request-based SLO, specify the metric to use as "good requests" in this structure.
1332
1350
 
1333
1351
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-monitoredrequestcountmetric.html#cfn-applicationsignals-servicelevelobjective-monitoredrequestcountmetric-goodcountmetric
1334
1352
  '''
@@ -1369,11 +1387,11 @@ class CfnServiceLevelObjective(
1369
1387
  ) -> None:
1370
1388
  '''This structure contains the information about the metric that is used for a request-based SLO.
1371
1389
 
1372
- :param key_attributes: This is a string-to-string map that contains information about the type of object that this SLO is related to.
1373
- :param metric_type: If the SLO monitors either the LATENCY or AVAILABILITY metric that Application Signals collects, this field displays which of those metrics is used.
1374
- :param monitored_request_count_metric: This structure defines the metric that is used as the "good request" or "bad request" value for a request-based SLO. This value observed for the metric defined in ``TotalRequestCountMetric`` is divided by the number found for ``MonitoredRequestCountMetric`` to determine the percentage of successful requests that this SLO tracks.
1390
+ :param key_attributes: This is a string-to-string map that contains information about the type of object that this SLO is related to. It can include the following fields. - ``Type`` designates the type of object that this SLO is related to. - ``ResourceType`` specifies the type of the resource. This field is used only when the value of the ``Type`` field is ``Resource`` or ``AWS::Resource`` . - ``Name`` specifies the name of the object. This is used only if the value of the ``Type`` field is ``Service`` , ``RemoteService`` , or ``AWS::Service`` . - ``Identifier`` identifies the resource objects of this resource. This is used only if the value of the ``Type`` field is ``Resource`` or ``AWS::Resource`` . - ``Environment`` specifies the location where this object is hosted, or what it belongs to.
1391
+ :param metric_type: If the SLO monitors either the ``LATENCY`` or ``AVAILABILITY`` metric that Application Signals collects, this field displays which of those metrics is used.
1392
+ :param monitored_request_count_metric: Use this structure to define the metric that you want to use as the "good request" or "bad request" value for a request-based SLO. This value observed for the metric defined in ``TotalRequestCountMetric`` will be divided by the number found for ``MonitoredRequestCountMetric`` to determine the percentage of successful requests that this SLO tracks.
1375
1393
  :param operation_name: If the SLO monitors a specific operation of the service, this field displays that operation name.
1376
- :param total_request_count_metric: If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
1394
+ :param total_request_count_metric: This structure defines the metric that is used as the "total requests" number for a request-based SLO. The number observed for this metric is divided by the number of "good requests" or "bad requests" that is observed for the metric defined in ``MonitoredRequestCountMetric`` .
1377
1395
 
1378
1396
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html
1379
1397
  :exampleMetadata: fixture=_generated
@@ -1488,6 +1506,14 @@ class CfnServiceLevelObjective(
1488
1506
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]]:
1489
1507
  '''This is a string-to-string map that contains information about the type of object that this SLO is related to.
1490
1508
 
1509
+ It can include the following fields.
1510
+
1511
+ - ``Type`` designates the type of object that this SLO is related to.
1512
+ - ``ResourceType`` specifies the type of the resource. This field is used only when the value of the ``Type`` field is ``Resource`` or ``AWS::Resource`` .
1513
+ - ``Name`` specifies the name of the object. This is used only if the value of the ``Type`` field is ``Service`` , ``RemoteService`` , or ``AWS::Service`` .
1514
+ - ``Identifier`` identifies the resource objects of this resource. This is used only if the value of the ``Type`` field is ``Resource`` or ``AWS::Resource`` .
1515
+ - ``Environment`` specifies the location where this object is hosted, or what it belongs to.
1516
+
1491
1517
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-keyattributes
1492
1518
  '''
1493
1519
  result = self._values.get("key_attributes")
@@ -1495,7 +1521,7 @@ class CfnServiceLevelObjective(
1495
1521
 
1496
1522
  @builtins.property
1497
1523
  def metric_type(self) -> typing.Optional[builtins.str]:
1498
- '''If the SLO monitors either the LATENCY or AVAILABILITY metric that Application Signals collects, this field displays which of those metrics is used.
1524
+ '''If the SLO monitors either the ``LATENCY`` or ``AVAILABILITY`` metric that Application Signals collects, this field displays which of those metrics is used.
1499
1525
 
1500
1526
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-metrictype
1501
1527
  '''
@@ -1506,9 +1532,9 @@ class CfnServiceLevelObjective(
1506
1532
  def monitored_request_count_metric(
1507
1533
  self,
1508
1534
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MonitoredRequestCountMetricProperty"]]:
1509
- '''This structure defines the metric that is used as the "good request" or "bad request" value for a request-based SLO.
1535
+ '''Use this structure to define the metric that you want to use as the "good request" or "bad request" value for a request-based SLO.
1510
1536
 
1511
- This value observed for the metric defined in ``TotalRequestCountMetric`` is divided by the number found for ``MonitoredRequestCountMetric`` to determine the percentage of successful requests that this SLO tracks.
1537
+ This value observed for the metric defined in ``TotalRequestCountMetric`` will be divided by the number found for ``MonitoredRequestCountMetric`` to determine the percentage of successful requests that this SLO tracks.
1512
1538
 
1513
1539
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-monitoredrequestcountmetric
1514
1540
  '''
@@ -1528,7 +1554,9 @@ class CfnServiceLevelObjective(
1528
1554
  def total_request_count_metric(
1529
1555
  self,
1530
1556
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1531
- '''If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, this structure includes the information about that metric or expression.
1557
+ '''This structure defines the metric that is used as the "total requests" number for a request-based SLO.
1558
+
1559
+ The number observed for this metric is divided by the number of "good requests" or "bad requests" that is observed for the metric defined in ``MonitoredRequestCountMetric`` .
1532
1560
 
1533
1561
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-totalrequestcountmetric
1534
1562
  '''
@@ -1565,9 +1593,9 @@ class CfnServiceLevelObjective(
1565
1593
  ) -> None:
1566
1594
  '''This structure contains information about the performance metric that a request-based SLO monitors.
1567
1595
 
1568
- :param request_based_sli_metric: This structure contains the information about the metric that is used for a request-based SLO.
1596
+ :param request_based_sli_metric: A structure that contains information about the metric that the SLO monitors.
1569
1597
  :param comparison_operator: The arithmetic operation used when comparing the specified metric to the threshold.
1570
- :param metric_threshold: The value that the SLI metric is compared to.
1598
+ :param metric_threshold: This value is the threshold that the observed metric values of the SLI metric are compared to.
1571
1599
 
1572
1600
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html
1573
1601
  :exampleMetadata: fixture=_generated
@@ -1680,7 +1708,7 @@ class CfnServiceLevelObjective(
1680
1708
  def request_based_sli_metric(
1681
1709
  self,
1682
1710
  ) -> typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliMetricProperty"]:
1683
- '''This structure contains the information about the metric that is used for a request-based SLO.
1711
+ '''A structure that contains information about the metric that the SLO monitors.
1684
1712
 
1685
1713
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli-requestbasedslimetric
1686
1714
  '''
@@ -1699,7 +1727,7 @@ class CfnServiceLevelObjective(
1699
1727
 
1700
1728
  @builtins.property
1701
1729
  def metric_threshold(self) -> typing.Optional[jsii.Number]:
1702
- '''The value that the SLI metric is compared to.
1730
+ '''This value is the threshold that the observed metric values of the SLI metric are compared to.
1703
1731
 
1704
1732
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli-metricthreshold
1705
1733
  '''
@@ -2098,10 +2126,10 @@ class CfnServiceLevelObjective(
2098
2126
  jsii_struct_bases=[],
2099
2127
  name_mapping={
2100
2128
  "name": "name",
2101
- "sli": "sli",
2102
2129
  "description": "description",
2103
2130
  "goal": "goal",
2104
2131
  "request_based_sli": "requestBasedSli",
2132
+ "sli": "sli",
2105
2133
  "tags": "tags",
2106
2134
  },
2107
2135
  )
@@ -2110,19 +2138,19 @@ class CfnServiceLevelObjectiveProps:
2110
2138
  self,
2111
2139
  *,
2112
2140
  name: builtins.str,
2113
- sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
2114
2141
  description: typing.Optional[builtins.str] = None,
2115
2142
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2116
2143
  request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2144
+ sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2117
2145
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2118
2146
  ) -> None:
2119
2147
  '''Properties for defining a ``CfnServiceLevelObjective``.
2120
2148
 
2121
2149
  :param name: A name for this SLO.
2122
- :param sli: A structure containing information about the performance metric that this SLO monitors.
2123
2150
  :param description: An optional description for this SLO. Default: - "No description"
2124
2151
  :param goal: This structure contains the attributes that determine the goal of an SLO. This includes the time period for evaluation and the attainment threshold.
2125
- :param request_based_sli: This structure contains information about the performance metric that a request-based SLO monitors.
2152
+ :param request_based_sli: A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.
2153
+ :param sli: A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.
2126
2154
  :param tags: A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource permission. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
2127
2155
 
2128
2156
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html
@@ -2136,42 +2164,6 @@ class CfnServiceLevelObjectiveProps:
2136
2164
 
2137
2165
  cfn_service_level_objective_props = applicationsignals.CfnServiceLevelObjectiveProps(
2138
2166
  name="name",
2139
- sli=applicationsignals.CfnServiceLevelObjective.SliProperty(
2140
- comparison_operator="comparisonOperator",
2141
- metric_threshold=123,
2142
- sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
2143
- key_attributes={
2144
- "key_attributes_key": "keyAttributes"
2145
- },
2146
- metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
2147
- id="id",
2148
-
2149
- # the properties below are optional
2150
- account_id="accountId",
2151
- expression="expression",
2152
- metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
2153
- metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
2154
- dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
2155
- name="name",
2156
- value="value"
2157
- )],
2158
- metric_name="metricName",
2159
- namespace="namespace"
2160
- ),
2161
- period=123,
2162
- stat="stat",
2163
-
2164
- # the properties below are optional
2165
- unit="unit"
2166
- ),
2167
- return_data=False
2168
- )],
2169
- metric_type="metricType",
2170
- operation_name="operationName",
2171
- period_seconds=123,
2172
- statistic="statistic"
2173
- )
2174
- ),
2175
2167
 
2176
2168
  # the properties below are optional
2177
2169
  description="description",
@@ -2274,6 +2266,42 @@ class CfnServiceLevelObjectiveProps:
2274
2266
  comparison_operator="comparisonOperator",
2275
2267
  metric_threshold=123
2276
2268
  ),
2269
+ sli=applicationsignals.CfnServiceLevelObjective.SliProperty(
2270
+ comparison_operator="comparisonOperator",
2271
+ metric_threshold=123,
2272
+ sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
2273
+ key_attributes={
2274
+ "key_attributes_key": "keyAttributes"
2275
+ },
2276
+ metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
2277
+ id="id",
2278
+
2279
+ # the properties below are optional
2280
+ account_id="accountId",
2281
+ expression="expression",
2282
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
2283
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
2284
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
2285
+ name="name",
2286
+ value="value"
2287
+ )],
2288
+ metric_name="metricName",
2289
+ namespace="namespace"
2290
+ ),
2291
+ period=123,
2292
+ stat="stat",
2293
+
2294
+ # the properties below are optional
2295
+ unit="unit"
2296
+ ),
2297
+ return_data=False
2298
+ )],
2299
+ metric_type="metricType",
2300
+ operation_name="operationName",
2301
+ period_seconds=123,
2302
+ statistic="statistic"
2303
+ )
2304
+ ),
2277
2305
  tags=[CfnTag(
2278
2306
  key="key",
2279
2307
  value="value"
@@ -2283,14 +2311,13 @@ class CfnServiceLevelObjectiveProps:
2283
2311
  if __debug__:
2284
2312
  type_hints = typing.get_type_hints(_typecheckingstub__8a302456885343cc9ce5e0497feed773de1ef0f44e2934f97458bfdc5a810dee)
2285
2313
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2286
- check_type(argname="argument sli", value=sli, expected_type=type_hints["sli"])
2287
2314
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2288
2315
  check_type(argname="argument goal", value=goal, expected_type=type_hints["goal"])
2289
2316
  check_type(argname="argument request_based_sli", value=request_based_sli, expected_type=type_hints["request_based_sli"])
2317
+ check_type(argname="argument sli", value=sli, expected_type=type_hints["sli"])
2290
2318
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2291
2319
  self._values: typing.Dict[builtins.str, typing.Any] = {
2292
2320
  "name": name,
2293
- "sli": sli,
2294
2321
  }
2295
2322
  if description is not None:
2296
2323
  self._values["description"] = description
@@ -2298,6 +2325,8 @@ class CfnServiceLevelObjectiveProps:
2298
2325
  self._values["goal"] = goal
2299
2326
  if request_based_sli is not None:
2300
2327
  self._values["request_based_sli"] = request_based_sli
2328
+ if sli is not None:
2329
+ self._values["sli"] = sli
2301
2330
  if tags is not None:
2302
2331
  self._values["tags"] = tags
2303
2332
 
@@ -2311,18 +2340,6 @@ class CfnServiceLevelObjectiveProps:
2311
2340
  assert result is not None, "Required property 'name' is missing"
2312
2341
  return typing.cast(builtins.str, result)
2313
2342
 
2314
- @builtins.property
2315
- def sli(
2316
- self,
2317
- ) -> typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty]:
2318
- '''A structure containing information about the performance metric that this SLO monitors.
2319
-
2320
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-sli
2321
- '''
2322
- result = self._values.get("sli")
2323
- assert result is not None, "Required property 'sli' is missing"
2324
- return typing.cast(typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty], result)
2325
-
2326
2343
  @builtins.property
2327
2344
  def description(self) -> typing.Optional[builtins.str]:
2328
2345
  '''An optional description for this SLO.
@@ -2351,13 +2368,24 @@ class CfnServiceLevelObjectiveProps:
2351
2368
  def request_based_sli(
2352
2369
  self,
2353
2370
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.RequestBasedSliProperty]]:
2354
- '''This structure contains information about the performance metric that a request-based SLO monitors.
2371
+ '''A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.
2355
2372
 
2356
2373
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli
2357
2374
  '''
2358
2375
  result = self._values.get("request_based_sli")
2359
2376
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.RequestBasedSliProperty]], result)
2360
2377
 
2378
+ @builtins.property
2379
+ def sli(
2380
+ self,
2381
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty]]:
2382
+ '''A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.
2383
+
2384
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-sli
2385
+ '''
2386
+ result = self._values.get("sli")
2387
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty]], result)
2388
+
2361
2389
  @builtins.property
2362
2390
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2363
2391
  '''A list of key-value pairs to associate with the SLO.
@@ -2395,10 +2423,10 @@ def _typecheckingstub__8476d024be5b448cfb8f9ae2f80fa7f2083296f712cdb7cd12e69365d
2395
2423
  id: builtins.str,
2396
2424
  *,
2397
2425
  name: builtins.str,
2398
- sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
2399
2426
  description: typing.Optional[builtins.str] = None,
2400
2427
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2401
2428
  request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2429
+ sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2402
2430
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2403
2431
  ) -> None:
2404
2432
  """Type checking stubs"""
@@ -2422,12 +2450,6 @@ def _typecheckingstub__e7d1b42972f3b8a4430dca27e7ecab3fce56490ad1edcfabdc346becf
2422
2450
  """Type checking stubs"""
2423
2451
  pass
2424
2452
 
2425
- def _typecheckingstub__938ccf6991aba4b5875a4ca09dfcdb00a5c7e9a92bba0e785ddfbebb228037c3(
2426
- value: typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty],
2427
- ) -> None:
2428
- """Type checking stubs"""
2429
- pass
2430
-
2431
2453
  def _typecheckingstub__c6761a51565a6d9d6b93723803df5fa7735ec11aa5f14c9cc222e4e60eb54506(
2432
2454
  value: typing.Optional[builtins.str],
2433
2455
  ) -> None:
@@ -2446,6 +2468,12 @@ def _typecheckingstub__85c3a53f1420ec52267d0c5ef83b407de2a88d1eff567b79facf44748
2446
2468
  """Type checking stubs"""
2447
2469
  pass
2448
2470
 
2471
+ def _typecheckingstub__938ccf6991aba4b5875a4ca09dfcdb00a5c7e9a92bba0e785ddfbebb228037c3(
2472
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty]],
2473
+ ) -> None:
2474
+ """Type checking stubs"""
2475
+ pass
2476
+
2449
2477
  def _typecheckingstub__45578973503123093d3b0c8f845e2df0c9ad023b7df510f3a7b7ee7abcccd506(
2450
2478
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
2451
2479
  ) -> None:
@@ -2576,10 +2604,10 @@ def _typecheckingstub__fcb2d383c03844ff1706f4720c7bf04c5a00252d1e49f3ecb2c00c22b
2576
2604
  def _typecheckingstub__8a302456885343cc9ce5e0497feed773de1ef0f44e2934f97458bfdc5a810dee(
2577
2605
  *,
2578
2606
  name: builtins.str,
2579
- sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
2580
2607
  description: typing.Optional[builtins.str] = None,
2581
2608
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2582
2609
  request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2610
+ sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2583
2611
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2584
2612
  ) -> None:
2585
2613
  """Type checking stubs"""