aws-cdk-lib 2.156.0__py3-none-any.whl → 2.157.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 (53) hide show
  1. aws_cdk/__init__.py +26 -22
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.156.0.jsii.tgz → aws-cdk-lib@2.157.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +10 -75
  5. aws_cdk/aws_amplify/__init__.py +106 -0
  6. aws_cdk/aws_apigatewayv2/__init__.py +81 -13
  7. aws_cdk/aws_appintegrations/__init__.py +14 -14
  8. aws_cdk/aws_applicationsignals/__init__.py +750 -1
  9. aws_cdk/aws_appsync/__init__.py +50 -18
  10. aws_cdk/aws_autoscaling/__init__.py +6 -6
  11. aws_cdk/aws_backup/__init__.py +39 -0
  12. aws_cdk/aws_batch/__init__.py +41 -0
  13. aws_cdk/aws_bedrock/__init__.py +1513 -94
  14. aws_cdk/aws_chatbot/__init__.py +6 -6
  15. aws_cdk/aws_cloudformation/__init__.py +22 -22
  16. aws_cdk/aws_cloudfront/experimental/__init__.py +30 -3
  17. aws_cdk/aws_datasync/__init__.py +40 -29
  18. aws_cdk/aws_ec2/__init__.py +373 -49
  19. aws_cdk/aws_ecs/__init__.py +253 -87
  20. aws_cdk/aws_elasticloadbalancingv2/__init__.py +4 -4
  21. aws_cdk/aws_entityresolution/__init__.py +117 -4
  22. aws_cdk/aws_glue/__init__.py +0 -8
  23. aws_cdk/aws_groundstation/__init__.py +27 -16
  24. aws_cdk/aws_guardduty/__init__.py +26 -14
  25. aws_cdk/aws_iotfleetwise/__init__.py +108 -0
  26. aws_cdk/aws_lambda/__init__.py +147 -17
  27. aws_cdk/aws_lambda_nodejs/__init__.py +30 -3
  28. aws_cdk/aws_macie/__init__.py +4 -4
  29. aws_cdk/aws_medialive/__init__.py +348 -0
  30. aws_cdk/aws_mediapackagev2/__init__.py +38 -38
  31. aws_cdk/aws_neptune/__init__.py +14 -8
  32. aws_cdk/aws_opensearchservice/__init__.py +194 -0
  33. aws_cdk/aws_pcaconnectorscep/__init__.py +884 -0
  34. aws_cdk/aws_personalize/__init__.py +2 -2
  35. aws_cdk/aws_pipes/__init__.py +22 -22
  36. aws_cdk/aws_qbusiness/__init__.py +675 -6
  37. aws_cdk/aws_quicksight/__init__.py +3285 -0
  38. aws_cdk/aws_rds/__init__.py +18 -0
  39. aws_cdk/aws_sagemaker/__init__.py +1167 -0
  40. aws_cdk/aws_secretsmanager/__init__.py +2 -3
  41. aws_cdk/aws_securityhub/__init__.py +108 -103
  42. aws_cdk/aws_ses/__init__.py +31 -0
  43. aws_cdk/aws_sns/__init__.py +19 -13
  44. aws_cdk/aws_ssm/__init__.py +10 -6
  45. aws_cdk/aws_ssmquicksetup/__init__.py +967 -0
  46. aws_cdk/aws_stepfunctions_tasks/__init__.py +4 -4
  47. aws_cdk/triggers/__init__.py +30 -3
  48. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/METADATA +1 -1
  49. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/RECORD +53 -51
  50. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/LICENSE +0 -0
  51. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/NOTICE +0 -0
  52. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/WHEEL +0 -0
  53. {aws_cdk_lib-2.156.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/top_level.txt +0 -0
@@ -160,6 +160,90 @@ class CfnServiceLevelObjective(
160
160
  ),
161
161
  warning_threshold=123
162
162
  ),
