import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { ConfigServiceClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConfigServiceClient"; import type { DeleteConfigRuleRequest } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link DeleteConfigRuleCommand}. */ export interface DeleteConfigRuleCommandInput extends DeleteConfigRuleRequest { } /** * @public * * The output of {@link DeleteConfigRuleCommand}. */ export interface DeleteConfigRuleCommandOutput extends __MetadataBearer { } declare const DeleteConfigRuleCommand_base: { new (input: DeleteConfigRuleCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: DeleteConfigRuleCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Deletes the specified Config rule and all of its evaluation * results.

*

Config sets the state of a rule to DELETING * until the deletion is complete. You cannot update a rule while it is * in this state. If you make a PutConfigRule or * DeleteConfigRule request for the rule, you will * receive a ResourceInUseException.

*

You can check the state of a rule by using the * DescribeConfigRules request.

* *

* Recommendation: Consider excluding the AWS::Config::ResourceCompliance resource type from recording before deleting rules *

*

Deleting rules creates configuration items (CIs) for AWS::Config::ResourceCompliance * that can affect your costs for the configuration recorder. If you are deleting rules which evaluate a large number of resource types, * this can lead to a spike in the number of CIs recorded.

*

To avoid the associated costs, you can opt to disable recording * for the AWS::Config::ResourceCompliance resource type before deleting rules, and re-enable recording after the rules have been deleted.

*

However, since deleting rules is an asynchronous process, it might take an hour or more to complete. During the time * when recording is disabled for AWS::Config::ResourceCompliance, rule evaluations will not be recorded in the associated resource’s history.

*
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { ConfigServiceClient, DeleteConfigRuleCommand } from "@aws-sdk/client-config-service"; // ES Modules import * // const { ConfigServiceClient, DeleteConfigRuleCommand } = require("@aws-sdk/client-config-service"); // CommonJS import * // import type { ConfigServiceClientConfig } from "@aws-sdk/client-config-service"; * const config = {}; // type is ConfigServiceClientConfig * const client = new ConfigServiceClient(config); * const input = { // DeleteConfigRuleRequest * ConfigRuleName: "STRING_VALUE", // required * }; * const command = new DeleteConfigRuleCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param DeleteConfigRuleCommandInput - {@link DeleteConfigRuleCommandInput} * @returns {@link DeleteConfigRuleCommandOutput} * @see {@link DeleteConfigRuleCommandInput} for command's `input` shape. * @see {@link DeleteConfigRuleCommandOutput} for command's `response` shape. * @see {@link ConfigServiceClientResolvedConfig | config} for ConfigServiceClient's `config` shape. * * @throws {@link NoSuchConfigRuleException} (client fault) *

The Config rule in the request is not valid. Verify that the rule is an Config Process Check rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

* * @throws {@link ResourceInUseException} (client fault) *

You see this exception in the following cases:

* * * @throws {@link ConfigServiceServiceException} *

Base exception class for all service exceptions from ConfigService service.

* * * @public */ export declare class DeleteConfigRuleCommand extends DeleteConfigRuleCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: DeleteConfigRuleRequest; output: {}; }; sdk: { input: DeleteConfigRuleCommandInput; output: DeleteConfigRuleCommandOutput; }; }; }