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 * The name of the log group where the log stream is created.
320 *
321 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname
322 */
323 logGroupName: string;
324 /**
325 * The name of the log stream. The name must be unique within the log group.
326 *
327 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname
328 */
329 logStreamName: string | undefined;
330 /**
331 * Create a new `AWS::Logs::LogStream`.
332 *
333 * @param scope - scope in which this resource is defined
334 * @param id - scoped id of the resource
335 * @param props - resource properties
336 */
337 constructor(scope: cdk.Construct, id: string, props: CfnLogStreamProps);
338 /**
339 * Examines the CloudFormation resource and discloses attributes.
340 *
341 * @param inspector - tree inspector to collect and process attributes
342 *
343 */
344 inspect(inspector: cdk.TreeInspector): void;
345 protected get cfnProperties(): {
346 [key: string]: any;
347 };
348 protected renderProperties(props: {
349 [key: string]: any;
350 }): {
351 [key: string]: any;
352 };
353}
354/**
355 * Properties for defining a `CfnMetricFilter`
356 *
357 * @struct
358 * @stability external
359 *
360 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
361 */
362export interface CfnMetricFilterProps {
363 /**
364 * 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) .
365 *
366 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filterpattern
367 */
368 readonly filterPattern: string;
369 /**
370 * The name of an existing log group that you want to associate with this metric filter.
371 *
372 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-loggroupname
373 */
374 readonly logGroupName: string;
375 /**
376 * The metric transformations.
377 *
378 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-metrictransformations
379 */
380 readonly metricTransformations: Array<CfnMetricFilter.MetricTransformationProperty | cdk.IResolvable> | cdk.IResolvable;
381 /**
382 * The name of the metric filter.
383 *
384 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filtername
385 */
386 readonly filterName?: string;
387}
388/**
389 * A CloudFormation `AWS::Logs::MetricFilter`
390 *
391 * 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.
392 *
393 * The maximum number of metric filters that can be associated with a log group is 100.
394 *
395 * @cloudformationResource AWS::Logs::MetricFilter
396 * @stability external
397 *
398 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
399 */
400export declare class CfnMetricFilter extends cdk.CfnResource implements cdk.IInspectable {
401 /**
402 * The CloudFormation resource type name for this resource class.
403 */
404 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::MetricFilter";
405 /**
406 * A factory method that creates a new instance of this class from an object
407 * containing the CloudFormation properties of this resource.
408 * Used in the @aws-cdk/cloudformation-include module.
409 *
410 * @internal
411 */
412 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnMetricFilter;
413 /**
414 * 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) .
415 *
416 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filterpattern
417 */
418 filterPattern: string;
419 /**
420 * The name of an existing log group that you want to associate with this metric filter.
421 *
422 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-loggroupname
423 */
424 logGroupName: string;
425 /**
426 * The metric transformations.
427 *
428 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-metrictransformations
429 */
430 metricTransformations: Array<CfnMetricFilter.MetricTransformationProperty | cdk.IResolvable> | cdk.IResolvable;
431 /**
432 * The name of the metric filter.
433 *
434 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-logs-metricfilter-filtername
435 */
436 filterName: string | undefined;
437 /**
438 * Create a new `AWS::Logs::MetricFilter`.
439 *
440 * @param scope - scope in which this resource is defined
441 * @param id - scoped id of the resource
442 * @param props - resource properties
443 */
444 constructor(scope: cdk.Construct, id: string, props: CfnMetricFilterProps);
445 /**
446 * Examines the CloudFormation resource and discloses attributes.
447 *
448 * @param inspector - tree inspector to collect and process attributes
449 *
450 */
451 inspect(inspector: cdk.TreeInspector): void;
452 protected get cfnProperties(): {
453 [key: string]: any;
454 };
455 protected renderProperties(props: {
456 [key: string]: any;
457 }): {
458 [key: string]: any;
459 };
460}
461export declare namespace CfnMetricFilter {
462 /**
463 * Specifies the CloudWatch metric dimensions to publish with this metric.
464 *
465 * 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.
466 *
467 * 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) .
468 *
469 * > 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.
470 * >
471 * > 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.
472 * >
473 * > 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) .
474 *
475 * @struct
476 * @stability external
477 *
478 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html
479 */
480 interface DimensionProperty {
481 /**
482 * The name for the CloudWatch metric dimension that the metric filter creates.
483 *
484 * Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:).
485 *
486 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html#cfn-logs-metricfilter-dimension-key
487 */
488 readonly key: string;
489 /**
490 * 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.
491 *
492 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-dimension.html#cfn-logs-metricfilter-dimension-value
493 */
494 readonly value: string;
495 }
496}
497export declare namespace CfnMetricFilter {
498 /**
499 * `MetricTransformation` is a property of the `AWS::Logs::MetricFilter` resource that describes how to transform log streams into a CloudWatch metric.
500 *
501 * @struct
502 * @stability external
503 *
504 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html
505 */
506 interface MetricTransformationProperty {
507 /**
508 * (Optional) The value to emit when a filter pattern does not match a log event. This value can be null.
509 *
510 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-defaultvalue
511 */
512 readonly defaultValue?: number;
513 /**
514 * The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.
515 *
516 * > 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.
517 * >
518 * > 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.
519 * >
520 * > 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) .
521 *
522 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-dimensions
523 */
524 readonly dimensions?: Array<CfnMetricFilter.DimensionProperty | cdk.IResolvable> | cdk.IResolvable;
525 /**
526 * The name of the CloudWatch metric.
527 *
528 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricname
529 */
530 readonly metricName: string;
531 /**
532 * 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) .
533 *
534 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricnamespace
535 */
536 readonly metricNamespace: string;
537 /**
538 * 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` .
539 *
540 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-metricvalue
541 */
542 readonly metricValue: string;
543 /**
544 * The unit to assign to the metric. If you omit this, the unit is set as `None` .
545 *
546 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-logs-metricfilter-metrictransformation-unit
547 */
548 readonly unit?: string;
549 }
550}
551/**
552 * Properties for defining a `CfnQueryDefinition`
553 *
554 * @struct
555 * @stability external
556 *
557 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html
558 */
559export interface CfnQueryDefinitionProps {
560 /**
561 * A name for the query definition.
562 *
563 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-name
564 */
565 readonly name: string;
566 /**
567 * 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) .
568 *
569 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-querystring
570 */
571 readonly queryString: string;
572 /**
573 * Use this parameter if you want the query to query only certain log groups.
574 *
575 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-loggroupnames
576 */
577 readonly logGroupNames?: string[];
578}
579/**
580 * A CloudFormation `AWS::Logs::QueryDefinition`
581 *
582 * 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) .
583 *
584 * @cloudformationResource AWS::Logs::QueryDefinition
585 * @stability external
586 *
587 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html
588 */
589export declare class CfnQueryDefinition extends cdk.CfnResource implements cdk.IInspectable {
590 /**
591 * The CloudFormation resource type name for this resource class.
592 */
593 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::QueryDefinition";
594 /**
595 * A factory method that creates a new instance of this class from an object
596 * containing the CloudFormation properties of this resource.
597 * Used in the @aws-cdk/cloudformation-include module.
598 *
599 * @internal
600 */
601 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnQueryDefinition;
602 /**
603 * The ID of the query definition.
604 * @cloudformationAttribute QueryDefinitionId
605 */
606 readonly attrQueryDefinitionId: string;
607 /**
608 * A name for the query definition.
609 *
610 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-name
611 */
612 name: string;
613 /**
614 * 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) .
615 *
616 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-querystring
617 */
618 queryString: string;
619 /**
620 * Use this parameter if you want the query to query only certain log groups.
621 *
622 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-loggroupnames
623 */
624 logGroupNames: string[] | undefined;
625 /**
626 * Create a new `AWS::Logs::QueryDefinition`.
627 *
628 * @param scope - scope in which this resource is defined
629 * @param id - scoped id of the resource
630 * @param props - resource properties
631 */
632 constructor(scope: cdk.Construct, id: string, props: CfnQueryDefinitionProps);
633 /**
634 * Examines the CloudFormation resource and discloses attributes.
635 *
636 * @param inspector - tree inspector to collect and process attributes
637 *
638 */
639 inspect(inspector: cdk.TreeInspector): void;
640 protected get cfnProperties(): {
641 [key: string]: any;
642 };
643 protected renderProperties(props: {
644 [key: string]: any;
645 }): {
646 [key: string]: any;
647 };
648}
649/**
650 * Properties for defining a `CfnResourcePolicy`
651 *
652 * @struct
653 * @stability external
654 *
655 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html
656 */
657export interface CfnResourcePolicyProps {
658 /**
659 * 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.
660 *
661 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policydocument
662 */
663 readonly policyDocument: string;
664 /**
665 * The name of the resource policy.
666 *
667 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policyname
668 */
669 readonly policyName: string;
670}
671/**
672 * A CloudFormation `AWS::Logs::ResourcePolicy`
673 *
674 * 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.
675 *
676 * @cloudformationResource AWS::Logs::ResourcePolicy
677 * @stability external
678 *
679 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html
680 */
681export declare class CfnResourcePolicy extends cdk.CfnResource implements cdk.IInspectable {
682 /**
683 * The CloudFormation resource type name for this resource class.
684 */
685 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::ResourcePolicy";
686 /**
687 * A factory method that creates a new instance of this class from an object
688 * containing the CloudFormation properties of this resource.
689 * Used in the @aws-cdk/cloudformation-include module.
690 *
691 * @internal
692 */
693 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnResourcePolicy;
694 /**
695 * 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.
696 *
697 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policydocument
698 */
699 policyDocument: string;
700 /**
701 * The name of the resource policy.
702 *
703 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policyname
704 */
705 policyName: string;
706 /**
707 * Create a new `AWS::Logs::ResourcePolicy`.
708 *
709 * @param scope - scope in which this resource is defined
710 * @param id - scoped id of the resource
711 * @param props - resource properties
712 */
713 constructor(scope: cdk.Construct, id: string, props: CfnResourcePolicyProps);
714 /**
715 * Examines the CloudFormation resource and discloses attributes.
716 *
717 * @param inspector - tree inspector to collect and process attributes
718 *
719 */
720 inspect(inspector: cdk.TreeInspector): void;
721 protected get cfnProperties(): {
722 [key: string]: any;
723 };
724 protected renderProperties(props: {
725 [key: string]: any;
726 }): {
727 [key: string]: any;
728 };
729}
730/**
731 * Properties for defining a `CfnSubscriptionFilter`
732 *
733 * @struct
734 * @stability external
735 *
736 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
737 */
738export interface CfnSubscriptionFilterProps {
739 /**
740 * The Amazon Resource Name (ARN) of the destination.
741 *
742 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-destinationarn
743 */
744 readonly destinationArn: string;
745 /**
746 * 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) .
747 *
748 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filterpattern
749 */
750 readonly filterPattern: string;
751 /**
752 * 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.
753 *
754 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-loggroupname
755 */
756 readonly logGroupName: string;
757 /**
758 * The method used to distribute log data to the destination, which can be either random or grouped by log stream.
759 *
760 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-distribution
761 */
762 readonly distribution?: string;
763 /**
764 * The name of the subscription filter.
765 *
766 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filtername
767 */
768 readonly filterName?: string;
769 /**
770 * 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.
771 *
772 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-rolearn
773 */
774 readonly roleArn?: string;
775}
776/**
777 * A CloudFormation `AWS::Logs::SubscriptionFilter`
778 *
779 * 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:
780 *
781 * - An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.
782 * - A logical destination that belongs to a different account, for cross-account delivery.
783 * - An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.
784 * - An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery.
785 *
786 * There can be as many as two subscription filters associated with a log group.
787 *
788 * @cloudformationResource AWS::Logs::SubscriptionFilter
789 * @stability external
790 *
791 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
792 */
793export declare class CfnSubscriptionFilter extends cdk.CfnResource implements cdk.IInspectable {
794 /**
795 * The CloudFormation resource type name for this resource class.
796 */
797 static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Logs::SubscriptionFilter";
798 /**
799 * A factory method that creates a new instance of this class from an object
800 * containing the CloudFormation properties of this resource.
801 * Used in the @aws-cdk/cloudformation-include module.
802 *
803 * @internal
804 */
805 static _fromCloudFormation(scope: cdk.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnSubscriptionFilter;
806 /**
807 * The Amazon Resource Name (ARN) of the destination.
808 *
809 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-destinationarn
810 */
811 destinationArn: string;
812 /**
813 * 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) .
814 *
815 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filterpattern
816 */
817 filterPattern: string;
818 /**
819 * 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.
820 *
821 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-loggroupname
822 */
823 logGroupName: string;
824 /**
825 * The method used to distribute log data to the destination, which can be either random or grouped by log stream.
826 *
827 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-distribution
828 */
829 distribution: string | undefined;
830 /**
831 * The name of the subscription filter.
832 *
833 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-filtername
834 */
835 filterName: string | undefined;
836 /**
837 * 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.
838 *
839 * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-logs-subscriptionfilter-rolearn
840 */
841 roleArn: string | undefined;
842 /**
843 * Create a new `AWS::Logs::SubscriptionFilter`.
844 *
845 * @param scope - scope in which this resource is defined
846 * @param id - scoped id of the resource
847 * @param props - resource properties
848 */
849 constructor(scope: cdk.Construct, id: string, props: CfnSubscriptionFilterProps);
850 /**
851 * Examines the CloudFormation resource and discloses attributes.
852 *
853 * @param inspector - tree inspector to collect and process attributes
854 *
855 */
856 inspect(inspector: cdk.TreeInspector): void;
857 protected get cfnProperties(): {
858 [key: string]: any;
859 };
860 protected renderProperties(props: {
861 [key: string]: any;
862 }): {
863 [key: string]: any;
864 };
865}