aws-cdk-lib 2.146.0__py3-none-any.whl → 2.147.1__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 (68) hide show
  1. aws_cdk/__init__.py +11 -12
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.146.0.jsii.tgz → aws-cdk-lib@2.147.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +32 -12
  5. aws_cdk/aws_apigatewayv2/__init__.py +48 -2
  6. aws_cdk/aws_apigatewayv2_integrations/__init__.py +142 -4
  7. aws_cdk/aws_appconfig/__init__.py +8 -4
  8. aws_cdk/aws_applicationsignals/__init__.py +1766 -0
  9. aws_cdk/aws_auditmanager/__init__.py +5 -1
  10. aws_cdk/aws_autoscaling/__init__.py +65 -20
  11. aws_cdk/aws_batch/__init__.py +215 -0
  12. aws_cdk/aws_bedrock/__init__.py +272 -103
  13. aws_cdk/aws_cloudformation/__init__.py +5 -11
  14. aws_cdk/aws_cloudfront/__init__.py +10 -3
  15. aws_cdk/aws_cloudtrail/__init__.py +56 -2
  16. aws_cdk/aws_codebuild/__init__.py +62 -29
  17. aws_cdk/aws_codepipeline/__init__.py +10 -5
  18. aws_cdk/aws_datazone/__init__.py +80 -68
  19. aws_cdk/aws_deadline/__init__.py +603 -17
  20. aws_cdk/aws_ec2/__init__.py +237 -112
  21. aws_cdk/aws_ecs/__init__.py +20 -18
  22. aws_cdk/aws_eks/__init__.py +15 -9
  23. aws_cdk/aws_elasticloadbalancingv2/__init__.py +11 -5
  24. aws_cdk/aws_emrserverless/__init__.py +5 -5
  25. aws_cdk/aws_events/__init__.py +36 -16
  26. aws_cdk/aws_fsx/__init__.py +126 -21
  27. aws_cdk/aws_globalaccelerator/__init__.py +2 -1
  28. aws_cdk/aws_globalaccelerator_endpoints/__init__.py +35 -4
  29. aws_cdk/aws_glue/__init__.py +26 -0
  30. aws_cdk/aws_grafana/__init__.py +4 -4
  31. aws_cdk/aws_groundstation/__init__.py +55 -35
  32. aws_cdk/aws_guardduty/__init__.py +826 -0
  33. aws_cdk/aws_iot/__init__.py +3 -3
  34. aws_cdk/aws_lambda/__init__.py +7 -5
  35. aws_cdk/aws_lightsail/__init__.py +1 -1
  36. aws_cdk/aws_location/__init__.py +10 -11
  37. aws_cdk/aws_mediapackagev2/__init__.py +38 -20
  38. aws_cdk/aws_mediatailor/__init__.py +2 -2
  39. aws_cdk/aws_msk/__init__.py +4 -4
  40. aws_cdk/aws_mwaa/__init__.py +16 -8
  41. aws_cdk/aws_nimblestudio/__init__.py +9 -9
  42. aws_cdk/aws_opensearchservice/__init__.py +5 -4
  43. aws_cdk/aws_opsworks/__init__.py +3 -3
  44. aws_cdk/aws_osis/__init__.py +33 -4
  45. aws_cdk/aws_pipes/__init__.py +97 -45
  46. aws_cdk/aws_quicksight/__init__.py +23 -21
  47. aws_cdk/aws_rds/__init__.py +43 -11
  48. aws_cdk/aws_refactorspaces/__init__.py +3 -3
  49. aws_cdk/aws_rolesanywhere/__init__.py +21 -14
  50. aws_cdk/aws_route53/__init__.py +3 -3
  51. aws_cdk/aws_sagemaker/__init__.py +5 -2
  52. aws_cdk/aws_securityhub/__init__.py +163 -78
  53. aws_cdk/aws_securitylake/__init__.py +7 -5
  54. aws_cdk/aws_ses/__init__.py +117 -0
  55. aws_cdk/aws_simspaceweaver/__init__.py +2 -2
  56. aws_cdk/aws_sns/__init__.py +6 -4
  57. aws_cdk/aws_sqs/__init__.py +3 -3
  58. aws_cdk/aws_stepfunctions/__init__.py +51 -28
  59. aws_cdk/aws_stepfunctions_tasks/__init__.py +56 -2
  60. aws_cdk/aws_transfer/__init__.py +8 -2
  61. aws_cdk/aws_wafv2/__init__.py +10 -10
  62. aws_cdk/aws_workspacesweb/__init__.py +8 -8
  63. {aws_cdk_lib-2.146.0.dist-info → aws_cdk_lib-2.147.1.dist-info}/METADATA +1 -1
  64. {aws_cdk_lib-2.146.0.dist-info → aws_cdk_lib-2.147.1.dist-info}/RECORD +68 -67
  65. {aws_cdk_lib-2.146.0.dist-info → aws_cdk_lib-2.147.1.dist-info}/LICENSE +0 -0
  66. {aws_cdk_lib-2.146.0.dist-info → aws_cdk_lib-2.147.1.dist-info}/NOTICE +0 -0
  67. {aws_cdk_lib-2.146.0.dist-info → aws_cdk_lib-2.147.1.dist-info}/WHEEL +0 -0
  68. {aws_cdk_lib-2.146.0.dist-info → aws_cdk_lib-2.147.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1766 @@
1
+ '''
2
+ # AWS::ApplicationSignals Construct Library
3
+
4
+ <!--BEGIN STABILITY BANNER-->---
5
+
6
+
7
+ ![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)
8
+
9
+ > All classes with the `Cfn` prefix in this module ([CFN Resources](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) are always stable and safe to use.
10
+
11
+ ---
12
+ <!--END STABILITY BANNER-->
13
+
14
+ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.
15
+
16
+ ```python
17
+ import aws_cdk.aws_applicationsignals as applicationsignals
18
+ ```
19
+
20
+ <!--BEGIN CFNONLY DISCLAIMER-->
21
+
22
+ There are no official hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet. Here are some suggestions on how to proceed:
23
+
24
+ * Search [Construct Hub for ApplicationSignals construct libraries](https://constructs.dev/search?q=applicationsignals)
25
+ * Use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, in the same way you would use [the CloudFormation AWS::ApplicationSignals resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationSignals.html) directly.
26
+
27
+ <!--BEGIN CFNONLY DISCLAIMER-->
28
+
29
+ There are no hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet.
30
+ However, you can still use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, and use this service exactly as you would using CloudFormation directly.
31
+
32
+ For more information on the resources and properties available for this service, see the [CloudFormation documentation for AWS::ApplicationSignals](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ApplicationSignals.html).
33
+
34
+ (Read the [CDK Contributing Guide](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and submit an RFC if you are interested in contributing to this construct library.)
35
+
36
+ <!--END CFNONLY DISCLAIMER-->
37
+ '''
38
+ from pkgutil import extend_path
39
+ __path__ = extend_path(__path__, __name__)
40
+
41
+ import abc
42
+ import builtins
43
+ import datetime
44
+ import enum
45
+ import typing
46
+
47
+ import jsii
48
+ import publication
49
+ import typing_extensions
50
+
51
+ from typeguard import check_type
52
+
53
+ from .._jsii import *
54
+
55
+ import constructs as _constructs_77d1e7e8
56
+ from .. import (
57
+ CfnResource as _CfnResource_9df397a6,
58
+ CfnTag as _CfnTag_f6864754,
59
+ IInspectable as _IInspectable_c2943556,
60
+ IResolvable as _IResolvable_da3f097b,
61
+ ITaggableV2 as _ITaggableV2_4e6798f8,
62
+ TagManager as _TagManager_0a598cb3,
63
+ TreeInspector as _TreeInspector_488e0dd5,
64
+ )
65
+
66
+
67
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
68
+ class CfnServiceLevelObjective(
69
+ _CfnResource_9df397a6,
70
+ metaclass=jsii.JSIIMeta,
71
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective",
72
+ ):
73
+ '''Resource Type definition for AWS::ApplicationSignals::ServiceLevelObjective.
74
+
75
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html
76
+ :cloudformationResource: AWS::ApplicationSignals::ServiceLevelObjective
77
+ :exampleMetadata: fixture=_generated
78
+
79
+ Example::
80
+
81
+ # The code below shows an example of how to instantiate this type.
82
+ # The values are placeholders you should change.
83
+ from aws_cdk import aws_applicationsignals as applicationsignals
84
+
85
+ cfn_service_level_objective = applicationsignals.CfnServiceLevelObjective(self, "MyCfnServiceLevelObjective",
86
+ name="name",
87
+ sli=applicationsignals.CfnServiceLevelObjective.SliProperty(
88
+ comparison_operator="comparisonOperator",
89
+ metric_threshold=123,
90
+ sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
91
+ key_attributes={
92
+ "key_attributes_key": "keyAttributes"
93
+ },
94
+ metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
95
+ id="id",
96
+
97
+ # the properties below are optional
98
+ account_id="accountId",
99
+ expression="expression",
100
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
101
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
102
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
103
+ name="name",
104
+ value="value"
105
+ )],
106
+ metric_name="metricName",
107
+ namespace="namespace"
108
+ ),
109
+ period=123,
110
+ stat="stat",
111
+
112
+ # the properties below are optional
113
+ unit="unit"
114
+ ),
115
+ return_data=False
116
+ )],
117
+ metric_type="metricType",
118
+ operation_name="operationName",
119
+ period_seconds=123,
120
+ statistic="statistic"
121
+ )
122
+ ),
123
+
124
+ # the properties below are optional
125
+ description="description",
126
+ goal=applicationsignals.CfnServiceLevelObjective.GoalProperty(
127
+ attainment_goal=123,
128
+ interval=applicationsignals.CfnServiceLevelObjective.IntervalProperty(
129
+ calendar_interval=applicationsignals.CfnServiceLevelObjective.CalendarIntervalProperty(
130
+ duration=123,
131
+ duration_unit="durationUnit",
132
+ start_time=123
133
+ ),
134
+ rolling_interval=applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty(
135
+ duration=123,
136
+ duration_unit="durationUnit"
137
+ )
138
+ ),
139
+ warning_threshold=123
140
+ ),
141
+ tags=[CfnTag(
142
+ key="key",
143
+ value="value"
144
+ )]
145
+ )
146
+ '''
147
+
148
+ def __init__(
149
+ self,
150
+ scope: _constructs_77d1e7e8.Construct,
151
+ id: builtins.str,
152
+ *,
153
+ name: builtins.str,
154
+ sli: typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.SliProperty", typing.Dict[builtins.str, typing.Any]]],
155
+ description: typing.Optional[builtins.str] = None,
156
+ goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.GoalProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
157
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
158
+ ) -> None:
159
+ '''
160
+ :param scope: Scope in which this resource is defined.
161
+ :param id: Construct identifier for this resource (unique in its scope).
162
+ :param name: The name of this SLO.
163
+ :param sli: This structure contains information about the performance metric that an SLO monitors.
164
+ :param description: An optional description for this SLO. Default is 'No description' Default: - "No description"
165
+ :param goal: A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold.
166
+ :param tags: The list of tag keys and values associated with the resource you specified.
167
+ '''
168
+ if __debug__:
169
+ type_hints = typing.get_type_hints(_typecheckingstub__8476d024be5b448cfb8f9ae2f80fa7f2083296f712cdb7cd12e69365dd7adba1)
170
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
171
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
172
+ props = CfnServiceLevelObjectiveProps(
173
+ name=name, sli=sli, description=description, goal=goal, tags=tags
174
+ )
175
+
176
+ jsii.create(self.__class__, self, [scope, id, props])
177
+
178
+ @jsii.member(jsii_name="inspect")
179
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
180
+ '''Examines the CloudFormation resource and discloses attributes.
181
+
182
+ :param inspector: tree inspector to collect and process attributes.
183
+ '''
184
+ if __debug__:
185
+ type_hints = typing.get_type_hints(_typecheckingstub__71593741af71e952b8edcbf3d4a100ccac3627fda6dcff137c7d24df9820e5bb)
186
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
187
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
188
+
189
+ @jsii.member(jsii_name="renderProperties")
190
+ def _render_properties(
191
+ self,
192
+ props: typing.Mapping[builtins.str, typing.Any],
193
+ ) -> typing.Mapping[builtins.str, typing.Any]:
194
+ '''
195
+ :param props: -
196
+ '''
197
+ if __debug__:
198
+ type_hints = typing.get_type_hints(_typecheckingstub__922e83db8165cd861bbc31a25dc4a9c84e6441a3e72c10857eb4ba5ae99314cd)
199
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
200
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
201
+
202
+ @jsii.python.classproperty
203
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
204
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
205
+ '''The CloudFormation resource type name for this resource class.'''
206
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
207
+
208
+ @builtins.property
209
+ @jsii.member(jsii_name="attrArn")
210
+ def attr_arn(self) -> builtins.str:
211
+ '''The ARN of this SLO.
212
+
213
+ :cloudformationAttribute: Arn
214
+ '''
215
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
216
+
217
+ @builtins.property
218
+ @jsii.member(jsii_name="attrCreatedTime")
219
+ def attr_created_time(self) -> jsii.Number:
220
+ '''Epoch time in seconds of the time that this SLO was created.
221
+
222
+ :cloudformationAttribute: CreatedTime
223
+ '''
224
+ return typing.cast(jsii.Number, jsii.get(self, "attrCreatedTime"))
225
+
226
+ @builtins.property
227
+ @jsii.member(jsii_name="attrLastUpdatedTime")
228
+ def attr_last_updated_time(self) -> jsii.Number:
229
+ '''Epoch time in seconds of the time that this SLO was most recently updated.
230
+
231
+ :cloudformationAttribute: LastUpdatedTime
232
+ '''
233
+ return typing.cast(jsii.Number, jsii.get(self, "attrLastUpdatedTime"))
234
+
235
+ @builtins.property
236
+ @jsii.member(jsii_name="cdkTagManager")
237
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
238
+ '''Tag Manager which manages the tags for this resource.'''
239
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
240
+
241
+ @builtins.property
242
+ @jsii.member(jsii_name="cfnProperties")
243
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
244
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
245
+
246
+ @builtins.property
247
+ @jsii.member(jsii_name="name")
248
+ def name(self) -> builtins.str:
249
+ '''The name of this SLO.'''
250
+ return typing.cast(builtins.str, jsii.get(self, "name"))
251
+
252
+ @name.setter
253
+ def name(self, value: builtins.str) -> None:
254
+ if __debug__:
255
+ type_hints = typing.get_type_hints(_typecheckingstub__e7d1b42972f3b8a4430dca27e7ecab3fce56490ad1edcfabdc346becf5f4c998)
256
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
257
+ jsii.set(self, "name", value)
258
+
259
+ @builtins.property
260
+ @jsii.member(jsii_name="sli")
261
+ def sli(
262
+ self,
263
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"]:
264
+ '''This structure contains information about the performance metric that an SLO monitors.'''
265
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"], jsii.get(self, "sli"))
266
+
267
+ @sli.setter
268
+ def sli(
269
+ self,
270
+ value: typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliProperty"],
271
+ ) -> None:
272
+ if __debug__:
273
+ type_hints = typing.get_type_hints(_typecheckingstub__938ccf6991aba4b5875a4ca09dfcdb00a5c7e9a92bba0e785ddfbebb228037c3)
274
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
275
+ jsii.set(self, "sli", value)
276
+
277
+ @builtins.property
278
+ @jsii.member(jsii_name="description")
279
+ def description(self) -> typing.Optional[builtins.str]:
280
+ '''An optional description for this SLO.'''
281
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "description"))
282
+
283
+ @description.setter
284
+ def description(self, value: typing.Optional[builtins.str]) -> None:
285
+ if __debug__:
286
+ type_hints = typing.get_type_hints(_typecheckingstub__c6761a51565a6d9d6b93723803df5fa7735ec11aa5f14c9cc222e4e60eb54506)
287
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
288
+ jsii.set(self, "description", value)
289
+
290
+ @builtins.property
291
+ @jsii.member(jsii_name="goal")
292
+ def goal(
293
+ self,
294
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.GoalProperty"]]:
295
+ '''A structure that contains the attributes that determine the goal of the SLO.'''
296
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.GoalProperty"]], jsii.get(self, "goal"))
297
+
298
+ @goal.setter
299
+ def goal(
300
+ self,
301
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.GoalProperty"]],
302
+ ) -> None:
303
+ if __debug__:
304
+ type_hints = typing.get_type_hints(_typecheckingstub__f72f1f3f286714a7cb6611be91fc84bc135d11974635585192dc6a6bbfe2f51e)
305
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
306
+ jsii.set(self, "goal", value)
307
+
308
+ @builtins.property
309
+ @jsii.member(jsii_name="tags")
310
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
311
+ '''The list of tag keys and values associated with the resource you specified.'''
312
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
313
+
314
+ @tags.setter
315
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
316
+ if __debug__:
317
+ type_hints = typing.get_type_hints(_typecheckingstub__45578973503123093d3b0c8f845e2df0c9ad023b7df510f3a7b7ee7abcccd506)
318
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
319
+ jsii.set(self, "tags", value)
320
+
321
+ @jsii.data_type(
322
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.CalendarIntervalProperty",
323
+ jsii_struct_bases=[],
324
+ name_mapping={
325
+ "duration": "duration",
326
+ "duration_unit": "durationUnit",
327
+ "start_time": "startTime",
328
+ },
329
+ )
330
+ class CalendarIntervalProperty:
331
+ def __init__(
332
+ self,
333
+ *,
334
+ duration: jsii.Number,
335
+ duration_unit: builtins.str,
336
+ start_time: jsii.Number,
337
+ ) -> None:
338
+ '''If the interval for this service level objective is a calendar interval, this structure contains the interval specifications.
339
+
340
+ :param duration: Specifies the duration of each calendar interval. For example, if ``Duration`` is 1 and ``DurationUnit`` is ``MONTH``, each interval is one month, aligned with the calendar.
341
+ :param duration_unit: Specifies the calendar interval unit.
342
+ :param start_time: Epoch time in seconds you want the first interval to start. Be sure to choose a time that configures the intervals the way that you want. For example, if you want weekly intervals starting on Mondays at 6 a.m., be sure to specify a start time that is a Monday at 6 a.m. As soon as one calendar interval ends, another automatically begins.
343
+
344
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-calendarinterval.html
345
+ :exampleMetadata: fixture=_generated
346
+
347
+ Example::
348
+
349
+ # The code below shows an example of how to instantiate this type.
350
+ # The values are placeholders you should change.
351
+ from aws_cdk import aws_applicationsignals as applicationsignals
352
+
353
+ calendar_interval_property = applicationsignals.CfnServiceLevelObjective.CalendarIntervalProperty(
354
+ duration=123,
355
+ duration_unit="durationUnit",
356
+ start_time=123
357
+ )
358
+ '''
359
+ if __debug__:
360
+ type_hints = typing.get_type_hints(_typecheckingstub__bb256cb6878f107649da0ff6e94d5a653ad8e2c683a434ba458525e129419535)
361
+ check_type(argname="argument duration", value=duration, expected_type=type_hints["duration"])
362
+ check_type(argname="argument duration_unit", value=duration_unit, expected_type=type_hints["duration_unit"])
363
+ check_type(argname="argument start_time", value=start_time, expected_type=type_hints["start_time"])
364
+ self._values: typing.Dict[builtins.str, typing.Any] = {
365
+ "duration": duration,
366
+ "duration_unit": duration_unit,
367
+ "start_time": start_time,
368
+ }
369
+
370
+ @builtins.property
371
+ def duration(self) -> jsii.Number:
372
+ '''Specifies the duration of each calendar interval.
373
+
374
+ For example, if ``Duration`` is 1 and ``DurationUnit`` is ``MONTH``, each interval is one month, aligned with the calendar.
375
+
376
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-calendarinterval.html#cfn-applicationsignals-servicelevelobjective-calendarinterval-duration
377
+ '''
378
+ result = self._values.get("duration")
379
+ assert result is not None, "Required property 'duration' is missing"
380
+ return typing.cast(jsii.Number, result)
381
+
382
+ @builtins.property
383
+ def duration_unit(self) -> builtins.str:
384
+ '''Specifies the calendar interval unit.
385
+
386
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-calendarinterval.html#cfn-applicationsignals-servicelevelobjective-calendarinterval-durationunit
387
+ '''
388
+ result = self._values.get("duration_unit")
389
+ assert result is not None, "Required property 'duration_unit' is missing"
390
+ return typing.cast(builtins.str, result)
391
+
392
+ @builtins.property
393
+ def start_time(self) -> jsii.Number:
394
+ '''Epoch time in seconds you want the first interval to start.
395
+
396
+ Be sure to choose a time that configures the intervals the way that you want. For example, if you want weekly intervals starting on Mondays at 6 a.m., be sure to specify a start time that is a Monday at 6 a.m.
397
+ As soon as one calendar interval ends, another automatically begins.
398
+
399
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-calendarinterval.html#cfn-applicationsignals-servicelevelobjective-calendarinterval-starttime
400
+ '''
401
+ result = self._values.get("start_time")
402
+ assert result is not None, "Required property 'start_time' is missing"
403
+ return typing.cast(jsii.Number, result)
404
+
405
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
406
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
407
+
408
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
409
+ return not (rhs == self)
410
+
411
+ def __repr__(self) -> str:
412
+ return "CalendarIntervalProperty(%s)" % ", ".join(
413
+ k + "=" + repr(v) for k, v in self._values.items()
414
+ )
415
+
416
+ @jsii.data_type(
417
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.DimensionProperty",
418
+ jsii_struct_bases=[],
419
+ name_mapping={"name": "name", "value": "value"},
420
+ )
421
+ class DimensionProperty:
422
+ def __init__(self, *, name: builtins.str, value: builtins.str) -> None:
423
+ '''A dimension is a name/value pair that is part of the identity of a metric.
424
+
425
+ Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish ``InstanceId`` as a dimension name, and the actual instance ID as the value for that dimension. You can assign up to 30 dimensions to a metric.
426
+
427
+ :param name: The name of the dimension. Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). ASCII control characters are not supported as part of dimension names.
428
+ :param value: The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values
429
+
430
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-dimension.html
431
+ :exampleMetadata: fixture=_generated
432
+
433
+ Example::
434
+
435
+ # The code below shows an example of how to instantiate this type.
436
+ # The values are placeholders you should change.
437
+ from aws_cdk import aws_applicationsignals as applicationsignals
438
+
439
+ dimension_property = applicationsignals.CfnServiceLevelObjective.DimensionProperty(
440
+ name="name",
441
+ value="value"
442
+ )
443
+ '''
444
+ if __debug__:
445
+ type_hints = typing.get_type_hints(_typecheckingstub__9e8e6b95cda618658802fc7b704459e5b42989b01fe12f60c38caea77f865804)
446
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
447
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
448
+ self._values: typing.Dict[builtins.str, typing.Any] = {
449
+ "name": name,
450
+ "value": value,
451
+ }
452
+
453
+ @builtins.property
454
+ def name(self) -> builtins.str:
455
+ '''The name of the dimension.
456
+
457
+ Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). ASCII control characters are not supported as part of dimension names.
458
+
459
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-dimension.html#cfn-applicationsignals-servicelevelobjective-dimension-name
460
+ '''
461
+ result = self._values.get("name")
462
+ assert result is not None, "Required property 'name' is missing"
463
+ return typing.cast(builtins.str, result)
464
+
465
+ @builtins.property
466
+ def value(self) -> builtins.str:
467
+ '''The value of the dimension.
468
+
469
+ Dimension values must contain only ASCII characters and must include at least one non-whitespace character. ASCII control characters are not supported as part of dimension values
470
+
471
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-dimension.html#cfn-applicationsignals-servicelevelobjective-dimension-value
472
+ '''
473
+ result = self._values.get("value")
474
+ assert result is not None, "Required property 'value' is missing"
475
+ return typing.cast(builtins.str, result)
476
+
477
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
478
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
479
+
480
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
481
+ return not (rhs == self)
482
+
483
+ def __repr__(self) -> str:
484
+ return "DimensionProperty(%s)" % ", ".join(
485
+ k + "=" + repr(v) for k, v in self._values.items()
486
+ )
487
+
488
+ @jsii.data_type(
489
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.GoalProperty",
490
+ jsii_struct_bases=[],
491
+ name_mapping={
492
+ "attainment_goal": "attainmentGoal",
493
+ "interval": "interval",
494
+ "warning_threshold": "warningThreshold",
495
+ },
496
+ )
497
+ class GoalProperty:
498
+ def __init__(
499
+ self,
500
+ *,
501
+ attainment_goal: typing.Optional[jsii.Number] = None,
502
+ interval: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.IntervalProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
503
+ warning_threshold: typing.Optional[jsii.Number] = None,
504
+ ) -> None:
505
+ '''A structure that contains the attributes that determine the goal of the SLO.
506
+
507
+ This includes the time period for evaluation and the attainment threshold.
508
+
509
+ :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.
510
+ :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.
511
+ :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.
512
+
513
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-goal.html
514
+ :exampleMetadata: fixture=_generated
515
+
516
+ Example::
517
+
518
+ # The code below shows an example of how to instantiate this type.
519
+ # The values are placeholders you should change.
520
+ from aws_cdk import aws_applicationsignals as applicationsignals
521
+
522
+ goal_property = applicationsignals.CfnServiceLevelObjective.GoalProperty(
523
+ attainment_goal=123,
524
+ interval=applicationsignals.CfnServiceLevelObjective.IntervalProperty(
525
+ calendar_interval=applicationsignals.CfnServiceLevelObjective.CalendarIntervalProperty(
526
+ duration=123,
527
+ duration_unit="durationUnit",
528
+ start_time=123
529
+ ),
530
+ rolling_interval=applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty(
531
+ duration=123,
532
+ duration_unit="durationUnit"
533
+ )
534
+ ),
535
+ warning_threshold=123
536
+ )
537
+ '''
538
+ if __debug__:
539
+ type_hints = typing.get_type_hints(_typecheckingstub__cfc131adfea10ec8f2150d53534dabca2819dd847e258cdb22dd5820d87c65e9)
540
+ check_type(argname="argument attainment_goal", value=attainment_goal, expected_type=type_hints["attainment_goal"])
541
+ check_type(argname="argument interval", value=interval, expected_type=type_hints["interval"])
542
+ check_type(argname="argument warning_threshold", value=warning_threshold, expected_type=type_hints["warning_threshold"])
543
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
544
+ if attainment_goal is not None:
545
+ self._values["attainment_goal"] = attainment_goal
546
+ if interval is not None:
547
+ self._values["interval"] = interval
548
+ if warning_threshold is not None:
549
+ self._values["warning_threshold"] = warning_threshold
550
+
551
+ @builtins.property
552
+ def attainment_goal(self) -> typing.Optional[jsii.Number]:
553
+ '''The threshold that determines if the goal is being met.
554
+
555
+ 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.
556
+ If you omit this parameter, 99 is used to represent 99% as the attainment goal.
557
+
558
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-goal.html#cfn-applicationsignals-servicelevelobjective-goal-attainmentgoal
559
+ '''
560
+ result = self._values.get("attainment_goal")
561
+ return typing.cast(typing.Optional[jsii.Number], result)
562
+
563
+ @builtins.property
564
+ def interval(
565
+ self,
566
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.IntervalProperty"]]:
567
+ '''The time period used to evaluate the SLO.
568
+
569
+ It can be either a calendar interval or rolling interval.
570
+ If you omit this parameter, a rolling interval of 7 days is used.
571
+
572
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-goal.html#cfn-applicationsignals-servicelevelobjective-goal-interval
573
+ '''
574
+ result = self._values.get("interval")
575
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.IntervalProperty"]], result)
576
+
577
+ @builtins.property
578
+ def warning_threshold(self) -> typing.Optional[jsii.Number]:
579
+ '''The percentage of remaining budget over total budget that you want to get warnings for.
580
+
581
+ If you omit this parameter, the default of 50.0 is used.
582
+
583
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-goal.html#cfn-applicationsignals-servicelevelobjective-goal-warningthreshold
584
+ '''
585
+ result = self._values.get("warning_threshold")
586
+ return typing.cast(typing.Optional[jsii.Number], result)
587
+
588
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
589
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
590
+
591
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
592
+ return not (rhs == self)
593
+
594
+ def __repr__(self) -> str:
595
+ return "GoalProperty(%s)" % ", ".join(
596
+ k + "=" + repr(v) for k, v in self._values.items()
597
+ )
598
+
599
+ @jsii.data_type(
600
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.IntervalProperty",
601
+ jsii_struct_bases=[],
602
+ name_mapping={
603
+ "calendar_interval": "calendarInterval",
604
+ "rolling_interval": "rollingInterval",
605
+ },
606
+ )
607
+ class IntervalProperty:
608
+ def __init__(
609
+ self,
610
+ *,
611
+ calendar_interval: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.CalendarIntervalProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
612
+ rolling_interval: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.RollingIntervalProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
613
+ ) -> None:
614
+ '''The time period used to evaluate the SLO.
615
+
616
+ It can be either a calendar interval or rolling interval.
617
+ If you omit this parameter, a rolling interval of 7 days is used.
618
+
619
+ :param calendar_interval: If the interval for this service level objective is a calendar interval, this structure contains the interval specifications.
620
+ :param rolling_interval: If the interval is a calendar interval, this structure contains the interval specifications.
621
+
622
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-interval.html
623
+ :exampleMetadata: fixture=_generated
624
+
625
+ Example::
626
+
627
+ # The code below shows an example of how to instantiate this type.
628
+ # The values are placeholders you should change.
629
+ from aws_cdk import aws_applicationsignals as applicationsignals
630
+
631
+ interval_property = applicationsignals.CfnServiceLevelObjective.IntervalProperty(
632
+ calendar_interval=applicationsignals.CfnServiceLevelObjective.CalendarIntervalProperty(
633
+ duration=123,
634
+ duration_unit="durationUnit",
635
+ start_time=123
636
+ ),
637
+ rolling_interval=applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty(
638
+ duration=123,
639
+ duration_unit="durationUnit"
640
+ )
641
+ )
642
+ '''
643
+ if __debug__:
644
+ type_hints = typing.get_type_hints(_typecheckingstub__30cac26980883e0f67d516f4ddebfd0c363ae3aeb6eb60f4ae3e55228be79fc8)
645
+ check_type(argname="argument calendar_interval", value=calendar_interval, expected_type=type_hints["calendar_interval"])
646
+ check_type(argname="argument rolling_interval", value=rolling_interval, expected_type=type_hints["rolling_interval"])
647
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
648
+ if calendar_interval is not None:
649
+ self._values["calendar_interval"] = calendar_interval
650
+ if rolling_interval is not None:
651
+ self._values["rolling_interval"] = rolling_interval
652
+
653
+ @builtins.property
654
+ def calendar_interval(
655
+ self,
656
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.CalendarIntervalProperty"]]:
657
+ '''If the interval for this service level objective is a calendar interval, this structure contains the interval specifications.
658
+
659
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-interval.html#cfn-applicationsignals-servicelevelobjective-interval-calendarinterval
660
+ '''
661
+ result = self._values.get("calendar_interval")
662
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.CalendarIntervalProperty"]], result)
663
+
664
+ @builtins.property
665
+ def rolling_interval(
666
+ self,
667
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RollingIntervalProperty"]]:
668
+ '''If the interval is a calendar interval, this structure contains the interval specifications.
669
+
670
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-interval.html#cfn-applicationsignals-servicelevelobjective-interval-rollinginterval
671
+ '''
672
+ result = self._values.get("rolling_interval")
673
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.RollingIntervalProperty"]], result)
674
+
675
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
676
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
677
+
678
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
679
+ return not (rhs == self)
680
+
681
+ def __repr__(self) -> str:
682
+ return "IntervalProperty(%s)" % ", ".join(
683
+ k + "=" + repr(v) for k, v in self._values.items()
684
+ )
685
+
686
+ @jsii.data_type(
687
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty",
688
+ jsii_struct_bases=[],
689
+ name_mapping={
690
+ "id": "id",
691
+ "account_id": "accountId",
692
+ "expression": "expression",
693
+ "metric_stat": "metricStat",
694
+ "return_data": "returnData",
695
+ },
696
+ )
697
+ class MetricDataQueryProperty:
698
+ def __init__(
699
+ self,
700
+ *,
701
+ id: builtins.str,
702
+ account_id: typing.Optional[builtins.str] = None,
703
+ expression: typing.Optional[builtins.str] = None,
704
+ metric_stat: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MetricStatProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
705
+ return_data: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
706
+ ) -> None:
707
+ '''Use this structure to define a metric or metric math expression that you want to use as for a service level objective.
708
+
709
+ Each ``MetricDataQuery`` in the ``MetricDataQueries`` array specifies either a metric to retrieve, or a metric math expression to be performed on retrieved metrics. A single ``MetricDataQueries`` array can include as many as 20 ``MetricDataQuery`` structures in the array. The 20 structures can include as many as 10 structures that contain a ``MetricStat`` parameter to retrieve a metric, and as many as 10 structures that contain the ``Expression`` parameter to perform a math expression. Of those Expression structures, exactly one must have true as the value for ``ReturnData``. The result of this expression used for the SLO.
710
+
711
+ :param id: A short name used to tie this object to the results in the response.
712
+ :param account_id: The ID of the account where the metrics are located, if this is a cross-account alarm.
713
+ :param expression: The math expression to be performed on the returned data.
714
+ :param metric_stat: A metric to be used directly for the SLO, or to be used in the math expression that will be used for the SLO. Within one MetricDataQuery object, you must specify either Expression or MetricStat but not both.
715
+ :param return_data: This option indicates whether to return the timestamps and raw data values of this metric.
716
+
717
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricdataquery.html
718
+ :exampleMetadata: fixture=_generated
719
+
720
+ Example::
721
+
722
+ # The code below shows an example of how to instantiate this type.
723
+ # The values are placeholders you should change.
724
+ from aws_cdk import aws_applicationsignals as applicationsignals
725
+
726
+ metric_data_query_property = applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
727
+ id="id",
728
+
729
+ # the properties below are optional
730
+ account_id="accountId",
731
+ expression="expression",
732
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
733
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
734
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
735
+ name="name",
736
+ value="value"
737
+ )],
738
+ metric_name="metricName",
739
+ namespace="namespace"
740
+ ),
741
+ period=123,
742
+ stat="stat",
743
+
744
+ # the properties below are optional
745
+ unit="unit"
746
+ ),
747
+ return_data=False
748
+ )
749
+ '''
750
+ if __debug__:
751
+ type_hints = typing.get_type_hints(_typecheckingstub__c04fce2d6f659e54bcf95336fd734b9dda8c1a66b044793f92533f4b2b9ac20c)
752
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
753
+ check_type(argname="argument account_id", value=account_id, expected_type=type_hints["account_id"])
754
+ check_type(argname="argument expression", value=expression, expected_type=type_hints["expression"])
755
+ check_type(argname="argument metric_stat", value=metric_stat, expected_type=type_hints["metric_stat"])
756
+ check_type(argname="argument return_data", value=return_data, expected_type=type_hints["return_data"])
757
+ self._values: typing.Dict[builtins.str, typing.Any] = {
758
+ "id": id,
759
+ }
760
+ if account_id is not None:
761
+ self._values["account_id"] = account_id
762
+ if expression is not None:
763
+ self._values["expression"] = expression
764
+ if metric_stat is not None:
765
+ self._values["metric_stat"] = metric_stat
766
+ if return_data is not None:
767
+ self._values["return_data"] = return_data
768
+
769
+ @builtins.property
770
+ def id(self) -> builtins.str:
771
+ '''A short name used to tie this object to the results in the response.
772
+
773
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricdataquery.html#cfn-applicationsignals-servicelevelobjective-metricdataquery-id
774
+ '''
775
+ result = self._values.get("id")
776
+ assert result is not None, "Required property 'id' is missing"
777
+ return typing.cast(builtins.str, result)
778
+
779
+ @builtins.property
780
+ def account_id(self) -> typing.Optional[builtins.str]:
781
+ '''The ID of the account where the metrics are located, if this is a cross-account alarm.
782
+
783
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricdataquery.html#cfn-applicationsignals-servicelevelobjective-metricdataquery-accountid
784
+ '''
785
+ result = self._values.get("account_id")
786
+ return typing.cast(typing.Optional[builtins.str], result)
787
+
788
+ @builtins.property
789
+ def expression(self) -> typing.Optional[builtins.str]:
790
+ '''The math expression to be performed on the returned data.
791
+
792
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricdataquery.html#cfn-applicationsignals-servicelevelobjective-metricdataquery-expression
793
+ '''
794
+ result = self._values.get("expression")
795
+ return typing.cast(typing.Optional[builtins.str], result)
796
+
797
+ @builtins.property
798
+ def metric_stat(
799
+ self,
800
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricStatProperty"]]:
801
+ '''A metric to be used directly for the SLO, or to be used in the math expression that will be used for the SLO.
802
+
803
+ Within one MetricDataQuery object, you must specify either Expression or MetricStat but not both.
804
+
805
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricdataquery.html#cfn-applicationsignals-servicelevelobjective-metricdataquery-metricstat
806
+ '''
807
+ result = self._values.get("metric_stat")
808
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricStatProperty"]], result)
809
+
810
+ @builtins.property
811
+ def return_data(
812
+ self,
813
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
814
+ '''This option indicates whether to return the timestamps and raw data values of this metric.
815
+
816
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricdataquery.html#cfn-applicationsignals-servicelevelobjective-metricdataquery-returndata
817
+ '''
818
+ result = self._values.get("return_data")
819
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
820
+
821
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
822
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
823
+
824
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
825
+ return not (rhs == self)
826
+
827
+ def __repr__(self) -> str:
828
+ return "MetricDataQueryProperty(%s)" % ", ".join(
829
+ k + "=" + repr(v) for k, v in self._values.items()
830
+ )
831
+
832
+ @jsii.data_type(
833
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.MetricProperty",
834
+ jsii_struct_bases=[],
835
+ name_mapping={
836
+ "dimensions": "dimensions",
837
+ "metric_name": "metricName",
838
+ "namespace": "namespace",
839
+ },
840
+ )
841
+ class MetricProperty:
842
+ def __init__(
843
+ self,
844
+ *,
845
+ dimensions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.DimensionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
846
+ metric_name: typing.Optional[builtins.str] = None,
847
+ namespace: typing.Optional[builtins.str] = None,
848
+ ) -> None:
849
+ '''This structure defines the metric used for a service level indicator, including the metric name, namespace, and dimensions.
850
+
851
+ :param dimensions: An array of one or more dimensions to use to define the metric that you want to use.
852
+ :param metric_name: The name of the metric to use.
853
+ :param namespace: The namespace of the metric.
854
+
855
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metric.html
856
+ :exampleMetadata: fixture=_generated
857
+
858
+ Example::
859
+
860
+ # The code below shows an example of how to instantiate this type.
861
+ # The values are placeholders you should change.
862
+ from aws_cdk import aws_applicationsignals as applicationsignals
863
+
864
+ metric_property = applicationsignals.CfnServiceLevelObjective.MetricProperty(
865
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
866
+ name="name",
867
+ value="value"
868
+ )],
869
+ metric_name="metricName",
870
+ namespace="namespace"
871
+ )
872
+ '''
873
+ if __debug__:
874
+ type_hints = typing.get_type_hints(_typecheckingstub__94c3dac51fe1c8fc13cb0f314cd26fbce563c808cc2f39fe4ee2a01d00f47555)
875
+ check_type(argname="argument dimensions", value=dimensions, expected_type=type_hints["dimensions"])
876
+ check_type(argname="argument metric_name", value=metric_name, expected_type=type_hints["metric_name"])
877
+ check_type(argname="argument namespace", value=namespace, expected_type=type_hints["namespace"])
878
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
879
+ if dimensions is not None:
880
+ self._values["dimensions"] = dimensions
881
+ if metric_name is not None:
882
+ self._values["metric_name"] = metric_name
883
+ if namespace is not None:
884
+ self._values["namespace"] = namespace
885
+
886
+ @builtins.property
887
+ def dimensions(
888
+ self,
889
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.DimensionProperty"]]]]:
890
+ '''An array of one or more dimensions to use to define the metric that you want to use.
891
+
892
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metric.html#cfn-applicationsignals-servicelevelobjective-metric-dimensions
893
+ '''
894
+ result = self._values.get("dimensions")
895
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.DimensionProperty"]]]], result)
896
+
897
+ @builtins.property
898
+ def metric_name(self) -> typing.Optional[builtins.str]:
899
+ '''The name of the metric to use.
900
+
901
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metric.html#cfn-applicationsignals-servicelevelobjective-metric-metricname
902
+ '''
903
+ result = self._values.get("metric_name")
904
+ return typing.cast(typing.Optional[builtins.str], result)
905
+
906
+ @builtins.property
907
+ def namespace(self) -> typing.Optional[builtins.str]:
908
+ '''The namespace of the metric.
909
+
910
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metric.html#cfn-applicationsignals-servicelevelobjective-metric-namespace
911
+ '''
912
+ result = self._values.get("namespace")
913
+ return typing.cast(typing.Optional[builtins.str], result)
914
+
915
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
916
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
917
+
918
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
919
+ return not (rhs == self)
920
+
921
+ def __repr__(self) -> str:
922
+ return "MetricProperty(%s)" % ", ".join(
923
+ k + "=" + repr(v) for k, v in self._values.items()
924
+ )
925
+
926
+ @jsii.data_type(
927
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.MetricStatProperty",
928
+ jsii_struct_bases=[],
929
+ name_mapping={
930
+ "metric": "metric",
931
+ "period": "period",
932
+ "stat": "stat",
933
+ "unit": "unit",
934
+ },
935
+ )
936
+ class MetricStatProperty:
937
+ def __init__(
938
+ self,
939
+ *,
940
+ metric: typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MetricProperty", typing.Dict[builtins.str, typing.Any]]],
941
+ period: jsii.Number,
942
+ stat: builtins.str,
943
+ unit: typing.Optional[builtins.str] = None,
944
+ ) -> None:
945
+ '''A metric to be used directly for the SLO, or to be used in the math expression that will be used for the SLO.
946
+
947
+ Within one MetricDataQuery object, you must specify either Expression or MetricStat but not both.
948
+
949
+ :param metric: This structure defines the metric used for a service level indicator, including the metric name, namespace, and dimensions.
950
+ :param period: The granularity, in seconds, to be used for the metric.
951
+ :param stat: The statistic to use for comparison to the threshold. It can be any CloudWatch statistic or extended statistic.
952
+ :param unit: If you omit Unit then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.
953
+
954
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricstat.html
955
+ :exampleMetadata: fixture=_generated
956
+
957
+ Example::
958
+
959
+ # The code below shows an example of how to instantiate this type.
960
+ # The values are placeholders you should change.
961
+ from aws_cdk import aws_applicationsignals as applicationsignals
962
+
963
+ metric_stat_property = applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
964
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
965
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
966
+ name="name",
967
+ value="value"
968
+ )],
969
+ metric_name="metricName",
970
+ namespace="namespace"
971
+ ),
972
+ period=123,
973
+ stat="stat",
974
+
975
+ # the properties below are optional
976
+ unit="unit"
977
+ )
978
+ '''
979
+ if __debug__:
980
+ type_hints = typing.get_type_hints(_typecheckingstub__9112cc9d5e83260e285e14202026cd0c682ccbbd611252cb22444f31adb6fc6c)
981
+ check_type(argname="argument metric", value=metric, expected_type=type_hints["metric"])
982
+ check_type(argname="argument period", value=period, expected_type=type_hints["period"])
983
+ check_type(argname="argument stat", value=stat, expected_type=type_hints["stat"])
984
+ check_type(argname="argument unit", value=unit, expected_type=type_hints["unit"])
985
+ self._values: typing.Dict[builtins.str, typing.Any] = {
986
+ "metric": metric,
987
+ "period": period,
988
+ "stat": stat,
989
+ }
990
+ if unit is not None:
991
+ self._values["unit"] = unit
992
+
993
+ @builtins.property
994
+ def metric(
995
+ self,
996
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricProperty"]:
997
+ '''This structure defines the metric used for a service level indicator, including the metric name, namespace, and dimensions.
998
+
999
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricstat.html#cfn-applicationsignals-servicelevelobjective-metricstat-metric
1000
+ '''
1001
+ result = self._values.get("metric")
1002
+ assert result is not None, "Required property 'metric' is missing"
1003
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricProperty"], result)
1004
+
1005
+ @builtins.property
1006
+ def period(self) -> jsii.Number:
1007
+ '''The granularity, in seconds, to be used for the metric.
1008
+
1009
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricstat.html#cfn-applicationsignals-servicelevelobjective-metricstat-period
1010
+ '''
1011
+ result = self._values.get("period")
1012
+ assert result is not None, "Required property 'period' is missing"
1013
+ return typing.cast(jsii.Number, result)
1014
+
1015
+ @builtins.property
1016
+ def stat(self) -> builtins.str:
1017
+ '''The statistic to use for comparison to the threshold.
1018
+
1019
+ It can be any CloudWatch statistic or extended statistic.
1020
+
1021
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricstat.html#cfn-applicationsignals-servicelevelobjective-metricstat-stat
1022
+ '''
1023
+ result = self._values.get("stat")
1024
+ assert result is not None, "Required property 'stat' is missing"
1025
+ return typing.cast(builtins.str, result)
1026
+
1027
+ @builtins.property
1028
+ def unit(self) -> typing.Optional[builtins.str]:
1029
+ '''If you omit Unit then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch.
1030
+
1031
+ If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.
1032
+
1033
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-metricstat.html#cfn-applicationsignals-servicelevelobjective-metricstat-unit
1034
+ '''
1035
+ result = self._values.get("unit")
1036
+ return typing.cast(typing.Optional[builtins.str], result)
1037
+
1038
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1039
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1040
+
1041
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1042
+ return not (rhs == self)
1043
+
1044
+ def __repr__(self) -> str:
1045
+ return "MetricStatProperty(%s)" % ", ".join(
1046
+ k + "=" + repr(v) for k, v in self._values.items()
1047
+ )
1048
+
1049
+ @jsii.data_type(
1050
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty",
1051
+ jsii_struct_bases=[],
1052
+ name_mapping={"duration": "duration", "duration_unit": "durationUnit"},
1053
+ )
1054
+ class RollingIntervalProperty:
1055
+ def __init__(
1056
+ self,
1057
+ *,
1058
+ duration: jsii.Number,
1059
+ duration_unit: builtins.str,
1060
+ ) -> None:
1061
+ '''If the interval is a calendar interval, this structure contains the interval specifications.
1062
+
1063
+ :param duration: Specifies the duration of each calendar interval. For example, if ``Duration`` is 1 and ``DurationUnit`` is ``MONTH``, each interval is one month, aligned with the calendar.
1064
+ :param duration_unit: Specifies the calendar interval unit.
1065
+
1066
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-rollinginterval.html
1067
+ :exampleMetadata: fixture=_generated
1068
+
1069
+ Example::
1070
+
1071
+ # The code below shows an example of how to instantiate this type.
1072
+ # The values are placeholders you should change.
1073
+ from aws_cdk import aws_applicationsignals as applicationsignals
1074
+
1075
+ rolling_interval_property = applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty(
1076
+ duration=123,
1077
+ duration_unit="durationUnit"
1078
+ )
1079
+ '''
1080
+ if __debug__:
1081
+ type_hints = typing.get_type_hints(_typecheckingstub__3ea5efcc7f9d7eb11cc8de5d96525adb6a7e2bfc30446b0fcdb3c7cd640413c1)
1082
+ check_type(argname="argument duration", value=duration, expected_type=type_hints["duration"])
1083
+ check_type(argname="argument duration_unit", value=duration_unit, expected_type=type_hints["duration_unit"])
1084
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1085
+ "duration": duration,
1086
+ "duration_unit": duration_unit,
1087
+ }
1088
+
1089
+ @builtins.property
1090
+ def duration(self) -> jsii.Number:
1091
+ '''Specifies the duration of each calendar interval.
1092
+
1093
+ For example, if ``Duration`` is 1 and ``DurationUnit`` is ``MONTH``, each interval is one month, aligned with the calendar.
1094
+
1095
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-rollinginterval.html#cfn-applicationsignals-servicelevelobjective-rollinginterval-duration
1096
+ '''
1097
+ result = self._values.get("duration")
1098
+ assert result is not None, "Required property 'duration' is missing"
1099
+ return typing.cast(jsii.Number, result)
1100
+
1101
+ @builtins.property
1102
+ def duration_unit(self) -> builtins.str:
1103
+ '''Specifies the calendar interval unit.
1104
+
1105
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-rollinginterval.html#cfn-applicationsignals-servicelevelobjective-rollinginterval-durationunit
1106
+ '''
1107
+ result = self._values.get("duration_unit")
1108
+ assert result is not None, "Required property 'duration_unit' is missing"
1109
+ return typing.cast(builtins.str, result)
1110
+
1111
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1112
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1113
+
1114
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1115
+ return not (rhs == self)
1116
+
1117
+ def __repr__(self) -> str:
1118
+ return "RollingIntervalProperty(%s)" % ", ".join(
1119
+ k + "=" + repr(v) for k, v in self._values.items()
1120
+ )
1121
+
1122
+ @jsii.data_type(
1123
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.SliMetricProperty",
1124
+ jsii_struct_bases=[],
1125
+ name_mapping={
1126
+ "key_attributes": "keyAttributes",
1127
+ "metric_data_queries": "metricDataQueries",
1128
+ "metric_type": "metricType",
1129
+ "operation_name": "operationName",
1130
+ "period_seconds": "periodSeconds",
1131
+ "statistic": "statistic",
1132
+ },
1133
+ )
1134
+ class SliMetricProperty:
1135
+ def __init__(
1136
+ self,
1137
+ *,
1138
+ key_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]] = None,
1139
+ metric_data_queries: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.MetricDataQueryProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1140
+ metric_type: typing.Optional[builtins.str] = None,
1141
+ operation_name: typing.Optional[builtins.str] = None,
1142
+ period_seconds: typing.Optional[jsii.Number] = None,
1143
+ statistic: typing.Optional[builtins.str] = None,
1144
+ ) -> None:
1145
+ '''A structure that contains information about the metric that the SLO monitors.
1146
+
1147
+ :param key_attributes: This is a string-to-string map that contains information about the type of object that this SLO is related to.
1148
+ :param metric_data_queries: 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.
1149
+ :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.
1150
+ :param operation_name: If the SLO monitors a specific operation of the service, this field displays that operation name.
1151
+ :param period_seconds: The number of seconds to use as the period for SLO evaluation. Your application's performance is compared to the SLI during each period. For each period, the application is determined to have either achieved or not achieved the necessary performance.
1152
+ :param statistic: The statistic to use for comparison to the threshold. It can be any CloudWatch statistic or extended statistic
1153
+
1154
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html
1155
+ :exampleMetadata: fixture=_generated
1156
+
1157
+ Example::
1158
+
1159
+ # The code below shows an example of how to instantiate this type.
1160
+ # The values are placeholders you should change.
1161
+ from aws_cdk import aws_applicationsignals as applicationsignals
1162
+
1163
+ sli_metric_property = applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
1164
+ key_attributes={
1165
+ "key_attributes_key": "keyAttributes"
1166
+ },
1167
+ metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1168
+ id="id",
1169
+
1170
+ # the properties below are optional
1171
+ account_id="accountId",
1172
+ expression="expression",
1173
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1174
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1175
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1176
+ name="name",
1177
+ value="value"
1178
+ )],
1179
+ metric_name="metricName",
1180
+ namespace="namespace"
1181
+ ),
1182
+ period=123,
1183
+ stat="stat",
1184
+
1185
+ # the properties below are optional
1186
+ unit="unit"
1187
+ ),
1188
+ return_data=False
1189
+ )],
1190
+ metric_type="metricType",
1191
+ operation_name="operationName",
1192
+ period_seconds=123,
1193
+ statistic="statistic"
1194
+ )
1195
+ '''
1196
+ if __debug__:
1197
+ type_hints = typing.get_type_hints(_typecheckingstub__86b5c7cbf1916d1f3e415fc49b371acf007c9210e4158ca70f0735fb4ce3ca36)
1198
+ check_type(argname="argument key_attributes", value=key_attributes, expected_type=type_hints["key_attributes"])
1199
+ check_type(argname="argument metric_data_queries", value=metric_data_queries, expected_type=type_hints["metric_data_queries"])
1200
+ check_type(argname="argument metric_type", value=metric_type, expected_type=type_hints["metric_type"])
1201
+ check_type(argname="argument operation_name", value=operation_name, expected_type=type_hints["operation_name"])
1202
+ check_type(argname="argument period_seconds", value=period_seconds, expected_type=type_hints["period_seconds"])
1203
+ check_type(argname="argument statistic", value=statistic, expected_type=type_hints["statistic"])
1204
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1205
+ if key_attributes is not None:
1206
+ self._values["key_attributes"] = key_attributes
1207
+ if metric_data_queries is not None:
1208
+ self._values["metric_data_queries"] = metric_data_queries
1209
+ if metric_type is not None:
1210
+ self._values["metric_type"] = metric_type
1211
+ if operation_name is not None:
1212
+ self._values["operation_name"] = operation_name
1213
+ if period_seconds is not None:
1214
+ self._values["period_seconds"] = period_seconds
1215
+ if statistic is not None:
1216
+ self._values["statistic"] = statistic
1217
+
1218
+ @builtins.property
1219
+ def key_attributes(
1220
+ self,
1221
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]]:
1222
+ '''This is a string-to-string map that contains information about the type of object that this SLO is related to.
1223
+
1224
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html#cfn-applicationsignals-servicelevelobjective-slimetric-keyattributes
1225
+ '''
1226
+ result = self._values.get("key_attributes")
1227
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]], result)
1228
+
1229
+ @builtins.property
1230
+ def metric_data_queries(
1231
+ self,
1232
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]]:
1233
+ '''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.
1234
+
1235
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html#cfn-applicationsignals-servicelevelobjective-slimetric-metricdataqueries
1236
+ '''
1237
+ result = self._values.get("metric_data_queries")
1238
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.MetricDataQueryProperty"]]]], result)
1239
+
1240
+ @builtins.property
1241
+ def metric_type(self) -> typing.Optional[builtins.str]:
1242
+ '''If the SLO monitors either the LATENCY or AVAILABILITY metric that Application Signals collects, this field displays which of those metrics is used.
1243
+
1244
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html#cfn-applicationsignals-servicelevelobjective-slimetric-metrictype
1245
+ '''
1246
+ result = self._values.get("metric_type")
1247
+ return typing.cast(typing.Optional[builtins.str], result)
1248
+
1249
+ @builtins.property
1250
+ def operation_name(self) -> typing.Optional[builtins.str]:
1251
+ '''If the SLO monitors a specific operation of the service, this field displays that operation name.
1252
+
1253
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html#cfn-applicationsignals-servicelevelobjective-slimetric-operationname
1254
+ '''
1255
+ result = self._values.get("operation_name")
1256
+ return typing.cast(typing.Optional[builtins.str], result)
1257
+
1258
+ @builtins.property
1259
+ def period_seconds(self) -> typing.Optional[jsii.Number]:
1260
+ '''The number of seconds to use as the period for SLO evaluation.
1261
+
1262
+ Your application's performance is compared to the SLI during each period. For each period, the application is determined to have either achieved or not achieved the necessary performance.
1263
+
1264
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html#cfn-applicationsignals-servicelevelobjective-slimetric-periodseconds
1265
+ '''
1266
+ result = self._values.get("period_seconds")
1267
+ return typing.cast(typing.Optional[jsii.Number], result)
1268
+
1269
+ @builtins.property
1270
+ def statistic(self) -> typing.Optional[builtins.str]:
1271
+ '''The statistic to use for comparison to the threshold.
1272
+
1273
+ It can be any CloudWatch statistic or extended statistic
1274
+
1275
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-slimetric.html#cfn-applicationsignals-servicelevelobjective-slimetric-statistic
1276
+ '''
1277
+ result = self._values.get("statistic")
1278
+ return typing.cast(typing.Optional[builtins.str], result)
1279
+
1280
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1281
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1282
+
1283
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1284
+ return not (rhs == self)
1285
+
1286
+ def __repr__(self) -> str:
1287
+ return "SliMetricProperty(%s)" % ", ".join(
1288
+ k + "=" + repr(v) for k, v in self._values.items()
1289
+ )
1290
+
1291
+ @jsii.data_type(
1292
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjective.SliProperty",
1293
+ jsii_struct_bases=[],
1294
+ name_mapping={
1295
+ "comparison_operator": "comparisonOperator",
1296
+ "metric_threshold": "metricThreshold",
1297
+ "sli_metric": "sliMetric",
1298
+ },
1299
+ )
1300
+ class SliProperty:
1301
+ def __init__(
1302
+ self,
1303
+ *,
1304
+ comparison_operator: builtins.str,
1305
+ metric_threshold: jsii.Number,
1306
+ sli_metric: typing.Union[_IResolvable_da3f097b, typing.Union["CfnServiceLevelObjective.SliMetricProperty", typing.Dict[builtins.str, typing.Any]]],
1307
+ ) -> None:
1308
+ '''This structure contains information about the performance metric that an SLO monitors.
1309
+
1310
+ :param comparison_operator: The arithmetic operation used when comparing the specified metric to the threshold.
1311
+ :param metric_threshold: The value that the SLI metric is compared to.
1312
+ :param sli_metric: A structure that contains information about the metric that the SLO monitors.
1313
+
1314
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-sli.html
1315
+ :exampleMetadata: fixture=_generated
1316
+
1317
+ Example::
1318
+
1319
+ # The code below shows an example of how to instantiate this type.
1320
+ # The values are placeholders you should change.
1321
+ from aws_cdk import aws_applicationsignals as applicationsignals
1322
+
1323
+ sli_property = applicationsignals.CfnServiceLevelObjective.SliProperty(
1324
+ comparison_operator="comparisonOperator",
1325
+ metric_threshold=123,
1326
+ sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
1327
+ key_attributes={
1328
+ "key_attributes_key": "keyAttributes"
1329
+ },
1330
+ metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1331
+ id="id",
1332
+
1333
+ # the properties below are optional
1334
+ account_id="accountId",
1335
+ expression="expression",
1336
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1337
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1338
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1339
+ name="name",
1340
+ value="value"
1341
+ )],
1342
+ metric_name="metricName",
1343
+ namespace="namespace"
1344
+ ),
1345
+ period=123,
1346
+ stat="stat",
1347
+
1348
+ # the properties below are optional
1349
+ unit="unit"
1350
+ ),
1351
+ return_data=False
1352
+ )],
1353
+ metric_type="metricType",
1354
+ operation_name="operationName",
1355
+ period_seconds=123,
1356
+ statistic="statistic"
1357
+ )
1358
+ )
1359
+ '''
1360
+ if __debug__:
1361
+ type_hints = typing.get_type_hints(_typecheckingstub__fcb2d383c03844ff1706f4720c7bf04c5a00252d1e49f3ecb2c00c22bf5cbe1f)
1362
+ check_type(argname="argument comparison_operator", value=comparison_operator, expected_type=type_hints["comparison_operator"])
1363
+ check_type(argname="argument metric_threshold", value=metric_threshold, expected_type=type_hints["metric_threshold"])
1364
+ check_type(argname="argument sli_metric", value=sli_metric, expected_type=type_hints["sli_metric"])
1365
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1366
+ "comparison_operator": comparison_operator,
1367
+ "metric_threshold": metric_threshold,
1368
+ "sli_metric": sli_metric,
1369
+ }
1370
+
1371
+ @builtins.property
1372
+ def comparison_operator(self) -> builtins.str:
1373
+ '''The arithmetic operation used when comparing the specified metric to the threshold.
1374
+
1375
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-sli.html#cfn-applicationsignals-servicelevelobjective-sli-comparisonoperator
1376
+ '''
1377
+ result = self._values.get("comparison_operator")
1378
+ assert result is not None, "Required property 'comparison_operator' is missing"
1379
+ return typing.cast(builtins.str, result)
1380
+
1381
+ @builtins.property
1382
+ def metric_threshold(self) -> jsii.Number:
1383
+ '''The value that the SLI metric is compared to.
1384
+
1385
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-sli.html#cfn-applicationsignals-servicelevelobjective-sli-metricthreshold
1386
+ '''
1387
+ result = self._values.get("metric_threshold")
1388
+ assert result is not None, "Required property 'metric_threshold' is missing"
1389
+ return typing.cast(jsii.Number, result)
1390
+
1391
+ @builtins.property
1392
+ def sli_metric(
1393
+ self,
1394
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliMetricProperty"]:
1395
+ '''A structure that contains information about the metric that the SLO monitors.
1396
+
1397
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationsignals-servicelevelobjective-sli.html#cfn-applicationsignals-servicelevelobjective-sli-slimetric
1398
+ '''
1399
+ result = self._values.get("sli_metric")
1400
+ assert result is not None, "Required property 'sli_metric' is missing"
1401
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnServiceLevelObjective.SliMetricProperty"], result)
1402
+
1403
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1404
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1405
+
1406
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1407
+ return not (rhs == self)
1408
+
1409
+ def __repr__(self) -> str:
1410
+ return "SliProperty(%s)" % ", ".join(
1411
+ k + "=" + repr(v) for k, v in self._values.items()
1412
+ )
1413
+
1414
+
1415
+ @jsii.data_type(
1416
+ jsii_type="aws-cdk-lib.aws_applicationsignals.CfnServiceLevelObjectiveProps",
1417
+ jsii_struct_bases=[],
1418
+ name_mapping={
1419
+ "name": "name",
1420
+ "sli": "sli",
1421
+ "description": "description",
1422
+ "goal": "goal",
1423
+ "tags": "tags",
1424
+ },
1425
+ )
1426
+ class CfnServiceLevelObjectiveProps:
1427
+ def __init__(
1428
+ self,
1429
+ *,
1430
+ name: builtins.str,
1431
+ sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
1432
+ description: typing.Optional[builtins.str] = None,
1433
+ goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1434
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1435
+ ) -> None:
1436
+ '''Properties for defining a ``CfnServiceLevelObjective``.
1437
+
1438
+ :param name: The name of this SLO.
1439
+ :param sli: This structure contains information about the performance metric that an SLO monitors.
1440
+ :param description: An optional description for this SLO. Default is 'No description' Default: - "No description"
1441
+ :param goal: A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold.
1442
+ :param tags: The list of tag keys and values associated with the resource you specified.
1443
+
1444
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html
1445
+ :exampleMetadata: fixture=_generated
1446
+
1447
+ Example::
1448
+
1449
+ # The code below shows an example of how to instantiate this type.
1450
+ # The values are placeholders you should change.
1451
+ from aws_cdk import aws_applicationsignals as applicationsignals
1452
+
1453
+ cfn_service_level_objective_props = applicationsignals.CfnServiceLevelObjectiveProps(
1454
+ name="name",
1455
+ sli=applicationsignals.CfnServiceLevelObjective.SliProperty(
1456
+ comparison_operator="comparisonOperator",
1457
+ metric_threshold=123,
1458
+ sli_metric=applicationsignals.CfnServiceLevelObjective.SliMetricProperty(
1459
+ key_attributes={
1460
+ "key_attributes_key": "keyAttributes"
1461
+ },
1462
+ metric_data_queries=[applicationsignals.CfnServiceLevelObjective.MetricDataQueryProperty(
1463
+ id="id",
1464
+
1465
+ # the properties below are optional
1466
+ account_id="accountId",
1467
+ expression="expression",
1468
+ metric_stat=applicationsignals.CfnServiceLevelObjective.MetricStatProperty(
1469
+ metric=applicationsignals.CfnServiceLevelObjective.MetricProperty(
1470
+ dimensions=[applicationsignals.CfnServiceLevelObjective.DimensionProperty(
1471
+ name="name",
1472
+ value="value"
1473
+ )],
1474
+ metric_name="metricName",
1475
+ namespace="namespace"
1476
+ ),
1477
+ period=123,
1478
+ stat="stat",
1479
+
1480
+ # the properties below are optional
1481
+ unit="unit"
1482
+ ),
1483
+ return_data=False
1484
+ )],
1485
+ metric_type="metricType",
1486
+ operation_name="operationName",
1487
+ period_seconds=123,
1488
+ statistic="statistic"
1489
+ )
1490
+ ),
1491
+
1492
+ # the properties below are optional
1493
+ description="description",
1494
+ goal=applicationsignals.CfnServiceLevelObjective.GoalProperty(
1495
+ attainment_goal=123,
1496
+ interval=applicationsignals.CfnServiceLevelObjective.IntervalProperty(
1497
+ calendar_interval=applicationsignals.CfnServiceLevelObjective.CalendarIntervalProperty(
1498
+ duration=123,
1499
+ duration_unit="durationUnit",
1500
+ start_time=123
1501
+ ),
1502
+ rolling_interval=applicationsignals.CfnServiceLevelObjective.RollingIntervalProperty(
1503
+ duration=123,
1504
+ duration_unit="durationUnit"
1505
+ )
1506
+ ),
1507
+ warning_threshold=123
1508
+ ),
1509
+ tags=[CfnTag(
1510
+ key="key",
1511
+ value="value"
1512
+ )]
1513
+ )
1514
+ '''
1515
+ if __debug__:
1516
+ type_hints = typing.get_type_hints(_typecheckingstub__8a302456885343cc9ce5e0497feed773de1ef0f44e2934f97458bfdc5a810dee)
1517
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1518
+ check_type(argname="argument sli", value=sli, expected_type=type_hints["sli"])
1519
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
1520
+ check_type(argname="argument goal", value=goal, expected_type=type_hints["goal"])
1521
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1522
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1523
+ "name": name,
1524
+ "sli": sli,
1525
+ }
1526
+ if description is not None:
1527
+ self._values["description"] = description
1528
+ if goal is not None:
1529
+ self._values["goal"] = goal
1530
+ if tags is not None:
1531
+ self._values["tags"] = tags
1532
+
1533
+ @builtins.property
1534
+ def name(self) -> builtins.str:
1535
+ '''The name of this SLO.
1536
+
1537
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-name
1538
+ '''
1539
+ result = self._values.get("name")
1540
+ assert result is not None, "Required property 'name' is missing"
1541
+ return typing.cast(builtins.str, result)
1542
+
1543
+ @builtins.property
1544
+ def sli(
1545
+ self,
1546
+ ) -> typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty]:
1547
+ '''This structure contains information about the performance metric that an SLO monitors.
1548
+
1549
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-sli
1550
+ '''
1551
+ result = self._values.get("sli")
1552
+ assert result is not None, "Required property 'sli' is missing"
1553
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty], result)
1554
+
1555
+ @builtins.property
1556
+ def description(self) -> typing.Optional[builtins.str]:
1557
+ '''An optional description for this SLO.
1558
+
1559
+ Default is 'No description'
1560
+
1561
+ :default: - "No description"
1562
+
1563
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-description
1564
+ '''
1565
+ result = self._values.get("description")
1566
+ return typing.cast(typing.Optional[builtins.str], result)
1567
+
1568
+ @builtins.property
1569
+ def goal(
1570
+ self,
1571
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.GoalProperty]]:
1572
+ '''A structure that contains the attributes that determine the goal of the SLO.
1573
+
1574
+ This includes the time period for evaluation and the attainment threshold.
1575
+
1576
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-goal
1577
+ '''
1578
+ result = self._values.get("goal")
1579
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.GoalProperty]], result)
1580
+
1581
+ @builtins.property
1582
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1583
+ '''The list of tag keys and values associated with the resource you specified.
1584
+
1585
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationsignals-servicelevelobjective.html#cfn-applicationsignals-servicelevelobjective-tags
1586
+ '''
1587
+ result = self._values.get("tags")
1588
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
1589
+
1590
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1591
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1592
+
1593
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1594
+ return not (rhs == self)
1595
+
1596
+ def __repr__(self) -> str:
1597
+ return "CfnServiceLevelObjectiveProps(%s)" % ", ".join(
1598
+ k + "=" + repr(v) for k, v in self._values.items()
1599
+ )
1600
+
1601
+
1602
+ __all__ = [
1603
+ "CfnServiceLevelObjective",
1604
+ "CfnServiceLevelObjectiveProps",
1605
+ ]
1606
+
1607
+ publication.publish()
1608
+
1609
+ def _typecheckingstub__8476d024be5b448cfb8f9ae2f80fa7f2083296f712cdb7cd12e69365dd7adba1(
1610
+ scope: _constructs_77d1e7e8.Construct,
1611
+ id: builtins.str,
1612
+ *,
1613
+ name: builtins.str,
1614
+ sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
1615
+ description: typing.Optional[builtins.str] = None,
1616
+ goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1617
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1618
+ ) -> None:
1619
+ """Type checking stubs"""
1620
+ pass
1621
+
1622
+ def _typecheckingstub__71593741af71e952b8edcbf3d4a100ccac3627fda6dcff137c7d24df9820e5bb(
1623
+ inspector: _TreeInspector_488e0dd5,
1624
+ ) -> None:
1625
+ """Type checking stubs"""
1626
+ pass
1627
+
1628
+ def _typecheckingstub__922e83db8165cd861bbc31a25dc4a9c84e6441a3e72c10857eb4ba5ae99314cd(
1629
+ props: typing.Mapping[builtins.str, typing.Any],
1630
+ ) -> None:
1631
+ """Type checking stubs"""
1632
+ pass
1633
+
1634
+ def _typecheckingstub__e7d1b42972f3b8a4430dca27e7ecab3fce56490ad1edcfabdc346becf5f4c998(
1635
+ value: builtins.str,
1636
+ ) -> None:
1637
+ """Type checking stubs"""
1638
+ pass
1639
+
1640
+ def _typecheckingstub__938ccf6991aba4b5875a4ca09dfcdb00a5c7e9a92bba0e785ddfbebb228037c3(
1641
+ value: typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.SliProperty],
1642
+ ) -> None:
1643
+ """Type checking stubs"""
1644
+ pass
1645
+
1646
+ def _typecheckingstub__c6761a51565a6d9d6b93723803df5fa7735ec11aa5f14c9cc222e4e60eb54506(
1647
+ value: typing.Optional[builtins.str],
1648
+ ) -> None:
1649
+ """Type checking stubs"""
1650
+ pass
1651
+
1652
+ def _typecheckingstub__f72f1f3f286714a7cb6611be91fc84bc135d11974635585192dc6a6bbfe2f51e(
1653
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServiceLevelObjective.GoalProperty]],
1654
+ ) -> None:
1655
+ """Type checking stubs"""
1656
+ pass
1657
+
1658
+ def _typecheckingstub__45578973503123093d3b0c8f845e2df0c9ad023b7df510f3a7b7ee7abcccd506(
1659
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
1660
+ ) -> None:
1661
+ """Type checking stubs"""
1662
+ pass
1663
+
1664
+ def _typecheckingstub__bb256cb6878f107649da0ff6e94d5a653ad8e2c683a434ba458525e129419535(
1665
+ *,
1666
+ duration: jsii.Number,
1667
+ duration_unit: builtins.str,
1668
+ start_time: jsii.Number,
1669
+ ) -> None:
1670
+ """Type checking stubs"""
1671
+ pass
1672
+
1673
+ def _typecheckingstub__9e8e6b95cda618658802fc7b704459e5b42989b01fe12f60c38caea77f865804(
1674
+ *,
1675
+ name: builtins.str,
1676
+ value: builtins.str,
1677
+ ) -> None:
1678
+ """Type checking stubs"""
1679
+ pass
1680
+
1681
+ def _typecheckingstub__cfc131adfea10ec8f2150d53534dabca2819dd847e258cdb22dd5820d87c65e9(
1682
+ *,
1683
+ attainment_goal: typing.Optional[jsii.Number] = None,
1684
+ interval: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.IntervalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1685
+ warning_threshold: typing.Optional[jsii.Number] = None,
1686
+ ) -> None:
1687
+ """Type checking stubs"""
1688
+ pass
1689
+
1690
+ def _typecheckingstub__30cac26980883e0f67d516f4ddebfd0c363ae3aeb6eb60f4ae3e55228be79fc8(
1691
+ *,
1692
+ calendar_interval: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.CalendarIntervalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1693
+ rolling_interval: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.RollingIntervalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1694
+ ) -> None:
1695
+ """Type checking stubs"""
1696
+ pass
1697
+
1698
+ def _typecheckingstub__c04fce2d6f659e54bcf95336fd734b9dda8c1a66b044793f92533f4b2b9ac20c(
1699
+ *,
1700
+ id: builtins.str,
1701
+ account_id: typing.Optional[builtins.str] = None,
1702
+ expression: typing.Optional[builtins.str] = None,
1703
+ metric_stat: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MetricStatProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1704
+ return_data: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1705
+ ) -> None:
1706
+ """Type checking stubs"""
1707
+ pass
1708
+
1709
+ def _typecheckingstub__94c3dac51fe1c8fc13cb0f314cd26fbce563c808cc2f39fe4ee2a01d00f47555(
1710
+ *,
1711
+ dimensions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.DimensionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1712
+ metric_name: typing.Optional[builtins.str] = None,
1713
+ namespace: typing.Optional[builtins.str] = None,
1714
+ ) -> None:
1715
+ """Type checking stubs"""
1716
+ pass
1717
+
1718
+ def _typecheckingstub__9112cc9d5e83260e285e14202026cd0c682ccbbd611252cb22444f31adb6fc6c(
1719
+ *,
1720
+ metric: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MetricProperty, typing.Dict[builtins.str, typing.Any]]],
1721
+ period: jsii.Number,
1722
+ stat: builtins.str,
1723
+ unit: typing.Optional[builtins.str] = None,
1724
+ ) -> None:
1725
+ """Type checking stubs"""
1726
+ pass
1727
+
1728
+ def _typecheckingstub__3ea5efcc7f9d7eb11cc8de5d96525adb6a7e2bfc30446b0fcdb3c7cd640413c1(
1729
+ *,
1730
+ duration: jsii.Number,
1731
+ duration_unit: builtins.str,
1732
+ ) -> None:
1733
+ """Type checking stubs"""
1734
+ pass
1735
+
1736
+ def _typecheckingstub__86b5c7cbf1916d1f3e415fc49b371acf007c9210e4158ca70f0735fb4ce3ca36(
1737
+ *,
1738
+ key_attributes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]] = None,
1739
+ metric_data_queries: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.MetricDataQueryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1740
+ metric_type: typing.Optional[builtins.str] = None,
1741
+ operation_name: typing.Optional[builtins.str] = None,
1742
+ period_seconds: typing.Optional[jsii.Number] = None,
1743
+ statistic: typing.Optional[builtins.str] = None,
1744
+ ) -> None:
1745
+ """Type checking stubs"""
1746
+ pass
1747
+
1748
+ def _typecheckingstub__fcb2d383c03844ff1706f4720c7bf04c5a00252d1e49f3ecb2c00c22bf5cbe1f(
1749
+ *,
1750
+ comparison_operator: builtins.str,
1751
+ metric_threshold: jsii.Number,
1752
+ sli_metric: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliMetricProperty, typing.Dict[builtins.str, typing.Any]]],
1753
+ ) -> None:
1754
+ """Type checking stubs"""
1755
+ pass
1756
+
1757
+ def _typecheckingstub__8a302456885343cc9ce5e0497feed773de1ef0f44e2934f97458bfdc5a810dee(
1758
+ *,
1759
+ name: builtins.str,
1760
+ sli: typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.SliProperty, typing.Dict[builtins.str, typing.Any]]],
1761
+ description: typing.Optional[builtins.str] = None,
1762
+ goal: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServiceLevelObjective.GoalProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1763
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1764
+ ) -> None:
1765
+ """Type checking stubs"""
1766
+ pass