@aws-sdk/client-cloudwatch-logs 3.347.1 → 3.350.0
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.
- package/README.md +24 -0
- package/dist-cjs/CloudWatchLogs.js +6 -0
- package/dist-cjs/commands/DeleteAccountPolicyCommand.js +46 -0
- package/dist-cjs/commands/DescribeAccountPoliciesCommand.js +46 -0
- package/dist-cjs/commands/PutAccountPolicyCommand.js +46 -0
- package/dist-cjs/commands/index.js +3 -0
- package/dist-cjs/endpoint/ruleset.js +3 -3
- package/dist-cjs/models/models_0.js +10 -1
- package/dist-cjs/protocols/Aws_json1_1.js +147 -2
- package/dist-es/CloudWatchLogs.js +6 -0
- package/dist-es/commands/DeleteAccountPolicyCommand.js +42 -0
- package/dist-es/commands/DescribeAccountPoliciesCommand.js +42 -0
- package/dist-es/commands/PutAccountPolicyCommand.js +42 -0
- package/dist-es/commands/index.js +3 -0
- package/dist-es/endpoint/ruleset.js +3 -3
- package/dist-es/models/models_0.js +9 -0
- package/dist-es/protocols/Aws_json1_1.js +138 -0
- package/dist-types/CloudWatchLogs.d.ts +21 -0
- package/dist-types/CloudWatchLogsClient.d.ts +5 -2
- package/dist-types/commands/CreateLogGroupCommand.d.ts +1 -1
- package/dist-types/commands/DeleteAccountPolicyCommand.d.ts +86 -0
- package/dist-types/commands/DescribeAccountPoliciesCommand.d.ts +98 -0
- package/dist-types/commands/DescribeLogGroupsCommand.d.ts +3 -0
- package/dist-types/commands/FilterLogEventsCommand.d.ts +1 -1
- package/dist-types/commands/PutAccountPolicyCommand.d.ts +121 -0
- package/dist-types/commands/PutDataProtectionPolicyCommand.d.ts +6 -0
- package/dist-types/commands/PutLogEventsCommand.d.ts +3 -0
- package/dist-types/commands/PutSubscriptionFilterCommand.d.ts +2 -1
- package/dist-types/commands/StartQueryCommand.d.ts +2 -2
- package/dist-types/commands/index.d.ts +3 -0
- package/dist-types/endpoint/EndpointParameters.d.ts +1 -1
- package/dist-types/models/models_0.d.ts +194 -11
- package/dist-types/protocols/Aws_json1_1.d.ts +27 -0
- package/dist-types/ts3.4/CloudWatchLogs.d.ts +51 -0
- package/dist-types/ts3.4/CloudWatchLogsClient.d.ts +18 -0
- package/dist-types/ts3.4/commands/DeleteAccountPolicyCommand.d.ts +34 -0
- package/dist-types/ts3.4/commands/DescribeAccountPoliciesCommand.d.ts +42 -0
- package/dist-types/ts3.4/commands/PutAccountPolicyCommand.d.ts +38 -0
- package/dist-types/ts3.4/commands/index.d.ts +3 -0
- package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +1 -1
- package/dist-types/ts3.4/models/models_0.d.ts +43 -0
- package/dist-types/ts3.4/protocols/Aws_json1_1.d.ts +36 -0
- package/package.json +4 -4
|
@@ -64,6 +64,9 @@ export interface DescribeLogGroupsCommandOutput extends DescribeLogGroupsRespons
|
|
|
64
64
|
* // storedBytes: Number("long"),
|
|
65
65
|
* // kmsKeyId: "STRING_VALUE",
|
|
66
66
|
* // dataProtectionStatus: "ACTIVATED" || "DELETED" || "ARCHIVED" || "DISABLED",
|
|
67
|
+
* // inheritedProperties: [ // InheritedProperties
|
|
68
|
+
* // "ACCOUNT_DATA_PROTECTION",
|
|
69
|
+
* // ],
|
|
67
70
|
* // },
|
|
68
71
|
* // ],
|
|
69
72
|
* // nextToken: "STRING_VALUE",
|
|
@@ -25,7 +25,7 @@ export interface FilterLogEventsCommandOutput extends FilterLogEventsResponse, _
|
|
|
25
25
|
* @public
|
|
26
26
|
* <p>Lists log events from the specified log group. You can list all the log events or filter the results
|
|
27
27
|
* using a filter pattern, a time range, and the name of the log stream.</p>
|
|
28
|
-
* <p>You must have the <code>logs
|
|
28
|
+
* <p>You must have the <code>logs:FilterLogEvents</code> permission to perform this operation.</p>
|
|
29
29
|
* <p>You can specify the log group to search by using either <code>logGroupIdentifier</code> or <code>logGroupName</code>.
|
|
30
30
|
* You must include one of these two parameters, but you can't include both.
|
|
31
31
|
* </p>
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint";
|
|
2
|
+
import { Command as $Command } from "@aws-sdk/smithy-client";
|
|
3
|
+
import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types";
|
|
4
|
+
import { CloudWatchLogsClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CloudWatchLogsClient";
|
|
5
|
+
import { PutAccountPolicyRequest, PutAccountPolicyResponse } from "../models/models_0";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export { __MetadataBearer, $Command };
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*
|
|
13
|
+
* The input for {@link PutAccountPolicyCommand}.
|
|
14
|
+
*/
|
|
15
|
+
export interface PutAccountPolicyCommandInput extends PutAccountPolicyRequest {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @public
|
|
19
|
+
*
|
|
20
|
+
* The output of {@link PutAccountPolicyCommand}.
|
|
21
|
+
*/
|
|
22
|
+
export interface PutAccountPolicyCommandOutput extends PutAccountPolicyResponse, __MetadataBearer {
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @public
|
|
26
|
+
* <p>Creates an account-level data protection policy that applies to all log groups in the account. A data protection policy can help safeguard sensitive
|
|
27
|
+
* data that's ingested by your log groups by auditing and masking the sensitive log data. Each account can have only
|
|
28
|
+
* one account-level policy.</p>
|
|
29
|
+
* <important>
|
|
30
|
+
* <p>Sensitive data is detected and masked when it is ingested into a log group. When you set a
|
|
31
|
+
* data protection policy, log events ingested into the log groups before that time are not masked.</p>
|
|
32
|
+
* </important>
|
|
33
|
+
* <p>If you use <code>PutAccountPolicy</code> to create a data protection policy for your whole account, it applies to both existing log groups
|
|
34
|
+
* and all log groups that are created later in this account. The account policy is applied to existing log groups
|
|
35
|
+
* with eventual consistency. It might take up to 5 minutes before sensitive data in existing log groups begins to be masked.</p>
|
|
36
|
+
* <p>By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks.
|
|
37
|
+
* A user who has the <code>logs:Unmask</code> permission can use a
|
|
38
|
+
* <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html">GetLogEvents</a> or
|
|
39
|
+
* <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html">FilterLogEvents</a>
|
|
40
|
+
* operation with the <code>unmask</code> parameter set to <code>true</code> to view the unmasked
|
|
41
|
+
* log events. Users with the <code>logs:Unmask</code> can also view unmasked data in the CloudWatch Logs
|
|
42
|
+
* console by running a CloudWatch Logs Insights query with the <code>unmask</code> query command.</p>
|
|
43
|
+
* <p>For more information, including a list of types of data that can be audited and masked, see
|
|
44
|
+
* <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html">Protect sensitive log data with masking</a>.</p>
|
|
45
|
+
* <p>To use the <code>PutAccountPolicy</code> operation, you must be signed on with the <code>logs:PutDataProtectionPolicy</code>
|
|
46
|
+
* and <code>logs:PutAccountPolicy</code> permissions.</p>
|
|
47
|
+
* <p>The <code>PutAccountPolicy</code> operation applies to all log groups in the account. You can also use
|
|
48
|
+
* <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html">PutDataProtectionPolicy</a>
|
|
49
|
+
* to create a data protection policy that applies to just one log group.
|
|
50
|
+
* If a log group has its own data protection policy and
|
|
51
|
+
* the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term
|
|
52
|
+
* specified in either policy is masked.</p>
|
|
53
|
+
* @example
|
|
54
|
+
* Use a bare-bones client and the command you need to make an API call.
|
|
55
|
+
* ```javascript
|
|
56
|
+
* import { CloudWatchLogsClient, PutAccountPolicyCommand } from "@aws-sdk/client-cloudwatch-logs"; // ES Modules import
|
|
57
|
+
* // const { CloudWatchLogsClient, PutAccountPolicyCommand } = require("@aws-sdk/client-cloudwatch-logs"); // CommonJS import
|
|
58
|
+
* const client = new CloudWatchLogsClient(config);
|
|
59
|
+
* const input = { // PutAccountPolicyRequest
|
|
60
|
+
* policyName: "STRING_VALUE", // required
|
|
61
|
+
* policyDocument: "STRING_VALUE", // required
|
|
62
|
+
* policyType: "DATA_PROTECTION_POLICY", // required
|
|
63
|
+
* scope: "ALL",
|
|
64
|
+
* };
|
|
65
|
+
* const command = new PutAccountPolicyCommand(input);
|
|
66
|
+
* const response = await client.send(command);
|
|
67
|
+
* // { // PutAccountPolicyResponse
|
|
68
|
+
* // accountPolicy: { // AccountPolicy
|
|
69
|
+
* // policyName: "STRING_VALUE",
|
|
70
|
+
* // policyDocument: "STRING_VALUE",
|
|
71
|
+
* // lastUpdatedTime: Number("long"),
|
|
72
|
+
* // policyType: "DATA_PROTECTION_POLICY",
|
|
73
|
+
* // scope: "ALL",
|
|
74
|
+
* // accountId: "STRING_VALUE",
|
|
75
|
+
* // },
|
|
76
|
+
* // };
|
|
77
|
+
*
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @param PutAccountPolicyCommandInput - {@link PutAccountPolicyCommandInput}
|
|
81
|
+
* @returns {@link PutAccountPolicyCommandOutput}
|
|
82
|
+
* @see {@link PutAccountPolicyCommandInput} for command's `input` shape.
|
|
83
|
+
* @see {@link PutAccountPolicyCommandOutput} for command's `response` shape.
|
|
84
|
+
* @see {@link CloudWatchLogsClientResolvedConfig | config} for CloudWatchLogsClient's `config` shape.
|
|
85
|
+
*
|
|
86
|
+
* @throws {@link InvalidParameterException} (client fault)
|
|
87
|
+
* <p>A parameter is specified incorrectly.</p>
|
|
88
|
+
*
|
|
89
|
+
* @throws {@link LimitExceededException} (client fault)
|
|
90
|
+
* <p>You have reached the maximum number of resources that can be created.</p>
|
|
91
|
+
*
|
|
92
|
+
* @throws {@link OperationAbortedException} (client fault)
|
|
93
|
+
* <p>Multiple concurrent requests to update the same resource were in conflict.</p>
|
|
94
|
+
*
|
|
95
|
+
* @throws {@link ServiceUnavailableException} (server fault)
|
|
96
|
+
* <p>The service cannot complete the request.</p>
|
|
97
|
+
*
|
|
98
|
+
* @throws {@link CloudWatchLogsServiceException}
|
|
99
|
+
* <p>Base exception class for all service exceptions from CloudWatchLogs service.</p>
|
|
100
|
+
*
|
|
101
|
+
*/
|
|
102
|
+
export declare class PutAccountPolicyCommand extends $Command<PutAccountPolicyCommandInput, PutAccountPolicyCommandOutput, CloudWatchLogsClientResolvedConfig> {
|
|
103
|
+
readonly input: PutAccountPolicyCommandInput;
|
|
104
|
+
static getEndpointParameterInstructions(): EndpointParameterInstructions;
|
|
105
|
+
/**
|
|
106
|
+
* @public
|
|
107
|
+
*/
|
|
108
|
+
constructor(input: PutAccountPolicyCommandInput);
|
|
109
|
+
/**
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
resolveMiddleware(clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>, configuration: CloudWatchLogsClientResolvedConfig, options?: __HttpHandlerOptions): Handler<PutAccountPolicyCommandInput, PutAccountPolicyCommandOutput>;
|
|
113
|
+
/**
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
private serialize;
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
private deserialize;
|
|
121
|
+
}
|
|
@@ -38,6 +38,12 @@ export interface PutDataProtectionPolicyCommandOutput extends PutDataProtectionP
|
|
|
38
38
|
* console by running a CloudWatch Logs Insights query with the <code>unmask</code> query command.</p>
|
|
39
39
|
* <p>For more information, including a list of types of data that can be audited and masked, see
|
|
40
40
|
* <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html">Protect sensitive log data with masking</a>.</p>
|
|
41
|
+
* <p>The <code>PutDataProtectionPolicy</code> operation applies to only the specified log group. You can also use
|
|
42
|
+
* <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html">PutAccountPolicy</a>
|
|
43
|
+
* to create an account-level data protection policy that applies to all log groups in the account,
|
|
44
|
+
* including both existing log groups and log groups that are created level. If a log group has its own data protection policy and
|
|
45
|
+
* the account also has an account-level data protection policy, then the two policies are cumulative. Any sensitive term
|
|
46
|
+
* specified in either policy is masked.</p>
|
|
41
47
|
* @example
|
|
42
48
|
* Use a bare-bones client and the command you need to make an API call.
|
|
43
49
|
* ```javascript
|
|
@@ -56,6 +56,9 @@ export interface PutLogEventsCommandOutput extends PutLogEventsResponse, __Metad
|
|
|
56
56
|
* <p>A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.</p>
|
|
57
57
|
* </li>
|
|
58
58
|
* <li>
|
|
59
|
+
* <p>Each log event can be no larger than 256 KB.</p>
|
|
60
|
+
* </li>
|
|
61
|
+
* <li>
|
|
59
62
|
* <p>The maximum number of log events in a batch is 10,000.</p>
|
|
60
63
|
* </li>
|
|
61
64
|
* <li>
|
|
@@ -49,7 +49,8 @@ export interface PutSubscriptionFilterCommandOutput extends __MetadataBearer {
|
|
|
49
49
|
* <p>Each log group can have up to two subscription filters associated with it. If you are
|
|
50
50
|
* updating an existing filter, you must specify the correct name in <code>filterName</code>.
|
|
51
51
|
* </p>
|
|
52
|
-
* <p>To perform a <code>PutSubscriptionFilter</code> operation
|
|
52
|
+
* <p>To perform a <code>PutSubscriptionFilter</code> operation for any destination except a Lambda function,
|
|
53
|
+
* you must also have the
|
|
53
54
|
* <code>iam:PassRole</code> permission.</p>
|
|
54
55
|
* @example
|
|
55
56
|
* Use a bare-bones client and the command you need to make an API call.
|
|
@@ -26,14 +26,14 @@ export interface StartQueryCommandOutput extends StartQueryResponse, __MetadataB
|
|
|
26
26
|
* <p>Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group
|
|
27
27
|
* and time range to query and the query string to use.</p>
|
|
28
28
|
* <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html">CloudWatch Logs Insights Query Syntax</a>.</p>
|
|
29
|
-
* <p>Queries time out after
|
|
29
|
+
* <p>Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the
|
|
30
30
|
* time range being searched or partition your query into a number of queries.</p>
|
|
31
31
|
* <p>If you are using CloudWatch cross-account observability, you can use this operation in a
|
|
32
32
|
* monitoring account to start a query in a linked source account. For more information, see
|
|
33
33
|
* <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html">CloudWatch
|
|
34
34
|
* cross-account observability</a>. For a cross-account <code>StartQuery</code> operation,
|
|
35
35
|
* the query definition must be defined in the monitoring account.</p>
|
|
36
|
-
* <p>You can have up to
|
|
36
|
+
* <p>You can have up to 30 concurrent CloudWatch Logs insights queries, including queries
|
|
37
37
|
* that have been added to dashboards. </p>
|
|
38
38
|
* @example
|
|
39
39
|
* Use a bare-bones client and the command you need to make an API call.
|
|
@@ -3,6 +3,7 @@ export * from "./CancelExportTaskCommand";
|
|
|
3
3
|
export * from "./CreateExportTaskCommand";
|
|
4
4
|
export * from "./CreateLogGroupCommand";
|
|
5
5
|
export * from "./CreateLogStreamCommand";
|
|
6
|
+
export * from "./DeleteAccountPolicyCommand";
|
|
6
7
|
export * from "./DeleteDataProtectionPolicyCommand";
|
|
7
8
|
export * from "./DeleteDestinationCommand";
|
|
8
9
|
export * from "./DeleteLogGroupCommand";
|
|
@@ -12,6 +13,7 @@ export * from "./DeleteQueryDefinitionCommand";
|
|
|
12
13
|
export * from "./DeleteResourcePolicyCommand";
|
|
13
14
|
export * from "./DeleteRetentionPolicyCommand";
|
|
14
15
|
export * from "./DeleteSubscriptionFilterCommand";
|
|
16
|
+
export * from "./DescribeAccountPoliciesCommand";
|
|
15
17
|
export * from "./DescribeDestinationsCommand";
|
|
16
18
|
export * from "./DescribeExportTasksCommand";
|
|
17
19
|
export * from "./DescribeLogGroupsCommand";
|
|
@@ -30,6 +32,7 @@ export * from "./GetLogRecordCommand";
|
|
|
30
32
|
export * from "./GetQueryResultsCommand";
|
|
31
33
|
export * from "./ListTagsForResourceCommand";
|
|
32
34
|
export * from "./ListTagsLogGroupCommand";
|
|
35
|
+
export * from "./PutAccountPolicyCommand";
|
|
33
36
|
export * from "./PutDataProtectionPolicyCommand";
|
|
34
37
|
export * from "./PutDestinationCommand";
|
|
35
38
|
export * from "./PutDestinationPolicyCommand";
|
|
@@ -13,7 +13,7 @@ export declare const resolveClientEndpointParameters: <T>(options: T & ClientInp
|
|
|
13
13
|
defaultSigningName: string;
|
|
14
14
|
};
|
|
15
15
|
export interface EndpointParameters extends __EndpointParameters {
|
|
16
|
-
Region
|
|
16
|
+
Region?: string;
|
|
17
17
|
UseDualStack?: boolean;
|
|
18
18
|
UseFIPS?: boolean;
|
|
19
19
|
Endpoint?: string;
|
|
@@ -1,5 +1,58 @@
|
|
|
1
1
|
import { ExceptionOptionType as __ExceptionOptionType } from "@aws-sdk/smithy-client";
|
|
2
2
|
import { CloudWatchLogsServiceException as __BaseException } from "./CloudWatchLogsServiceException";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
* @enum
|
|
6
|
+
*/
|
|
7
|
+
export declare const PolicyType: {
|
|
8
|
+
readonly DATA_PROTECTION_POLICY: "DATA_PROTECTION_POLICY";
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export type PolicyType = (typeof PolicyType)[keyof typeof PolicyType];
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
* @enum
|
|
17
|
+
*/
|
|
18
|
+
export declare const Scope: {
|
|
19
|
+
readonly ALL: "ALL";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export type Scope = (typeof Scope)[keyof typeof Scope];
|
|
25
|
+
/**
|
|
26
|
+
* @public
|
|
27
|
+
* <p>A structure that contains information about one CloudWatch Logs account policy.</p>
|
|
28
|
+
*/
|
|
29
|
+
export interface AccountPolicy {
|
|
30
|
+
/**
|
|
31
|
+
* <p>The name of the account policy.</p>
|
|
32
|
+
*/
|
|
33
|
+
policyName?: string;
|
|
34
|
+
/**
|
|
35
|
+
* <p>The policy document for this account policy.</p>
|
|
36
|
+
* <p>The JSON specified in <code>policyDocument</code> can be up to 30,720 characters.</p>
|
|
37
|
+
*/
|
|
38
|
+
policyDocument?: string;
|
|
39
|
+
/**
|
|
40
|
+
* <p>The date and time that this policy was most recently updated.</p>
|
|
41
|
+
*/
|
|
42
|
+
lastUpdatedTime?: number;
|
|
43
|
+
/**
|
|
44
|
+
* <p>The type of policy for this account policy.</p>
|
|
45
|
+
*/
|
|
46
|
+
policyType?: PolicyType | string;
|
|
47
|
+
/**
|
|
48
|
+
* <p>The scope of the account policy.</p>
|
|
49
|
+
*/
|
|
50
|
+
scope?: Scope | string;
|
|
51
|
+
/**
|
|
52
|
+
* <p>The Amazon Web Services account ID that the policy applies to.</p>
|
|
53
|
+
*/
|
|
54
|
+
accountId?: string;
|
|
55
|
+
}
|
|
3
56
|
/**
|
|
4
57
|
* @public
|
|
5
58
|
*/
|
|
@@ -230,6 +283,19 @@ export declare const DataProtectionStatus: {
|
|
|
230
283
|
* @public
|
|
231
284
|
*/
|
|
232
285
|
export type DataProtectionStatus = (typeof DataProtectionStatus)[keyof typeof DataProtectionStatus];
|
|
286
|
+
/**
|
|
287
|
+
* @public
|
|
288
|
+
*/
|
|
289
|
+
export interface DeleteAccountPolicyRequest {
|
|
290
|
+
/**
|
|
291
|
+
* <p>The name of the policy to delete.</p>
|
|
292
|
+
*/
|
|
293
|
+
policyName: string | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* <p>The type of policy to delete. Currently, the only valid value is <code>DATA_PROTECTION_POLICY</code>.</p>
|
|
296
|
+
*/
|
|
297
|
+
policyType: PolicyType | string | undefined;
|
|
298
|
+
}
|
|
233
299
|
/**
|
|
234
300
|
* @public
|
|
235
301
|
*/
|
|
@@ -334,6 +400,39 @@ export interface DeleteSubscriptionFilterRequest {
|
|
|
334
400
|
*/
|
|
335
401
|
filterName: string | undefined;
|
|
336
402
|
}
|
|
403
|
+
/**
|
|
404
|
+
* @public
|
|
405
|
+
*/
|
|
406
|
+
export interface DescribeAccountPoliciesRequest {
|
|
407
|
+
/**
|
|
408
|
+
* <p>Use this parameter to limit the returned policies to only the policies that match the policy type that you
|
|
409
|
+
* specify. Currently, the only valid value is <code>DATA_PROTECTION_POLICY</code>.</p>
|
|
410
|
+
*/
|
|
411
|
+
policyType: PolicyType | string | undefined;
|
|
412
|
+
/**
|
|
413
|
+
* <p>Use this parameter to limit the returned policies to only the policy with the name that you specify.</p>
|
|
414
|
+
*/
|
|
415
|
+
policyName?: string;
|
|
416
|
+
/**
|
|
417
|
+
* <p>If you are using an account that is set up as a monitoring account for CloudWatch unified cross-account
|
|
418
|
+
* observability, you can use this to specify the account ID of a source account. If you do,
|
|
419
|
+
* the operation returns the account policy for the specified account. Currently, you can specify only
|
|
420
|
+
* one account ID in this parameter.</p>
|
|
421
|
+
* <p>If you
|
|
422
|
+
* omit this parameter, only the policy in the current account is returned.</p>
|
|
423
|
+
*/
|
|
424
|
+
accountIdentifiers?: string[];
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* @public
|
|
428
|
+
*/
|
|
429
|
+
export interface DescribeAccountPoliciesResponse {
|
|
430
|
+
/**
|
|
431
|
+
* <p>An array of structures that contain information about the CloudWatch Logs account policies that match
|
|
432
|
+
* the specified filters.</p>
|
|
433
|
+
*/
|
|
434
|
+
accountPolicies?: AccountPolicy[];
|
|
435
|
+
}
|
|
337
436
|
/**
|
|
338
437
|
* @public
|
|
339
438
|
*/
|
|
@@ -548,6 +647,9 @@ export interface DescribeLogGroupsRequest {
|
|
|
548
647
|
* that match the string based on a case-sensitive substring search. For example, if you specify <code>Foo</code>, log groups
|
|
549
648
|
* named <code>FooBar</code>, <code>aws/Foo</code>, and <code>GroupFoo</code> would match, but <code>foo</code>,
|
|
550
649
|
* <code>F/o/o</code> and <code>Froo</code> would not match.</p>
|
|
650
|
+
* <p>If you specify <code>logGroupNamePattern</code> in your request, then only
|
|
651
|
+
* <code>arn</code>, <code>creationTime</code>, and <code>logGroupName</code>
|
|
652
|
+
* are included in the response. </p>
|
|
551
653
|
* <note>
|
|
552
654
|
* <p>
|
|
553
655
|
* <code>logGroupNamePattern</code> and <code>logGroupNamePrefix</code> are mutually exclusive.
|
|
@@ -573,14 +675,20 @@ export interface DescribeLogGroupsRequest {
|
|
|
573
675
|
*
|
|
574
676
|
* contains a null value, the operation returns all log groups in the monitoring account
|
|
575
677
|
* and all log groups in all source accounts that are linked to the monitoring account. </p>
|
|
576
|
-
* <note>
|
|
577
|
-
* <p> If you specify <code>includeLinkedAccounts</code> in your request, then
|
|
578
|
-
* <code>metricFilterCount</code>, <code>retentionInDays</code>, and <code>storedBytes</code>
|
|
579
|
-
* are not included in the response. </p>
|
|
580
|
-
* </note>
|
|
581
678
|
*/
|
|
582
679
|
includeLinkedAccounts?: boolean;
|
|
583
680
|
}
|
|
681
|
+
/**
|
|
682
|
+
* @public
|
|
683
|
+
* @enum
|
|
684
|
+
*/
|
|
685
|
+
export declare const InheritedProperty: {
|
|
686
|
+
readonly ACCOUNT_DATA_PROTECTION: "ACCOUNT_DATA_PROTECTION";
|
|
687
|
+
};
|
|
688
|
+
/**
|
|
689
|
+
* @public
|
|
690
|
+
*/
|
|
691
|
+
export type InheritedProperty = (typeof InheritedProperty)[keyof typeof InheritedProperty];
|
|
584
692
|
/**
|
|
585
693
|
* @public
|
|
586
694
|
* <p>Represents a log group.</p>
|
|
@@ -597,7 +705,7 @@ export interface LogGroup {
|
|
|
597
705
|
creationTime?: number;
|
|
598
706
|
/**
|
|
599
707
|
* <p>The number of days to retain the log events in the specified log group.
|
|
600
|
-
* Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.</p>
|
|
708
|
+
* 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.</p>
|
|
601
709
|
* <p>To set a log group so that its log events do not expire, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html">DeleteRetentionPolicy</a>. </p>
|
|
602
710
|
*/
|
|
603
711
|
retentionInDays?: number;
|
|
@@ -623,6 +731,11 @@ export interface LogGroup {
|
|
|
623
731
|
* <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html">PutDataProtectionPolicy</a>.</p>
|
|
624
732
|
*/
|
|
625
733
|
dataProtectionStatus?: DataProtectionStatus | string;
|
|
734
|
+
/**
|
|
735
|
+
* <p>Displays all the properties that this log group has inherited from account-level
|
|
736
|
+
* settings.</p>
|
|
737
|
+
*/
|
|
738
|
+
inheritedProperties?: (InheritedProperty | string)[];
|
|
626
739
|
}
|
|
627
740
|
/**
|
|
628
741
|
* @public
|
|
@@ -1651,7 +1764,7 @@ export interface GetQueryResultsResponse {
|
|
|
1651
1764
|
* <p>The status of the most recent running of the query. Possible values are <code>Cancelled</code>,
|
|
1652
1765
|
* <code>Complete</code>, <code>Failed</code>, <code>Running</code>, <code>Scheduled</code>,
|
|
1653
1766
|
* <code>Timeout</code>, and <code>Unknown</code>.</p>
|
|
1654
|
-
* <p>Queries time out after
|
|
1767
|
+
* <p>Queries time out after 60 minutes of runtime. To avoid having your queries time out,
|
|
1655
1768
|
* reduce the time range being searched or partition your query into a number of queries.</p>
|
|
1656
1769
|
*/
|
|
1657
1770
|
status?: QueryStatus | string;
|
|
@@ -1668,7 +1781,7 @@ export interface InputLogEvent {
|
|
|
1668
1781
|
*/
|
|
1669
1782
|
timestamp: number | undefined;
|
|
1670
1783
|
/**
|
|
1671
|
-
* <p>The raw event message.</p>
|
|
1784
|
+
* <p>The raw event message. Each log event can be no larger than 256 KB.</p>
|
|
1672
1785
|
*/
|
|
1673
1786
|
message: string | undefined;
|
|
1674
1787
|
}
|
|
@@ -1739,6 +1852,72 @@ export interface ListTagsLogGroupResponse {
|
|
|
1739
1852
|
*/
|
|
1740
1853
|
tags?: Record<string, string>;
|
|
1741
1854
|
}
|
|
1855
|
+
/**
|
|
1856
|
+
* @public
|
|
1857
|
+
*/
|
|
1858
|
+
export interface PutAccountPolicyRequest {
|
|
1859
|
+
/**
|
|
1860
|
+
* <p>A name for the policy. This must be unique within the account.</p>
|
|
1861
|
+
*/
|
|
1862
|
+
policyName: string | undefined;
|
|
1863
|
+
/**
|
|
1864
|
+
* <p>Specify the data protection policy, in JSON.</p>
|
|
1865
|
+
* <p>This policy must include two JSON blocks:</p>
|
|
1866
|
+
* <ul>
|
|
1867
|
+
* <li>
|
|
1868
|
+
* <p>The first block must include both a <code>DataIdentifer</code> array and an
|
|
1869
|
+
* <code>Operation</code> property with an <code>Audit</code> action. The <code>DataIdentifer</code> array lists the types of sensitive data that
|
|
1870
|
+
* you want to mask. For more information about the available options, see
|
|
1871
|
+
* <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html">Types of data that you can mask</a>.</p>
|
|
1872
|
+
* <p>The <code>Operation</code> property with an <code>Audit</code> action is required to find the
|
|
1873
|
+
* sensitive data terms. This <code>Audit</code> action must contain a <code>FindingsDestination</code>
|
|
1874
|
+
* object. You can optionally use that <code>FindingsDestination</code> object to list one or more
|
|
1875
|
+
* destinations to send audit findings to. If you specify destinations such as log groups,
|
|
1876
|
+
* Kinesis Data Firehose streams, and S3 buckets, they must already exist.</p>
|
|
1877
|
+
* </li>
|
|
1878
|
+
* <li>
|
|
1879
|
+
* <p>The second block must include both a <code>DataIdentifer</code> array and an
|
|
1880
|
+
* <code>Operation</code> property with an <code>Deidentify</code> action. The
|
|
1881
|
+
* <code>DataIdentifer</code> array must exactly match the <code>DataIdentifer</code> array
|
|
1882
|
+
* in the first block of the policy.</p>
|
|
1883
|
+
* <p>The <code>Operation</code> property with the <code>Deidentify</code> action is what actually masks the
|
|
1884
|
+
* data, and it must
|
|
1885
|
+
* contain the <code>
|
|
1886
|
+
* "MaskConfig": \{\}</code> object. The <code>
|
|
1887
|
+
* "MaskConfig": \{\}</code> object must be empty.</p>
|
|
1888
|
+
* </li>
|
|
1889
|
+
* </ul>
|
|
1890
|
+
* <p>For an example data protection policy, see the <b>Examples</b> section on this page.</p>
|
|
1891
|
+
* <important>
|
|
1892
|
+
* <p>The contents of the two <code>DataIdentifer</code> arrays must match exactly.</p>
|
|
1893
|
+
* </important>
|
|
1894
|
+
* <p>In addition to the two JSON blocks, the <code>policyDocument</code> can also include <code>Name</code>,
|
|
1895
|
+
* <code>Description</code>, and <code>Version</code> fields. The <code>Name</code> is different than the
|
|
1896
|
+
* operation's <code>policyName</code> parameter, and is used as a dimension when
|
|
1897
|
+
* CloudWatch Logs reports audit findings metrics to CloudWatch.</p>
|
|
1898
|
+
* <p>The JSON specified in <code>policyDocument</code> can be up to 30,720 characters.</p>
|
|
1899
|
+
*/
|
|
1900
|
+
policyDocument: string | undefined;
|
|
1901
|
+
/**
|
|
1902
|
+
* <p>Currently the only valid value for this parameter is <code>DATA_PROTECTION_POLICY</code>.</p>
|
|
1903
|
+
*/
|
|
1904
|
+
policyType: PolicyType | string | undefined;
|
|
1905
|
+
/**
|
|
1906
|
+
* <p>Currently the only valid value for this parameter is <code>GLOBAL</code>, which specifies that the data
|
|
1907
|
+
* protection policy applies to all log groups in the account. If you omit this parameter, the default
|
|
1908
|
+
* of <code>GLOBAL</code> is used.</p>
|
|
1909
|
+
*/
|
|
1910
|
+
scope?: Scope | string;
|
|
1911
|
+
}
|
|
1912
|
+
/**
|
|
1913
|
+
* @public
|
|
1914
|
+
*/
|
|
1915
|
+
export interface PutAccountPolicyResponse {
|
|
1916
|
+
/**
|
|
1917
|
+
* <p>The account policy that you created.</p>
|
|
1918
|
+
*/
|
|
1919
|
+
accountPolicy?: AccountPolicy;
|
|
1920
|
+
}
|
|
1742
1921
|
/**
|
|
1743
1922
|
* @public
|
|
1744
1923
|
*/
|
|
@@ -1776,8 +1955,12 @@ export interface PutDataProtectionPolicyRequest {
|
|
|
1776
1955
|
* </ul>
|
|
1777
1956
|
* <p>For an example data protection policy, see the <b>Examples</b> section on this page.</p>
|
|
1778
1957
|
* <important>
|
|
1779
|
-
* <p>The contents of two <code>DataIdentifer</code> arrays must match exactly.</p>
|
|
1958
|
+
* <p>The contents of the two <code>DataIdentifer</code> arrays must match exactly.</p>
|
|
1780
1959
|
* </important>
|
|
1960
|
+
* <p>In addition to the two JSON blocks, the <code>policyDocument</code> can also include <code>Name</code>,
|
|
1961
|
+
* <code>Description</code>, and <code>Version</code> fields. The <code>Name</code> is used as a dimension when
|
|
1962
|
+
* CloudWatch Logs reports audit findings metrics to CloudWatch.</p>
|
|
1963
|
+
* <p>The JSON specified in <code>policyDocument</code> can be up to 30,720 characters.</p>
|
|
1781
1964
|
*/
|
|
1782
1965
|
policyDocument: string | undefined;
|
|
1783
1966
|
}
|
|
@@ -1847,7 +2030,7 @@ export interface PutDestinationPolicyRequest {
|
|
|
1847
2030
|
accessPolicy: string | undefined;
|
|
1848
2031
|
/**
|
|
1849
2032
|
* <p>Specify true if you are updating an existing destination policy to grant permission to
|
|
1850
|
-
*
|
|
2033
|
+
* an organization ID instead of granting permission to individual Amazon Web Services accounts. Before
|
|
1851
2034
|
* you update a destination policy this way, you must first update the subscription
|
|
1852
2035
|
* filters in the accounts that send logs to this destination. If you do not, the subscription
|
|
1853
2036
|
* filters might stop working. By specifying <code>true</code>
|
|
@@ -2072,7 +2255,7 @@ export interface PutRetentionPolicyRequest {
|
|
|
2072
2255
|
logGroupName: string | undefined;
|
|
2073
2256
|
/**
|
|
2074
2257
|
* <p>The number of days to retain the log events in the specified log group.
|
|
2075
|
-
* Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.</p>
|
|
2258
|
+
* 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.</p>
|
|
2076
2259
|
* <p>To set a log group so that its log events do not expire, use <a href="https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html">DeleteRetentionPolicy</a>. </p>
|
|
2077
2260
|
*/
|
|
2078
2261
|
retentionInDays: number | undefined;
|
|
@@ -5,6 +5,7 @@ import { CancelExportTaskCommandInput, CancelExportTaskCommandOutput } from "../
|
|
|
5
5
|
import { CreateExportTaskCommandInput, CreateExportTaskCommandOutput } from "../commands/CreateExportTaskCommand";
|
|
6
6
|
import { CreateLogGroupCommandInput, CreateLogGroupCommandOutput } from "../commands/CreateLogGroupCommand";
|
|
7
7
|
import { CreateLogStreamCommandInput, CreateLogStreamCommandOutput } from "../commands/CreateLogStreamCommand";
|
|
8
|
+
import { DeleteAccountPolicyCommandInput, DeleteAccountPolicyCommandOutput } from "../commands/DeleteAccountPolicyCommand";
|
|
8
9
|
import { DeleteDataProtectionPolicyCommandInput, DeleteDataProtectionPolicyCommandOutput } from "../commands/DeleteDataProtectionPolicyCommand";
|
|
9
10
|
import { DeleteDestinationCommandInput, DeleteDestinationCommandOutput } from "../commands/DeleteDestinationCommand";
|
|
10
11
|
import { DeleteLogGroupCommandInput, DeleteLogGroupCommandOutput } from "../commands/DeleteLogGroupCommand";
|
|
@@ -14,6 +15,7 @@ import { DeleteQueryDefinitionCommandInput, DeleteQueryDefinitionCommandOutput }
|
|
|
14
15
|
import { DeleteResourcePolicyCommandInput, DeleteResourcePolicyCommandOutput } from "../commands/DeleteResourcePolicyCommand";
|
|
15
16
|
import { DeleteRetentionPolicyCommandInput, DeleteRetentionPolicyCommandOutput } from "../commands/DeleteRetentionPolicyCommand";
|
|
16
17
|
import { DeleteSubscriptionFilterCommandInput, DeleteSubscriptionFilterCommandOutput } from "../commands/DeleteSubscriptionFilterCommand";
|
|
18
|
+
import { DescribeAccountPoliciesCommandInput, DescribeAccountPoliciesCommandOutput } from "../commands/DescribeAccountPoliciesCommand";
|
|
17
19
|
import { DescribeDestinationsCommandInput, DescribeDestinationsCommandOutput } from "../commands/DescribeDestinationsCommand";
|
|
18
20
|
import { DescribeExportTasksCommandInput, DescribeExportTasksCommandOutput } from "../commands/DescribeExportTasksCommand";
|
|
19
21
|
import { DescribeLogGroupsCommandInput, DescribeLogGroupsCommandOutput } from "../commands/DescribeLogGroupsCommand";
|
|
@@ -32,6 +34,7 @@ import { GetLogRecordCommandInput, GetLogRecordCommandOutput } from "../commands
|
|
|
32
34
|
import { GetQueryResultsCommandInput, GetQueryResultsCommandOutput } from "../commands/GetQueryResultsCommand";
|
|
33
35
|
import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput } from "../commands/ListTagsForResourceCommand";
|
|
34
36
|
import { ListTagsLogGroupCommandInput, ListTagsLogGroupCommandOutput } from "../commands/ListTagsLogGroupCommand";
|
|
37
|
+
import { PutAccountPolicyCommandInput, PutAccountPolicyCommandOutput } from "../commands/PutAccountPolicyCommand";
|
|
35
38
|
import { PutDataProtectionPolicyCommandInput, PutDataProtectionPolicyCommandOutput } from "../commands/PutDataProtectionPolicyCommand";
|
|
36
39
|
import { PutDestinationCommandInput, PutDestinationCommandOutput } from "../commands/PutDestinationCommand";
|
|
37
40
|
import { PutDestinationPolicyCommandInput, PutDestinationPolicyCommandOutput } from "../commands/PutDestinationPolicyCommand";
|
|
@@ -68,6 +71,10 @@ export declare const se_CreateLogGroupCommand: (input: CreateLogGroupCommandInpu
|
|
|
68
71
|
* serializeAws_json1_1CreateLogStreamCommand
|
|
69
72
|
*/
|
|
70
73
|
export declare const se_CreateLogStreamCommand: (input: CreateLogStreamCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
|
|
74
|
+
/**
|
|
75
|
+
* serializeAws_json1_1DeleteAccountPolicyCommand
|
|
76
|
+
*/
|
|
77
|
+
export declare const se_DeleteAccountPolicyCommand: (input: DeleteAccountPolicyCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
|
|
71
78
|
/**
|
|
72
79
|
* serializeAws_json1_1DeleteDataProtectionPolicyCommand
|
|
73
80
|
*/
|
|
@@ -104,6 +111,10 @@ export declare const se_DeleteRetentionPolicyCommand: (input: DeleteRetentionPol
|
|
|
104
111
|
* serializeAws_json1_1DeleteSubscriptionFilterCommand
|
|
105
112
|
*/
|
|
106
113
|
export declare const se_DeleteSubscriptionFilterCommand: (input: DeleteSubscriptionFilterCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
|
|
114
|
+
/**
|
|
115
|
+
* serializeAws_json1_1DescribeAccountPoliciesCommand
|
|
116
|
+
*/
|
|
117
|
+
export declare const se_DescribeAccountPoliciesCommand: (input: DescribeAccountPoliciesCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
|
|
107
118
|
/**
|
|
108
119
|
* serializeAws_json1_1DescribeDestinationsCommand
|
|
109
120
|
*/
|
|
@@ -176,6 +187,10 @@ export declare const se_ListTagsForResourceCommand: (input: ListTagsForResourceC
|
|
|
176
187
|
* serializeAws_json1_1ListTagsLogGroupCommand
|
|
177
188
|
*/
|
|
178
189
|
export declare const se_ListTagsLogGroupCommand: (input: ListTagsLogGroupCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
|
|
190
|
+
/**
|
|
191
|
+
* serializeAws_json1_1PutAccountPolicyCommand
|
|
192
|
+
*/
|
|
193
|
+
export declare const se_PutAccountPolicyCommand: (input: PutAccountPolicyCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
|
|
179
194
|
/**
|
|
180
195
|
* serializeAws_json1_1PutDataProtectionPolicyCommand
|
|
181
196
|
*/
|
|
@@ -260,6 +275,10 @@ export declare const de_CreateLogGroupCommand: (output: __HttpResponse, context:
|
|
|
260
275
|
* deserializeAws_json1_1CreateLogStreamCommand
|
|
261
276
|
*/
|
|
262
277
|
export declare const de_CreateLogStreamCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<CreateLogStreamCommandOutput>;
|
|
278
|
+
/**
|
|
279
|
+
* deserializeAws_json1_1DeleteAccountPolicyCommand
|
|
280
|
+
*/
|
|
281
|
+
export declare const de_DeleteAccountPolicyCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<DeleteAccountPolicyCommandOutput>;
|
|
263
282
|
/**
|
|
264
283
|
* deserializeAws_json1_1DeleteDataProtectionPolicyCommand
|
|
265
284
|
*/
|
|
@@ -296,6 +315,10 @@ export declare const de_DeleteRetentionPolicyCommand: (output: __HttpResponse, c
|
|
|
296
315
|
* deserializeAws_json1_1DeleteSubscriptionFilterCommand
|
|
297
316
|
*/
|
|
298
317
|
export declare const de_DeleteSubscriptionFilterCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<DeleteSubscriptionFilterCommandOutput>;
|
|
318
|
+
/**
|
|
319
|
+
* deserializeAws_json1_1DescribeAccountPoliciesCommand
|
|
320
|
+
*/
|
|
321
|
+
export declare const de_DescribeAccountPoliciesCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<DescribeAccountPoliciesCommandOutput>;
|
|
299
322
|
/**
|
|
300
323
|
* deserializeAws_json1_1DescribeDestinationsCommand
|
|
301
324
|
*/
|
|
@@ -368,6 +391,10 @@ export declare const de_ListTagsForResourceCommand: (output: __HttpResponse, con
|
|
|
368
391
|
* deserializeAws_json1_1ListTagsLogGroupCommand
|
|
369
392
|
*/
|
|
370
393
|
export declare const de_ListTagsLogGroupCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<ListTagsLogGroupCommandOutput>;
|
|
394
|
+
/**
|
|
395
|
+
* deserializeAws_json1_1PutAccountPolicyCommand
|
|
396
|
+
*/
|
|
397
|
+
export declare const de_PutAccountPolicyCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<PutAccountPolicyCommandOutput>;
|
|
371
398
|
/**
|
|
372
399
|
* deserializeAws_json1_1PutDataProtectionPolicyCommand
|
|
373
400
|
*/
|