UNPKG

43.6 kBTypeScriptView Raw
1import * as cdk from '@aws-cdk/core';
2import * as cfn_parse from '@aws-cdk/core/lib/helpers-internal';
3/**
4 * Properties for defining a `CfnDestination`
5 *
6 * @struct
7 * @stability external
8 *
9 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html
10 */
11export interface CfnDestinationProps {
12 /**
13 * The name of the destination.
14 *
15 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationname
16 */
17 readonly destinationName: string;
18 /**
19 * The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource.
20 *
21 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-rolearn
22 */
23 readonly roleArn: string;
24 /**
25 * The Amazon Resource Name (ARN) of the physical target where the log events are delivered (for example, a Kinesis stream).
26 *
27 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-targetarn
28 */
29 readonly targetArn: string;
30 /**
31 * An IAM policy document that governs which AWS accounts can create subscription filters against this destination.
32 *
33 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationpolicy
34 */
35 readonly destinationPolicy?: string;
36}
37/**
38 * A CloudFormation `AWS::Logs::Destination`
39 *
40 * The AWS::Logs::Destination resource specifies a CloudWatch Logs destination. A destination encapsulates a physical resource (such as an Amazon Kinesis data stream) and enables you to subscribe that resource to a stream of log events.
41 *
42 * @cloudformationResource AWS::Logs::Destination
43 * @stability external
44 *
45 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html
46 */
47export declare class CfnDestination extends cdk.CfnResource implements cdk.IInspectable {
48 /**
49 * The CloudFormation resource type name for this resource class.
50 */
51 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::Destination";
52 /**
53 * A factory method that creates a new instance of this class from an object
54 * containing the CloudFormation properties of this resource.
55 * Used in the @aws-cdk/cloudformation-include module.
56 *
57 * @internal
58 */
59 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnDestination;
60 /**
61 * The ARN of the CloudWatch Logs destination, such as `arn:aws:logs:us-west-1:123456789012:destination:MyDestination` .
62 * @cloudformationAttribute Arn
63 */
64 readonly attrArn: string;
65 /**
66 * The name of the destination.
67 *
68 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationname
69 */
70 destinationName: string;
71 /**
72 * The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource.
73 *
74 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-rolearn
75 */
76 roleArn: string;
77 /**
78 * The Amazon Resource Name (ARN) of the physical target where the log events are delivered (for example, a Kinesis stream).
79 *
80 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-targetarn
81 */
82 targetArn: string;
83 /**
84 * An IAM policy document that governs which AWS accounts can create subscription filters against this destination.
85 *
86 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationpolicy
87 */
88 destinationPolicy: string | undefined;
89 /**
90 * Create a new `AWS::Logs::Destination`.
91 *
92 * @param scope - scope in which this resource is defined
93 * @param id - scoped id of the resource
94 * @param props - resource properties
95 */
96 constructor(scope: cdk.Construct, id: string, props: CfnDestinationProps);
97 /**
98 * Examines the CloudFormation resource and discloses attributes.
99 *
100 * @param inspector - tree inspector to collect and process attributes
101 *
102 */
103 inspect(inspector: cdk.TreeInspector): void;
104 protected get cfnProperties(): {
105 [key: string]: any;
106 };
107 protected renderProperties(props: {
108 [key: string]: any;
109 }): {
110 [key: string]: any;
111 };
112}
113/**
114 * Properties for defining a `CfnLogGroup`
115 *
116 * @struct
117 * @stability external
118 *
119 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html
120 */
121export interface CfnLogGroupProps {
122 /**
123 * Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.
124 *
125 * For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) .
126 *
127 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-dataprotectionpolicy
128 */
129 readonly dataProtectionPolicy?: any | cdk.IResolvable;
130 /**
131 * The Amazon Resource Name (ARN) of the AWS KMS key to use when encrypting log data.
132 *
133 * To associate an AWS KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs . This enables CloudWatch Logs to decrypt this data whenever it is requested.
134 *
135 * If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an `InvalidParameterException` error.
136 *
137 * Log group data is always encrypted in CloudWatch Logs . If you omit this key, the encryption does not use AWS KMS . For more information, see [Encrypt log data in CloudWatch Logs using AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)
138 *
139 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-kmskeyid
140 */
141 readonly kmsKeyId?: string;
142 /**
143 * The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group.
144 *
145 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-loggroupname
146 */
147 readonly logGroupName?: string;
148 /**
149 * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.
150 *
151 * To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html) .
152 *
153 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays
154 */
155 readonly retentionInDays?: number;
156 /**
157 * An array of key-value pairs to apply to the log group.
158 *
159 * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
160 *
161 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-tags
162 */
163 readonly tags?: cdk.CfnTag[];
164}
165/**
166 * A CloudFormation `AWS::Logs::LogGroup`
167 *
168 * The `AWS::Logs::LogGroup` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.
169 *
170 * You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:
171 *
172 * - Log group names must be unique within a Region for an AWS account.
173 * - Log group names can be between 1 and 512 characters long.
174 * - Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).
175 *
176 * @cloudformationResource AWS::Logs::LogGroup
177 * @stability external
178 *
179 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html
180 */
181export declare class CfnLogGroup extends cdk.CfnResource implements cdk.IInspectable {
182 /**
183 * The CloudFormation resource type name for this resource class.
184 */
185 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::LogGroup";
186 /**
187 * A factory method that creates a new instance of this class from an object
188 * containing the CloudFormation properties of this resource.
189 * Used in the @aws-cdk/cloudformation-include module.
190 *
191 * @internal
192 */
193 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnLogGroup;
194 /**
195 * The ARN of the log group, such as `arn:aws:logs:us-west-1:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*`
196 * @cloudformationAttribute Arn
197 */
198 readonly attrArn: string;
199 /**
200 * Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.
201 *
202 * For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) .
203 *
204 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-dataprotectionpolicy
205 */
206 dataProtectionPolicy: any | cdk.IResolvable | undefined;
207 /**
208 * The Amazon Resource Name (ARN) of the AWS KMS key to use when encrypting log data.
209 *
210 * To associate an AWS KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs . This enables CloudWatch Logs to decrypt this data whenever it is requested.
211 *
212 * If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an `InvalidParameterException` error.
213 *
214 * Log group data is always encrypted in CloudWatch Logs . If you omit this key, the encryption does not use AWS KMS . For more information, see [Encrypt log data in CloudWatch Logs using AWS Key Management Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)
215 *
216 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-kmskeyid
217 */
218 kmsKeyId: string | undefined;
219 /**
220 * The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group.
221 *
222 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-loggroupname
223 */
224 logGroupName: string | undefined;
225 /**
226 * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.
227 *
228 * To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html) .
229 *
230 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays
231 */
232 retentionInDays: number | undefined;
233 /**
234 * An array of key-value pairs to apply to the log group.
235 *
236 * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
237 *
238 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-tags
239 */
240 readonly tags: cdk.TagManager;
241 /**
242 * Create a new `AWS::Logs::LogGroup`.
243 *
244 * @param scope - scope in which this resource is defined
245 * @param id - scoped id of the resource
246 * @param props - resource properties
247 */
248 constructor(scope: cdk.Construct, id: string, props?: CfnLogGroupProps);
249 /**
250 * Examines the CloudFormation resource and discloses attributes.
251 *
252 * @param inspector - tree inspector to collect and process attributes
253 *
254 */
255 inspect(inspector: cdk.TreeInspector): void;
256 protected get cfnProperties(): {
257 [key: string]: any;
258 };
259 protected renderProperties(props: {
260 [key: string]: any;
261 }): {
262 [key: string]: any;
263 };
264}
265/**
266 * Properties for defining a `CfnLogStream`
267 *
268 * @struct
269 * @stability external
270 *
271 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html
272 */
273export interface CfnLogStreamProps {
274 /**
275 * The name of the log group where the log stream is created.
276 *
277 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname
278 */
279 readonly logGroupName: string;
280 /**
281 * The name of the log stream. The name must be unique within the log group.
282 *
283 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname
284 */
285 readonly logStreamName?: string;
286}
287/**
288 * A CloudFormation `AWS::Logs::LogStream`
289 *
290 * The `AWS::Logs::LogStream` resource specifies an Amazon CloudWatch Logs log stream in a specific log group. A log stream represents the sequence of events coming from an application instance or resource that you are monitoring.
291 *
292 * There is no limit on the number of log streams that you can create for a log group.
293 *
294 * You must use the following guidelines when naming a log stream:
295 *
296 * - Log stream names must be unique within the log group.
297 * - Log stream names can be between 1 and 512 characters long.
298 * - The ':' (colon) and '*' (asterisk) characters are not allowed.
299 *
300 * @cloudformationResource AWS::Logs::LogStream
301 * @stability external
302 *
303 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html
304 */
305export declare class CfnLogStream extends cdk.CfnResource implements cdk.IInspectable {
306 /**
307 * The CloudFormation resource type name for this resource class.
308 */
309 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::LogStream";
310 /**
311 * A factory method that creates a new instance of this class from an object
312 * containing the CloudFormation properties of this resource.
313 * Used in the @aws-cdk/cloudformation-include module.
314 *
315 * @internal
316 */
317 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnLogStream;
318 /**
319 *
320 * @cloudformationAttribute Id
321 */
322 readonly attrId: string;
323 /**
324 * The name of the log group where the log stream is created.
325 *
326 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname
327 */
328 logGroupName: string;
329 /**
330 * The name of the log stream. The name must be unique within the log group.
331 *
332 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname
333 */
334 logStreamName: string | undefined;
335 /**
336 * Create a new `AWS::Logs::LogStream`.
337 *
338 * @param scope - scope in which this resource is defined
339 * @param id - scoped id of the resource
340 * @param props - resource properties
341 */
342 constructor(scope: cdk.Construct, id: string, props: CfnLogStreamProps);
343 /**
344 * Examines the CloudFormation resource and discloses attributes.
345 *
346 * @param inspector - tree inspector to collect and process attributes
347 *
348 */
349 inspect(inspector: cdk.TreeInspector): void;
350 protected get cfnProperties(): {
351 [key: string]: any;
352 };
353 protected renderProperties(props: {
354 [key: string]: any;
355 }): {
356 [key: string]: any;
357 };
358}
359/**
360 * Properties for defining a `CfnMetricFilter`
361 *
362 * @struct
363 * @stability external
364 *
365 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
366 */
367export interface CfnMetricFilterProps {
368 /**
369 * A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) .
370 *
371 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filterpattern
372 */
373 readonly filterPattern: string;
374 /**
375 * The name of an existing log group that you want to associate with this metric filter.
376 *
377 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-loggroupname
378 */
379 readonly logGroupName: string;
380 /**
381 * The metric transformations.
382 *
383 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-metrictransformations
384 */
385 readonly metricTransformations: Array<CfnMetricFilter.MetricTransformationProperty | cdk.IResolvable> | cdk.IResolvable;
386 /**
387 * The name of the metric filter.
388 *
389 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filtername
390 */
391 readonly filterName?: string;
392}
393/**
394 * A CloudFormation `AWS::Logs::MetricFilter`
395 *
396 * The `AWS::Logs::MetricFilter` resource specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.
397 *
398 * The maximum number of metric filters that can be associated with a log group is 100.
399 *
400 * @cloudformationResource AWS::Logs::MetricFilter
401 * @stability external
402 *
403 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
404 */
405export declare class CfnMetricFilter extends cdk.CfnResource implements cdk.IInspectable {
406 /**
407 * The CloudFormation resource type name for this resource class.
408 */
409 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::MetricFilter";
410 /**
411 * A factory method that creates a new instance of this class from an object
412 * containing the CloudFormation properties of this resource.
413 * Used in the @aws-cdk/cloudformation-include module.
414 *
415 * @internal
416 */
417 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnMetricFilter;
418 /**
419 * A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) .
420 *
421 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filterpattern
422 */
423 filterPattern: string;
424 /**
425 * The name of an existing log group that you want to associate with this metric filter.
426 *
427 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-loggroupname
428 */
429 logGroupName: string;
430 /**
431 * The metric transformations.
432 *
433 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-metrictransformations
434 */
435 metricTransformations: Array<CfnMetricFilter.MetricTransformationProperty | cdk.IResolvable> | cdk.IResolvable;
436 /**
437 * The name of the metric filter.
438 *
439 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filtername
440 */
441 filterName: string | undefined;
442 /**
443 * Create a new `AWS::Logs::MetricFilter`.
444 *
445 * @param scope - scope in which this resource is defined
446 * @param id - scoped id of the resource
447 * @param props - resource properties
448 */
449 constructor(scope: cdk.Construct, id: string, props: CfnMetricFilterProps);
450 /**
451 * Examines the CloudFormation resource and discloses attributes.
452 *
453 * @param inspector - tree inspector to collect and process attributes
454 *
455 */
456 inspect(inspector: cdk.TreeInspector): void;
457 protected get cfnProperties(): {
458 [key: string]: any;
459 };
460 protected renderProperties(props: {
461 [key: string]: any;
462 }): {
463 [key: string]: any;
464 };
465}
466export declare namespace CfnMetricFilter {
467 /**
468 * Specifies the CloudWatch metric dimensions to publish with this metric.
469 *
470 * Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric.
471 *
472 * For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions) .
473 *
474 * > Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as `IPAddress` or `requestID` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.
475 * >
476 * > To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.
477 * >
478 * > You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated AWS Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) .
479 *
480 * @struct
481 * @stability external
482 *
483 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html
484 */
485 interface DimensionProperty {
486 /**
487 * The name for the CloudWatch metric dimension that the metric filter creates.
488 *
489 * Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:).
490 *
491 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html#cfn-logs-metricfilter-dimension-key
492 */
493 readonly key: string;
494 /**
495 * The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, `$.eventType` for JSON log events, or `$server` for space-delimited log events.
496 *
497 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html#cfn-logs-metricfilter-dimension-value
498 */
499 readonly value: string;
500 }
501}
502export declare namespace CfnMetricFilter {
503 /**
504 * `MetricTransformation` is a property of the `AWS::Logs::MetricFilter` resource that describes how to transform log streams into a CloudWatch metric.
505 *
506 * @struct
507 * @stability external
508 *
509 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html
510 */
511 interface MetricTransformationProperty {
512 /**
513 * (Optional) The value to emit when a filter pattern does not match a log event. This value can be null.
514 *
515 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-defaultvalue
516 */
517 readonly defaultValue?: number;
518 /**
519 * The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.
520 *
521 * > Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as `IPAddress` or `requestID` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.
522 * >
523 * > CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges.
524 * >
525 * > You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated AWS Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html) .
526 *
527 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-dimensions
528 */
529 readonly dimensions?: Array<CfnMetricFilter.DimensionProperty | cdk.IResolvable> | cdk.IResolvable;
530 /**
531 * The name of the CloudWatch metric.
532 *
533 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricname
534 */
535 readonly metricName: string;
536 /**
537 * A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace) .
538 *
539 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricnamespace
540 */
541 readonly metricNamespace: string;
542 /**
543 * The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like `Error` , specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as `$.size` .
544 *
545 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricvalue
546 */
547 readonly metricValue: string;
548 /**
549 * The unit to assign to the metric. If you omit this, the unit is set as `None` .
550 *
551 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-unit
552 */
553 readonly unit?: string;
554 }
555}
556/**
557 * Properties for defining a `CfnQueryDefinition`
558 *
559 * @struct
560 * @stability external
561 *
562 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html
563 */
564export interface CfnQueryDefinitionProps {
565 /**
566 * A name for the query definition.
567 *
568 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-name
569 */
570 readonly name: string;
571 /**
572 * The query string to use for this query definition. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) .
573 *
574 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-querystring
575 */
576 readonly queryString: string;
577 /**
578 * Use this parameter if you want the query to query only certain log groups.
579 *
580 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-loggroupnames
581 */
582 readonly logGroupNames?: string[];
583}
584/**
585 * A CloudFormation `AWS::Logs::QueryDefinition`
586 *
587 * Creates a query definition for CloudWatch Logs Insights. For more information, see [Analyzing Log Data with CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) .
588 *
589 * @cloudformationResource AWS::Logs::QueryDefinition
590 * @stability external
591 *
592 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html
593 */
594export declare class CfnQueryDefinition extends cdk.CfnResource implements cdk.IInspectable {
595 /**
596 * The CloudFormation resource type name for this resource class.
597 */
598 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::QueryDefinition";
599 /**
600 * A factory method that creates a new instance of this class from an object
601 * containing the CloudFormation properties of this resource.
602 * Used in the @aws-cdk/cloudformation-include module.
603 *
604 * @internal
605 */
606 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnQueryDefinition;
607 /**
608 * The ID of the query definition.
609 * @cloudformationAttribute QueryDefinitionId
610 */
611 readonly attrQueryDefinitionId: string;
612 /**
613 * A name for the query definition.
614 *
615 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-name
616 */
617 name: string;
618 /**
619 * The query string to use for this query definition. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) .
620 *
621 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-querystring
622 */
623 queryString: string;
624 /**
625 * Use this parameter if you want the query to query only certain log groups.
626 *
627 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-loggroupnames
628 */
629 logGroupNames: string[] | undefined;
630 /**
631 * Create a new `AWS::Logs::QueryDefinition`.
632 *
633 * @param scope - scope in which this resource is defined
634 * @param id - scoped id of the resource
635 * @param props - resource properties
636 */
637 constructor(scope: cdk.Construct, id: string, props: CfnQueryDefinitionProps);
638 /**
639 * Examines the CloudFormation resource and discloses attributes.
640 *
641 * @param inspector - tree inspector to collect and process attributes
642 *
643 */
644 inspect(inspector: cdk.TreeInspector): void;
645 protected get cfnProperties(): {
646 [key: string]: any;
647 };
648 protected renderProperties(props: {
649 [key: string]: any;
650 }): {
651 [key: string]: any;
652 };
653}
654/**
655 * Properties for defining a `CfnResourcePolicy`
656 *
657 * @struct
658 * @stability external
659 *
660 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html
661 */
662export interface CfnResourcePolicyProps {
663 /**
664 * The details of the policy. It must be formatted in JSON, and you must use backslashes to escape characters that need to be escaped in JSON strings, such as double quote marks.
665 *
666 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policydocument
667 */
668 readonly policyDocument: string;
669 /**
670 * The name of the resource policy.
671 *
672 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policyname
673 */
674 readonly policyName: string;
675}
676/**
677 * A CloudFormation `AWS::Logs::ResourcePolicy`
678 *
679 * Creates or updates a resource policy that allows other AWS services to put log events to this account. An account can have up to 10 resource policies per AWS Region.
680 *
681 * @cloudformationResource AWS::Logs::ResourcePolicy
682 * @stability external
683 *
684 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html
685 */
686export declare class CfnResourcePolicy extends cdk.CfnResource implements cdk.IInspectable {
687 /**
688 * The CloudFormation resource type name for this resource class.
689 */
690 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::ResourcePolicy";
691 /**
692 * A factory method that creates a new instance of this class from an object
693 * containing the CloudFormation properties of this resource.
694 * Used in the @aws-cdk/cloudformation-include module.
695 *
696 * @internal
697 */
698 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnResourcePolicy;
699 /**
700 * The details of the policy. It must be formatted in JSON, and you must use backslashes to escape characters that need to be escaped in JSON strings, such as double quote marks.
701 *
702 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policydocument
703 */
704 policyDocument: string;
705 /**
706 * The name of the resource policy.
707 *
708 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policyname
709 */
710 policyName: string;
711 /**
712 * Create a new `AWS::Logs::ResourcePolicy`.
713 *
714 * @param scope - scope in which this resource is defined
715 * @param id - scoped id of the resource
716 * @param props - resource properties
717 */
718 constructor(scope: cdk.Construct, id: string, props: CfnResourcePolicyProps);
719 /**
720 * Examines the CloudFormation resource and discloses attributes.
721 *
722 * @param inspector - tree inspector to collect and process attributes
723 *
724 */
725 inspect(inspector: cdk.TreeInspector): void;
726 protected get cfnProperties(): {
727 [key: string]: any;
728 };
729 protected renderProperties(props: {
730 [key: string]: any;
731 }): {
732 [key: string]: any;
733 };
734}
735/**
736 * Properties for defining a `CfnSubscriptionFilter`
737 *
738 * @struct
739 * @stability external
740 *
741 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
742 */
743export interface CfnSubscriptionFilterProps {
744 /**
745 * The Amazon Resource Name (ARN) of the destination.
746 *
747 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-destinationarn
748 */
749 readonly destinationArn: string;
750 /**
751 * The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) .
752 *
753 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filterpattern
754 */
755 readonly filterPattern: string;
756 /**
757 * The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events.
758 *
759 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-loggroupname
760 */
761 readonly logGroupName: string;
762 /**
763 * `AWS::Logs::SubscriptionFilter.Distribution`
764 *
765 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-distribution
766 */
767 readonly distribution?: string;
768 /**
769 * The name of the subscription filter.
770 *
771 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filtername
772 */
773 readonly filterName?: string;
774 /**
775 * The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery.
776 *
777 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-rolearn
778 */
779 readonly roleArn?: string;
780}
781/**
782 * A CloudFormation `AWS::Logs::SubscriptionFilter`
783 *
784 * The `AWS::Logs::SubscriptionFilter` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:
785 *
786 * - An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.
787 * - A logical destination that belongs to a different account, for cross-account delivery.
788 * - An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.
789 * - An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery.
790 *
791 * There can be as many as two subscription filters associated with a log group.
792 *
793 * @cloudformationResource AWS::Logs::SubscriptionFilter
794 * @stability external
795 *
796 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
797 */
798export declare class CfnSubscriptionFilter extends cdk.CfnResource implements cdk.IInspectable {
799 /**
800 * The CloudFormation resource type name for this resource class.
801 */
802 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::SubscriptionFilter";
803 /**
804 * A factory method that creates a new instance of this class from an object
805 * containing the CloudFormation properties of this resource.
806 * Used in the @aws-cdk/cloudformation-include module.
807 *
808 * @internal
809 */
810 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnSubscriptionFilter;
811 /**
812 * The Amazon Resource Name (ARN) of the destination.
813 *
814 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-destinationarn
815 */
816 destinationArn: string;
817 /**
818 * The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) .
819 *
820 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filterpattern
821 */
822 filterPattern: string;
823 /**
824 * The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events.
825 *
826 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-loggroupname
827 */
828 logGroupName: string;
829 /**
830 * `AWS::Logs::SubscriptionFilter.Distribution`
831 *
832 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-distribution
833 */
834 distribution: string | undefined;
835 /**
836 * The name of the subscription filter.
837 *
838 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filtername
839 */
840 filterName: string | undefined;
841 /**
842 * The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery.
843 *
844 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-rolearn
845 */
846 roleArn: string | undefined;
847 /**
848 * Create a new `AWS::Logs::SubscriptionFilter`.
849 *
850 * @param scope - scope in which this resource is defined
851 * @param id - scoped id of the resource
852 * @param props - resource properties
853 */
854 constructor(scope: cdk.Construct, id: string, props: CfnSubscriptionFilterProps);
855 /**
856 * Examines the CloudFormation resource and discloses attributes.
857 *
858 * @param inspector - tree inspector to collect and process attributes
859 *
860 */
861 inspect(inspector: cdk.TreeInspector): void;
862 protected get cfnProperties(): {
863 [key: string]: any;
864 };
865 protected renderProperties(props: {
866 [key: string]: any;
867 }): {
868 [key: string]: any;
869 };
870}