163
+ request_based_sli=applicationsignals.CfnServiceLevelObjective.RequestBasedSliProperty(
164
+ request_based_sli_metric=applicationsignals.CfnServiceLevelObjective.RequestBasedSliMetricProperty(
165
+ key_attributes={
166
+ "key_attributes_key": "keyAttributes"
167
+ },
168
+ metric_type="metricType",
169
+ monitored_request_count_metric=applicationsignals.CfnServiceLevelObjective.MonitoredRequestCountMetricProperty(
170
+ bad_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
171
+ id="id",
172
+
173
+ # the properties below are optional
174
+ account_id="accountId",
175
+ expression="expression",
176
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
177
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
178
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
179
+ name="name",
180
+ value="value"
181
+ )],
182
+ metric_name="metricName",
183
+ namespace="namespace"
184
+ ),
185
+ period=123,
186
+ stat="stat",
187
+
188
+ # the properties below are optional
189
+ unit="unit"
190
+ ),
191
+ return_data=False
192
+ )],
193
+ good_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
194
+ id="id",
195
+
196
+ # the properties below are optional
197
+ account_id="accountId",
198
+ expression="expression",
199
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
200
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
201
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
202
+ name="name",
203
+ value="value"
204
+ )],
205
+ metric_name="metricName",
206
+ namespace="namespace"
207
+ ),
208
+ period=123,
209
+ stat="stat",
210
+
211
+ # the properties below are optional
212
+ unit="unit"
213
+ ),
214
+ return_data=False
215
+ )]
216
+ ),
217
+ operation_name="operationName",
218
+ total_request_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
219
+ id="id",
220
+
221
+ # the properties below are optional
222
+ account_id="accountId",
223
+ expression="expression",
224
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
225
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
226
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
227
+ name="name",
228
+ value="value"
229
+ )],
230
+ metric_name="metricName",
231
+ namespace="namespace"
232
+ ),
233
+ period=123,
234
+ stat="stat",
235
+
236
+ # the properties below are optional
237
+ unit="unit"
238
+ ),
239
+ return_data=False
240
+ )]
241
+ ),
242
+
243
+ # the properties below are optional
244
+ comparison_operator="comparisonOperator",
245
+ metric_threshold=123
246
+ ),
163
247
  tags=[CfnTag(
164
248
  key="key",
165
249
  value="value"
@@ -176,6 +260,7 @@ class CfnServiceLevelObjective(
176
260
  sli: typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.SliProperty", typing.Dict[builtins.str, typing.Any]]],
177
261
  description: typing.Optional[builtins.str] = None,
178
262
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.GoalProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
263
+ request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.RequestBasedSliProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
179
264
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
180
265
  ) -> None:
181
266
  '''
@@ -185,6 +270,7 @@ class CfnServiceLevelObjective(
185
270
  :param sli: A structure containing information about the performance metric that this SLO monitors.
186
271
  :param description: An optional description for this SLO. Default: - "No description"
187
272
  :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.
273
+ :param request_based_sli: This structure contains information about the performance metric that a request-based SLO monitors.
188
274
  :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.
189
275
  '''
190
276
  if __debug__:
@@ -192,7 +278,12 @@ class CfnServiceLevelObjective(
192
278
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
193
279
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
194
280
  props = CfnServiceLevelObjectiveProps(
195
- name=name, sli=sli, description=description, goal=goal, tags=tags
281
+ name=name,
282
+ sli=sli,
283
+ description=description,
284
+ goal=goal,
285
+ request_based_sli=request_based_sli,
286
+ tags=tags,
196
287
  )
197
288
 
198
289
  jsii.create(self.__class__, self, [scope, id, props])
@@ -245,6 +336,15 @@ class CfnServiceLevelObjective(
245
336
  '''
246
337
  return typing.cast(jsii.Number, jsii.get(self, "attrCreatedTime"))
247
338
 
339
+ @builtins.property
340
+ @jsii.member(jsii_name="attrEvaluationType")
341
+ def attr_evaluation_type(self) -> builtins.str:
342
+ '''Displays whether this is a period-based SLO or a request-based SLO.
343
+
344
+ :cloudformationAttribute: EvaluationType
345
+ '''
346
+ return typing.cast(builtins.str, jsii.get(self, "attrEvaluationType"))
347
+
248
348
  @builtins.property
249
349
  @jsii.member(jsii_name="attrLastUpdatedTime")
250
350
  def attr_last_updated_time(self) -> jsii.Number:
@@ -327,6 +427,24 @@ class CfnServiceLevelObjective(
327
427
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
328
428
  jsii.set(self, "goal", value) # pyright: ignore[reportArgumentType]
329
429
 
430
+ @builtins.property
431
+ @jsii.member(jsii_name="requestBasedSli")
432
+ def request_based_sli(
433
+ self,
434
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliProperty"]]:
435
+ '''This structure contains information about the performance metric that a request-based SLO monitors.'''
436
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliProperty"]], jsii.get(self, "requestBasedSli"))
437
+
438
+ @request_based_sli.setter
439
+ def request_based_sli(
440
+ self,
441
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliProperty"]],
442
+ ) -> None:
443
+ if __debug__:
444
+ type_hints = typing.get_type_hints(_typecheckingstub__85c3a53f1420ec52267d0c5ef83b407de2a88d1eff567b79facf44748e778f2f)
445
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
446
+ jsii.set(self, "requestBasedSli", value) # pyright: ignore[reportArgumentType]
447
+
330
448
  @builtins.property
331
449
  @jsii.member(jsii_name="tags")
332
450
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -1090,6 +1208,500 @@ class CfnServiceLevelObjective(
1090
1208
  k + "=" + repr(v) for k, v in self._values.items()
1091
1209
  )
1092
1210
 
1211
+ @jsii.data_type(
1212
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.MonitoredRequestCountMetricProperty",
1213
+ jsii_struct_bases=[],
1214
+ name_mapping={
1215
+ "bad_count_metric": "badCountMetric",
1216
+ "good_count_metric": "goodCountMetric",
1217
+ },
1218
+ )
1219
+ class MonitoredRequestCountMetricProperty:
1220
+ def __init__(
1221
+ self,
1222
+ *,
1223
+ bad_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1224
+ good_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1225
+ ) -> None:
1226
+ '''This structure defines the metric that is used as the "good request" or "bad request" value for a request-based SLO.
1227
+
1228
+ 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.
1229
+
1230
+ :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.
1231
+ :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.
1232
+
1233
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-monitoredrequestcountmetric.html
1234
+ :exampleMetadata: fixture=_generated
1235
+
1236
+ Example::
1237
+
1238
+ # The code below shows an example of how to instantiate this type.
1239
+ # The values are placeholders you should change.
1240
+ from aws_cdk import aws_applicationsignals as applicationsignals
1241
+
1242
+ monitored_request_count_metric_property = applicationsignals.CfnServiceLevelObjective.MonitoredRequestCountMetricProperty(
1243
+ bad_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1244
+ id="id",
1245
+
1246
+ # the properties below are optional
1247
+ account_id="accountId",
1248
+ expression="expression",
1249
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1250
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1251
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1252
+ name="name",
1253
+ value="value"
1254
+ )],
1255
+ metric_name="metricName",
1256
+ namespace="namespace"
1257
+ ),
1258
+ period=123,
1259
+ stat="stat",
1260
+
1261
+ # the properties below are optional
1262
+ unit="unit"
1263
+ ),
1264
+ return_data=False
1265
+ )],
1266
+ good_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1267
+ id="id",
1268
+
1269
+ # the properties below are optional
1270
+ account_id="accountId",
1271
+ expression="expression",
1272
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1273
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1274
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1275
+ name="name",
1276
+ value="value"
1277
+ )],
1278
+ metric_name="metricName",
1279
+ namespace="namespace"
1280
+ ),
1281
+ period=123,
1282
+ stat="stat",
1283
+
1284
+ # the properties below are optional
1285
+ unit="unit"
1286
+ ),
1287
+ return_data=False
1288
+ )]
1289
+ )
1290
+ '''
1291
+ if __debug__:
1292
+ type_hints = typing.get_type_hints(_typecheckingstub__0e098e20f2cfc04332a5fbb15ca2b6cd689368d77d87938dc8d7467b0f3963de)
1293
+ check_type(argname="argument bad_count_metric", value=bad_count_metric, expected_type=type_hints["bad_count_metric"])
1294
+ check_type(argname="argument good_count_metric", value=good_count_metric, expected_type=type_hints["good_count_metric"])
1295
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1296
+ if bad_count_metric is not None:
1297
+ self._values["bad_count_metric"] = bad_count_metric
1298
+ if good_count_metric is not None:
1299
+ self._values["good_count_metric"] = good_count_metric
1300
+
1301
+ @builtins.property
1302
+ def bad_count_metric(
1303
+ self,
1304
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1305
+ '''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.
1306
+
1307
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-monitoredrequestcountmetric.html#cfn-applicationsignals-servicelevelobjective-monitoredrequestcountmetric-badcountmetric
1308
+ '''
1309
+ result = self._values.get("bad_count_metric")
1310
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]], result)
1311
+
1312
+ @builtins.property
1313
+ def good_count_metric(
1314
+ self,
1315
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1316
+ '''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.
1317
+
1318
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-monitoredrequestcountmetric.html#cfn-applicationsignals-servicelevelobjective-monitoredrequestcountmetric-goodcountmetric
1319
+ '''
1320
+ result = self._values.get("good_count_metric")
1321
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]], result)
1322
+
1323
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1324
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1325
+
1326
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1327
+ return not (rhs == self)
1328
+
1329
+ def __repr__(self) -> str:
1330
+ return "MonitoredRequestCountMetricProperty(%s)" % ", ".join(
1331
+ k + "=" + repr(v) for k, v in self._values.items()
1332
+ )
1333
+
1334
+ @jsii.data_type(
1335
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.RequestBasedSliMetricProperty",
1336
+ jsii_struct_bases=[],
1337
+ name_mapping={
1338
+ "key_attributes": "keyAttributes",
1339
+ "metric_type": "metricType",
1340
+ "monitored_request_count_metric": "monitoredRequestCountMetric",
1341
+ "operation_name": "operationName",
1342
+ "total_request_count_metric": "totalRequestCountMetric",
1343
+ },
1344
+ )
1345
+ class RequestBasedSliMetricProperty:
1346
+ def __init__(
1347
+ self,
1348
+ *,
1349
+ key_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]] = None,
1350
+ metric_type: typing.Optional[builtins.str] = None,
1351
+ monitored_request_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MonitoredRequestCountMetricProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1352
+ operation_name: typing.Optional[builtins.str] = None,
1353
+ total_request_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1354
+ ) -> None:
1355
+ '''This structure contains the information about the metric that is used for a request-based SLO.
1356
+
1357
+ :param key_attributes: This is a string-to-string map that contains information about the type of object that this SLO is related to.
1358
+ :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.
1359
+ :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.
1360
+ :param operation_name: If the SLO monitors a specific operation of the service, this field displays that operation name.
1361
+ :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.
1362
+
1363
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html
1364
+ :exampleMetadata: fixture=_generated
1365
+
1366
+ Example::
1367
+
1368
+ # The code below shows an example of how to instantiate this type.
1369
+ # The values are placeholders you should change.
1370
+ from aws_cdk import aws_applicationsignals as applicationsignals
1371
+
1372
+ request_based_sli_metric_property = applicationsignals.CfnServiceLevelObjective.RequestBasedSliMetricProperty(
1373
+ key_attributes={
1374
+ "key_attributes_key": "keyAttributes"
1375
+ },
1376
+ metric_type="metricType",
1377
+ monitored_request_count_metric=applicationsignals.CfnServiceLevelObjective.MonitoredRequestCountMetricProperty(
1378
+ bad_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1379
+ id="id",
1380
+
1381
+ # the properties below are optional
1382
+ account_id="accountId",
1383
+ expression="expression",
1384
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1385
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1386
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1387
+ name="name",
1388
+ value="value"
1389
+ )],
1390
+ metric_name="metricName",
1391
+ namespace="namespace"
1392
+ ),
1393
+ period=123,
1394
+ stat="stat",
1395
+
1396
+ # the properties below are optional
1397
+ unit="unit"
1398
+ ),
1399
+ return_data=False
1400
+ )],
1401
+ good_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1402
+ id="id",
1403
+
1404
+ # the properties below are optional
1405
+ account_id="accountId",
1406
+ expression="expression",
1407
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1408
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1409
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1410
+ name="name",
1411
+ value="value"
1412
+ )],
1413
+ metric_name="metricName",
1414
+ namespace="namespace"
1415
+ ),
1416
+ period=123,
1417
+ stat="stat",
1418
+
1419
+ # the properties below are optional
1420
+ unit="unit"
1421
+ ),
1422
+ return_data=False
1423
+ )]
1424
+ ),
1425
+ operation_name="operationName",
1426
+ total_request_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1427
+ id="id",
1428
+
1429
+ # the properties below are optional
1430
+ account_id="accountId",
1431
+ expression="expression",
1432
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1433
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1434
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1435
+ name="name",
1436
+ value="value"
1437
+ )],
1438
+ metric_name="metricName",
1439
+ namespace="namespace"
1440
+ ),
1441
+ period=123,
1442
+ stat="stat",
1443
+
1444
+ # the properties below are optional
1445
+ unit="unit"
1446
+ ),
1447
+ return_data=False
1448
+ )]
1449
+ )
1450
+ '''
1451
+ if __debug__:
1452
+ type_hints = typing.get_type_hints(_typecheckingstub__2e0bf3c4e354ab94132efc9fd8fa57b0d903b7020ec1b6c4d1c1388698e31a7d)
1453
+ check_type(argname="argument key_attributes", value=key_attributes, expected_type=type_hints["key_attributes"])
1454
+ check_type(argname="argument metric_type", value=metric_type, expected_type=type_hints["metric_type"])
1455
+ check_type(argname="argument monitored_request_count_metric", value=monitored_request_count_metric, expected_type=type_hints["monitored_request_count_metric"])
1456
+ check_type(argname="argument operation_name", value=operation_name, expected_type=type_hints["operation_name"])
1457
+ check_type(argname="argument total_request_count_metric", value=total_request_count_metric, expected_type=type_hints["total_request_count_metric"])
1458
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1459
+ if key_attributes is not None:
1460
+ self._values["key_attributes"] = key_attributes
1461
+ if metric_type is not None:
1462
+ self._values["metric_type"] = metric_type
1463
+ if monitored_request_count_metric is not None:
1464
+ self._values["monitored_request_count_metric"] = monitored_request_count_metric
1465
+ if operation_name is not None:
1466
+ self._values["operation_name"] = operation_name
1467
+ if total_request_count_metric is not None:
1468
+ self._values["total_request_count_metric"] = total_request_count_metric
1469
+
1470
+ @builtins.property
1471
+ def key_attributes(
1472
+ self,
1473
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]]:
1474
+ '''This is a string-to-string map that contains information about the type of object that this SLO is related to.
1475
+
1476
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-keyattributes
1477
+ '''
1478
+ result = self._values.get("key_attributes")
1479
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]], result)
1480
+
1481
+ @builtins.property
1482
+ def metric_type(self) -> typing.Optional[builtins.str]:
1483
+ '''If the SLO monitors either the LATENCY or AVAILABILITY metric that Application Signals collects, this field displays which of those metrics is used.
1484
+
1485
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-metrictype
1486
+ '''
1487
+ result = self._values.get("metric_type")
1488
+ return typing.cast(typing.Optional[builtins.str], result)
1489
+
1490
+ @builtins.property
1491
+ def monitored_request_count_metric(
1492
+ self,
1493
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MonitoredRequestCountMetricProperty"]]:
1494
+ '''This structure defines the metric that is used as the "good request" or "bad request" value for a request-based SLO.
1495
+
1496
+ 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.
1497
+
1498
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-monitoredrequestcountmetric
1499
+ '''
1500
+ result = self._values.get("monitored_request_count_metric")
1501
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MonitoredRequestCountMetricProperty"]], result)
1502
+
1503
+ @builtins.property
1504
+ def operation_name(self) -> typing.Optional[builtins.str]:
1505
+ '''If the SLO monitors a specific operation of the service, this field displays that operation name.
1506
+
1507
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-operationname
1508
+ '''
1509
+ result = self._values.get("operation_name")
1510
+ return typing.cast(typing.Optional[builtins.str], result)
1511
+
1512
+ @builtins.property
1513
+ def total_request_count_metric(
1514
+ self,
1515
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1516
+ '''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.
1517
+
1518
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedslimetric.html#cfn-applicationsignals-servicelevelobjective-requestbasedslimetric-totalrequestcountmetric
1519
+ '''
1520
+ result = self._values.get("total_request_count_metric")
1521
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]], result)
1522
+
1523
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1524
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1525
+
1526
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1527
+ return not (rhs == self)
1528
+
1529
+ def __repr__(self) -> str:
1530
+ return "RequestBasedSliMetricProperty(%s)" % ", ".join(
1531
+ k + "=" + repr(v) for k, v in self._values.items()
1532
+ )
1533
+
1534
+ @jsii.data_type(
1535
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.RequestBasedSliProperty",
1536
+ jsii_struct_bases=[],
1537
+ name_mapping={
1538
+ "request_based_sli_metric": "requestBasedSliMetric",
1539
+ "comparison_operator": "comparisonOperator",
1540
+ "metric_threshold": "metricThreshold",
1541
+ },
1542
+ )
1543
+ class RequestBasedSliProperty:
1544
+ def __init__(
1545
+ self,
1546
+ *,
1547
+ request_based_sli_metric: typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.RequestBasedSliMetricProperty", typing.Dict[builtins.str, typing.Any]]],
1548
+ comparison_operator: typing.Optional[builtins.str] = None,
1549
+ metric_threshold: typing.Optional[jsii.Number] = None,
1550
+ ) -> None:
1551
+ '''This structure contains information about the performance metric that a request-based SLO monitors.
1552
+
1553
+ :param request_based_sli_metric: This structure contains the information about the metric that is used for a request-based SLO.
1554
+ :param comparison_operator: The arithmetic operation used when comparing the specified metric to the threshold.
1555
+ :param metric_threshold: The value that the SLI metric is compared to.
1556
+
1557
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html
1558
+ :exampleMetadata: fixture=_generated
1559
+
1560
+ Example::
1561
+
1562
+ # The code below shows an example of how to instantiate this type.
1563
+ # The values are placeholders you should change.
1564
+ from aws_cdk import aws_applicationsignals as applicationsignals
1565
+
1566
+ request_based_sli_property = applicationsignals.CfnServiceLevelObjective.RequestBasedSliProperty(
1567
+ request_based_sli_metric=applicationsignals.CfnServiceLevelObjective.RequestBasedSliMetricProperty(
1568
+ key_attributes={
1569
+ "key_attributes_key": "keyAttributes"
1570
+ },
1571
+ metric_type="metricType",
1572
+ monitored_request_count_metric=applicationsignals.CfnServiceLevelObjective.MonitoredRequestCountMetricProperty(
1573
+ bad_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1574
+ id="id",
1575
+
1576
+ # the properties below are optional
1577
+ account_id="accountId",
1578
+ expression="expression",
1579
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1580
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1581
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1582
+ name="name",
1583
+ value="value"
1584
+ )],
1585
+ metric_name="metricName",
1586
+ namespace="namespace"
1587
+ ),
1588
+ period=123,
1589
+ stat="stat",
1590
+
1591
+ # the properties below are optional
1592
+ unit="unit"
1593
+ ),
1594
+ return_data=False
1595
+ )],
1596
+ good_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1597
+ id="id",
1598
+
1599
+ # the properties below are optional
1600
+ account_id="accountId",
1601
+ expression="expression",
1602
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1603
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1604
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1605
+ name="name",
1606
+ value="value"
1607
+ )],
1608
+ metric_name="metricName",
1609
+ namespace="namespace"
1610
+ ),
1611
+ period=123,
1612
+ stat="stat",
1613
+
1614
+ # the properties below are optional
1615
+ unit="unit"
1616
+ ),
1617
+ return_data=False
1618
+ )]
1619
+ ),
1620
+ operation_name="operationName",
1621
+ total_request_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1622
+ id="id",
1623
+
1624
+ # the properties below are optional
1625
+ account_id="accountId",
1626
+ expression="expression",
1627
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1628
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1629
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1630
+ name="name",
1631
+ value="value"
1632
+ )],
1633
+ metric_name="metricName",
1634
+ namespace="namespace"
1635
+ ),
1636
+ period=123,
1637
+ stat="stat",
1638
+
1639
+ # the properties below are optional
1640
+ unit="unit"
1641
+ ),
1642
+ return_data=False
1643
+ )]
1644
+ ),
1645
+
1646
+ # the properties below are optional
1647
+ comparison_operator="comparisonOperator",
1648
+ metric_threshold=123
1649
+ )
1650
+ '''
1651
+ if __debug__:
1652
+ type_hints = typing.get_type_hints(_typecheckingstub__387849408a1ac74889f2dec7244d223e0b97c35e19e4915f6a024667214f0cbb)
1653
+ check_type(argname="argument request_based_sli_metric", value=request_based_sli_metric, expected_type=type_hints["request_based_sli_metric"])
1654
+ check_type(argname="argument comparison_operator", value=comparison_operator, expected_type=type_hints["comparison_operator"])
1655
+ check_type(argname="argument metric_threshold", value=metric_threshold, expected_type=type_hints["metric_threshold"])
1656
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1657
+ "request_based_sli_metric": request_based_sli_metric,
1658
+ }
1659
+ if comparison_operator is not None:
1660
+ self._values["comparison_operator"] = comparison_operator
1661
+ if metric_threshold is not None:
1662
+ self._values["metric_threshold"] = metric_threshold
1663
+
1664
+ @builtins.property
1665
+ def request_based_sli_metric(
1666
+ self,
1667
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliMetricProperty"]:
1668
+ '''This structure contains the information about the metric that is used for a request-based SLO.
1669
+
1670
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli-requestbasedslimetric
1671
+ '''
1672
+ result = self._values.get("request_based_sli_metric")
1673
+ assert result is not None, "Required property 'request_based_sli_metric' is missing"
1674
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RequestBasedSliMetricProperty"], result)
1675
+
1676
+ @builtins.property
1677
+ def comparison_operator(self) -> typing.Optional[builtins.str]:
1678
+ '''The arithmetic operation used when comparing the specified metric to the threshold.
1679
+
1680
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli-comparisonoperator
1681
+ '''
1682
+ result = self._values.get("comparison_operator")
1683
+ return typing.cast(typing.Optional[builtins.str], result)
1684
+
1685
+ @builtins.property
1686
+ def metric_threshold(self) -> typing.Optional[jsii.Number]:
1687
+ '''The value that the SLI metric is compared to.
1688
+
1689
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-requestbasedsli.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli-metricthreshold
1690
+ '''
1691
+ result = self._values.get("metric_threshold")
1692
+ return typing.cast(typing.Optional[jsii.Number], result)
1693
+
1694
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1695
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1696
+
1697
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1698
+ return not (rhs == self)
1699
+
1700
+ def __repr__(self) -> str:
1701
+ return "RequestBasedSliProperty(%s)" % ", ".join(
1702
+ k + "=" + repr(v) for k, v in self._values.items()
1703
+ )
1704
+
1093
1705
  @jsii.data_type(
1094
1706
  jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty",
1095
1707
  jsii_struct_bases=[],
@@ -1474,6 +2086,7 @@ class CfnServiceLevelObjective(
1474
2086
  "sli": "sli",
1475
2087
  "description": "description",
1476
2088
  "goal": "goal",
2089
+ "request_based_sli": "requestBasedSli",
1477
2090
  "tags": "tags",
1478
2091
  },
1479
2092
  )
@@ -1485,6 +2098,7 @@ class CfnServiceLevelObjectiveProps:
1485
2098
  sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
1486
2099
  description: typing.Optional[builtins.str] = None,
1487
2100
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2101
+ request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1488
2102
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1489
2103
  ) -> None:
1490
2104
  '''Properties for defining a ``CfnServiceLevelObjective``.
