import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Creates an AWS Compute Optimizer automation rule that automatically implements recommended actions based on your defined criteria and schedule. Automation rules are global resources that manage automated actions across all AWS Regions where Compute Optimizer Automation is available. Organization-level rules can only be created by the management account or delegated administrator.
 */
export declare class AutomationRule extends pulumi.CustomResource {
    /**
     * Get an existing AutomationRule resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): AutomationRule;
    /**
     * Returns true if the given object is an instance of AutomationRule.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is AutomationRule;
    /**
     * The AWS account ID that owns the automation rule.
     */
    readonly accountId: pulumi.Output<string>;
    /**
     * The timestamp when the automation rule was created.
     */
    readonly createdTimestamp: pulumi.Output<string>;
    /**
     * Filter criteria that specify which recommended actions qualify for implementation.
     */
    readonly criteria: pulumi.Output<outputs.computeoptimizer.AutomationRuleCriteria | undefined>;
    /**
     * The description of the automation rule.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The timestamp when the automation rule was last updated.
     */
    readonly lastUpdatedTimestamp: pulumi.Output<string>;
    /**
     * The name of the automation rule.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Organization configuration for organization rules, including rule apply order and account scope.
     */
    readonly organizationConfiguration: pulumi.Output<outputs.computeoptimizer.AutomationRuleOrganizationConfiguration | undefined>;
    /**
     * Rule priority within its group
     */
    readonly priority: pulumi.Output<string | undefined>;
    /**
     * The types of recommended actions this rule will implement.
     */
    readonly recommendedActionTypes: pulumi.Output<enums.computeoptimizer.AutomationRuleRecommendedActionTypesItem[]>;
    /**
     * The Amazon Resource Name (ARN) of the automation rule.
     */
    readonly ruleArn: pulumi.Output<string>;
    /**
     * The unique identifier of the automation rule.
     */
    readonly ruleId: pulumi.Output<string>;
    /**
     * The revision number of the automation rule.
     */
    readonly ruleRevision: pulumi.Output<string>;
    /**
     * The type of automation rule.
     */
    readonly ruleType: pulumi.Output<enums.computeoptimizer.AutomationRuleRuleType>;
    /**
     * The schedule configuration for when the rule runs.
     */
    readonly schedule: pulumi.Output<outputs.computeoptimizer.AutomationRuleSchedule>;
    /**
     * The status of the automation rule.
     */
    readonly status: pulumi.Output<enums.computeoptimizer.AutomationRuleStatus>;
    /**
     * Tags associated with the automation rule.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a AutomationRule resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: AutomationRuleArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a AutomationRule resource.
 */
export interface AutomationRuleArgs {
    /**
     * Filter criteria that specify which recommended actions qualify for implementation.
     */
    criteria?: pulumi.Input<inputs.computeoptimizer.AutomationRuleCriteriaArgs>;
    /**
     * The description of the automation rule.
     */
    description?: pulumi.Input<string>;
    /**
     * The name of the automation rule.
     */
    name?: pulumi.Input<string>;
    /**
     * Organization configuration for organization rules, including rule apply order and account scope.
     */
    organizationConfiguration?: pulumi.Input<inputs.computeoptimizer.AutomationRuleOrganizationConfigurationArgs>;
    /**
     * Rule priority within its group
     */
    priority?: pulumi.Input<string>;
    /**
     * The types of recommended actions this rule will implement.
     */
    recommendedActionTypes: pulumi.Input<pulumi.Input<enums.computeoptimizer.AutomationRuleRecommendedActionTypesItem>[]>;
    /**
     * The type of automation rule.
     */
    ruleType: pulumi.Input<enums.computeoptimizer.AutomationRuleRuleType>;
    /**
     * The schedule configuration for when the rule runs.
     */
    schedule: pulumi.Input<inputs.computeoptimizer.AutomationRuleScheduleArgs>;
    /**
     * The status of the automation rule.
     */
    status: pulumi.Input<enums.computeoptimizer.AutomationRuleStatus>;
    /**
     * Tags associated with the automation rule.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