@@ -1493,6 +2107,7 @@ class CfnServiceLevelObjectiveProps:
1493
2107
  :param sli: A structure containing information about the performance metric that this SLO monitors.
1494
2108
  :param description: An optional description for this SLO. Default: - "No description"
1495
2109
  :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.
2110
+ :param request_based_sli: This structure contains information about the performance metric that a request-based SLO monitors.
1496
2111
  :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.
1497
2112
 
1498
2113
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html
@@ -1560,6 +2175,90 @@ class CfnServiceLevelObjectiveProps:
1560
2175
  ),
1561
2176
  warning_threshold=123
1562
2177
  ),
2178
+ request_based_sli=applicationsignals.CfnServiceLevelObjective.RequestBasedSliProperty(
2179
+ request_based_sli_metric=applicationsignals.CfnServiceLevelObjective.RequestBasedSliMetricProperty(
2180
+ key_attributes={
2181
+ "key_attributes_key": "keyAttributes"
2182
+ },
2183
+ metric_type="metricType",
2184
+ monitored_request_count_metric=applicationsignals.CfnServiceLevelObjective.MonitoredRequestCountMetricProperty(
2185
+ bad_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
2186
+ id="id",
2187
+
2188
+ # the properties below are optional
2189
+ account_id="accountId",
2190
+ expression="expression",
2191
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
2192
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
2193
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
2194
+ name="name",
2195
+ value="value"
2196
+ )],
2197
+ metric_name="metricName",
2198
+ namespace="namespace"
2199
+ ),
2200
+ period=123,
2201
+ stat="stat",
2202
+
2203
+ # the properties below are optional
2204
+ unit="unit"
2205
+ ),
2206
+ return_data=False
2207
+ )],
2208
+ good_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
2209
+ id="id",
2210
+
2211
+ # the properties below are optional
2212
+ account_id="accountId",
2213
+ expression="expression",
2214
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
2215
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
2216
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
2217
+ name="name",
2218
+ value="value"
2219
+ )],
2220
+ metric_name="metricName",
2221
+ namespace="namespace"
2222
+ ),
2223
+ period=123,
2224
+ stat="stat",
2225
+
2226
+ # the properties below are optional
2227
+ unit="unit"
2228
+ ),
2229
+ return_data=False
2230
+ )]
2231
+ ),
2232
+ operation_name="operationName",
2233
+ total_request_count_metric=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
2234
+ id="id",
2235
+
2236
+ # the properties below are optional
2237
+ account_id="accountId",
2238
+ expression="expression",
2239
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
2240
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
2241
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
2242
+ name="name",
2243
+ value="value"
2244
+ )],
2245
+ metric_name="metricName",
2246
+ namespace="namespace"
2247
+ ),
2248
+ period=123,
2249
+ stat="stat",
2250
+
2251
+ # the properties below are optional
2252
+ unit="unit"
2253
+ ),
2254
+ return_data=False
2255
+ )]
2256
+ ),
2257
+
2258
+ # the properties below are optional
2259
+ comparison_operator="comparisonOperator",
2260
+ metric_threshold=123
2261
+ ),
1563
2262
  tags=[CfnTag(
1564
2263
  key="key",
1565
2264
  value="value"
@@ -1572,6 +2271,7 @@ class CfnServiceLevelObjectiveProps:
1572
2271
  check_type(argname="argument sli", value=sli, expected_type=type_hints["sli"])
1573
2272
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
1574
2273
  check_type(argname="argument goal", value=goal, expected_type=type_hints["goal"])
2274
+ check_type(argname="argument request_based_sli", value=request_based_sli, expected_type=type_hints["request_based_sli"])
1575
2275
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1576
2276
  self._values: typing.Dict[builtins.str, typing.Any] = {
1577
2277
  "name": name,
@@ -1581,6 +2281,8 @@ class CfnServiceLevelObjectiveProps:
1581
2281
  self._values["description"] = description
1582
2282
  if goal is not None:
1583
2283
  self._values["goal"] = goal
2284
+ if request_based_sli is not None:
2285
+ self._values["request_based_sli"] = request_based_sli
1584
2286
  if tags is not None:
1585
2287
  self._values["tags"] = tags
1586
2288
 
@@ -1630,6 +2332,17 @@ class CfnServiceLevelObjectiveProps:
1630
2332
  result = self._values.get("goal")
1631
2333
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.GoalProperty]], result)
1632
2334
 
2335
+ @builtins.property
2336
+ def request_based_sli(
2337
+ self,
2338
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.RequestBasedSliProperty]]:
2339
+ '''This structure contains information about the performance metric that a request-based SLO monitors.
2340
+
2341
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-requestbasedsli
2342
+ '''
2343
+ result = self._values.get("request_based_sli")
2344
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.RequestBasedSliProperty]], result)
2345
+
1633
2346
  @builtins.property
1634
2347
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1635
2348
  '''A list of key-value pairs to associate with the SLO.
@@ -1670,6 +2383,7 @@ def _typecheckingstub__8476d024be5b448cfb8f9ae2f80fa7f2083296f712cdb7cd12e69365d
1670
2383
  sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
1671
2384
  description: typing.Optional[builtins.str] = None,
1672
2385
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2386
+ request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1673
2387
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1674
2388
  ) -> None:
1675
2389
  """Type checking stubs"""
@@ -1711,6 +2425,12 @@ def _typecheckingstub__f72f1f3f286714a7cb6611be91fc84bc135d11974635585192dc6a6bb
1711
2425
  """Type checking stubs"""
1712
2426
  pass
1713
2427
 
2428
+ def _typecheckingstub__85c3a53f1420ec52267d0c5ef83b407de2a88d1eff567b79facf44748e778f2f(
2429
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.RequestBasedSliProperty]],
2430
+ ) -> None:
2431
+ """Type checking stubs"""
2432
+ pass
2433
+
1714
2434
  def _typecheckingstub__45578973503123093d3b0c8f845e2df0c9ad023b7df510f3a7b7ee7abcccd506(
1715
2435
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
1716
2436
  ) -> None:
@@ -1781,6 +2501,34 @@ def _typecheckingstub__9112cc9d5e83260e285e14202026cd0c682ccbbd611252cb22444f31a
1781
2501
  """Type checking stubs"""
1782
2502
  pass
1783
2503
 
2504
+ def _typecheckingstub__0e098e20f2cfc04332a5fbb15ca2b6cd689368d77d87938dc8d7467b0f3963de(
2505
+ *,
2506
+ bad_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2507
+ good_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2508
+ ) -> None:
2509
+ """Type checking stubs"""
2510
+ pass
2511
+
2512
+ def _typecheckingstub__2e0bf3c4e354ab94132efc9fd8fa57b0d903b7020ec1b6c4d1c1388698e31a7d(
2513
+ *,
2514
+ key_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]] = None,
2515
+ metric_type: typing.Optional[builtins.str] = None,
2516
+ monitored_request_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MonitoredRequestCountMetricProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2517
+ operation_name: typing.Optional[builtins.str] = None,
2518
+ total_request_count_metric: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
2519
+ ) -> None:
2520
+ """Type checking stubs"""
2521
+ pass
2522
+
2523
+ def _typecheckingstub__387849408a1ac74889f2dec7244d223e0b97c35e19e4915f6a024667214f0cbb(
2524
+ *,
2525
+ request_based_sli_metric: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliMetricProperty, typing.Dict[builtins.str, typing.Any]]],
2526
+ comparison_operator: typing.Optional[builtins.str] = None,
2527
+ metric_threshold: typing.Optional[jsii.Number] = None,
2528
+ ) -> None:
2529
+ """Type checking stubs"""
2530
+ pass
2531
+
1784
2532
  def _typecheckingstub__3ea5efcc7f9d7eb11cc8de5d96525adb6a7e2bfc30446b0fcdb3c7cd640413c1(
1785
2533
  *,
1786
2534
  duration: jsii.Number,
@@ -1816,6 +2564,7 @@ def _typecheckingstub__8a302456885343cc9ce5e0497feed773de1ef0f44e2934f97458bfdc5
1816
2564
  sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
1817
2565
  description: typing.Optional[builtins.str] = None,
1818
2566
  goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2567
+ request_based_sli: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RequestBasedSliProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1819
2568
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1820
2569
  ) -> None:
1821
2570
  """Type checking stubs"""