import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource Type definition for AWS::SSM::PatchBaseline
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const myPatchBaseline = new aws_native.ssm.PatchBaseline("myPatchBaseline", {
 *     name: "myPatchBaseline",
 *     description: "Baseline containing all updates approved for Windows instances",
 *     operatingSystem: aws_native.ssm.PatchBaselineOperatingSystem.Windows,
 *     patchGroups: ["myPatchGroup"],
 *     approvalRules: {
 *         patchRules: [
 *             {
 *                 patchFilterGroup: {
 *                     patchFilters: [
 *                         {
 *                             values: [
 *                                 "Critical",
 *                                 "Important",
 *                                 "Moderate",
 *                             ],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.MsrcSeverity,
 *                         },
 *                         {
 *                             values: [
 *                                 "SecurityUpdates",
 *                                 "CriticalUpdates",
 *                             ],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Classification,
 *                         },
 *                         {
 *                             values: ["WindowsServer2019"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Product,
 *                         },
 *                     ],
 *                 },
 *                 approveAfterDays: 7,
 *                 complianceLevel: aws_native.ssm.PatchBaselineRuleComplianceLevel.Critical,
 *             },
 *             {
 *                 patchFilterGroup: {
 *                     patchFilters: [
 *                         {
 *                             values: [
 *                                 "Critical",
 *                                 "Important",
 *                                 "Moderate",
 *                             ],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.MsrcSeverity,
 *                         },
 *                         {
 *                             values: ["*"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Classification,
 *                         },
 *                         {
 *                             values: ["APPLICATION"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.PatchSet,
 *                         },
 *                         {
 *                             values: ["Active Directory Rights Management Services Client 2.0"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Product,
 *                         },
 *                         {
 *                             values: ["Active Directory"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.ProductFamily,
 *                         },
 *                     ],
 *                 },
 *                 approveAfterDays: 7,
 *                 complianceLevel: aws_native.ssm.PatchBaselineRuleComplianceLevel.Critical,
 *             },
 *         ],
 *     },
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const myPatchBaseline = new aws_native.ssm.PatchBaseline("myPatchBaseline", {
 *     name: "myPatchBaseline",
 *     description: "Baseline containing all updates approved for Windows instances",
 *     operatingSystem: aws_native.ssm.PatchBaselineOperatingSystem.Windows,
 *     patchGroups: ["myPatchGroup"],
 *     approvalRules: {
 *         patchRules: [
 *             {
 *                 patchFilterGroup: {
 *                     patchFilters: [
 *                         {
 *                             values: [
 *                                 "Critical",
 *                                 "Important",
 *                                 "Moderate",
 *                             ],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.MsrcSeverity,
 *                         },
 *                         {
 *                             values: [
 *                                 "SecurityUpdates",
 *                                 "CriticalUpdates",
 *                             ],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Classification,
 *                         },
 *                         {
 *                             values: ["WindowsServer2019"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Product,
 *                         },
 *                     ],
 *                 },
 *                 approveAfterDays: 7,
 *                 complianceLevel: aws_native.ssm.PatchBaselineRuleComplianceLevel.Critical,
 *             },
 *             {
 *                 patchFilterGroup: {
 *                     patchFilters: [
 *                         {
 *                             values: [
 *                                 "Critical",
 *                                 "Important",
 *                                 "Moderate",
 *                             ],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.MsrcSeverity,
 *                         },
 *                         {
 *                             values: ["*"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Classification,
 *                         },
 *                         {
 *                             values: ["APPLICATION"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.PatchSet,
 *                         },
 *                         {
 *                             values: ["Active Directory Rights Management Services Client 2.0"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.Product,
 *                         },
 *                         {
 *                             values: ["Active Directory"],
 *                             key: aws_native.ssm.PatchBaselinePatchFilterKey.ProductFamily,
 *                         },
 *                     ],
 *                 },
 *                 approveAfterDays: 7,
 *                 complianceLevel: aws_native.ssm.PatchBaselineRuleComplianceLevel.Critical,
 *             },
 *         ],
 *     },
 * });
 *
 * ```
 */
export declare class PatchBaseline extends pulumi.CustomResource {
    /**
     * Get an existing PatchBaseline 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): PatchBaseline;
    /**
     * Returns true if the given object is an instance of PatchBaseline.  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 PatchBaseline;
    /**
     * A set of rules used to include patches in the baseline.
     */
    readonly approvalRules: pulumi.Output<outputs.ssm.PatchBaselineRuleGroup | undefined>;
    /**
     * A list of explicitly approved patches for the baseline.
     */
    readonly approvedPatches: pulumi.Output<string[] | undefined>;
    /**
     * Defines the compliance level for approved patches. This means that if an approved patch is reported as missing, this is the severity of the compliance violation. The default value is UNSPECIFIED.
     */
    readonly approvedPatchesComplianceLevel: pulumi.Output<enums.ssm.PatchBaselineApprovedPatchesComplianceLevel | undefined>;
    /**
     * Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.
     */
    readonly approvedPatchesEnableNonSecurity: pulumi.Output<boolean | undefined>;
    /**
     * The compliance status for vendor recommended security updates that are not approved by this patch baseline.
     */
    readonly availableSecurityUpdatesComplianceStatus: pulumi.Output<enums.ssm.PatchBaselineAvailableSecurityUpdatesComplianceStatus | undefined>;
    /**
     * The ID of the patch baseline.
     */
    readonly awsId: pulumi.Output<string>;
    /**
     * Set the baseline as default baseline. Only registering to default patch baseline is allowed.
     */
    readonly defaultBaseline: pulumi.Output<boolean | undefined>;
    /**
     * The description of the patch baseline.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * A set of global filters used to include patches in the baseline.
     */
    readonly globalFilters: pulumi.Output<outputs.ssm.PatchBaselinePatchFilterGroup | undefined>;
    /**
     * The name of the patch baseline.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Defines the operating system the patch baseline applies to. The Default value is WINDOWS.
     */
    readonly operatingSystem: pulumi.Output<enums.ssm.PatchBaselineOperatingSystem | undefined>;
    /**
     * PatchGroups is used to associate instances with a specific patch baseline
     */
    readonly patchGroups: pulumi.Output<string[] | undefined>;
    /**
     * A list of explicitly rejected patches for the baseline.
     */
    readonly rejectedPatches: pulumi.Output<string[] | undefined>;
    /**
     * The action for Patch Manager to take on patches included in the RejectedPackages list.
     */
    readonly rejectedPatchesAction: pulumi.Output<enums.ssm.PatchBaselineRejectedPatchesAction | undefined>;
    /**
     * Information about the patches to use to update the instances, including target operating systems and source repository. Applies to Linux instances only.
     */
    readonly sources: pulumi.Output<outputs.ssm.PatchBaselinePatchSource[] | undefined>;
    /**
     * Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a PatchBaseline 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?: PatchBaselineArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a PatchBaseline resource.
 */
export interface PatchBaselineArgs {
    /**
     * A set of rules used to include patches in the baseline.
     */
    approvalRules?: pulumi.Input<inputs.ssm.PatchBaselineRuleGroupArgs>;
    /**
     * A list of explicitly approved patches for the baseline.
     */
    approvedPatches?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Defines the compliance level for approved patches. This means that if an approved patch is reported as missing, this is the severity of the compliance violation. The default value is UNSPECIFIED.
     */
    approvedPatchesComplianceLevel?: pulumi.Input<enums.ssm.PatchBaselineApprovedPatchesComplianceLevel>;
    /**
     * Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.
     */
    approvedPatchesEnableNonSecurity?: pulumi.Input<boolean>;
    /**
     * The compliance status for vendor recommended security updates that are not approved by this patch baseline.
     */
    availableSecurityUpdatesComplianceStatus?: pulumi.Input<enums.ssm.PatchBaselineAvailableSecurityUpdatesComplianceStatus>;
    /**
     * Set the baseline as default baseline. Only registering to default patch baseline is allowed.
     */
    defaultBaseline?: pulumi.Input<boolean>;
    /**
     * The description of the patch baseline.
     */
    description?: pulumi.Input<string>;
    /**
     * A set of global filters used to include patches in the baseline.
     */
    globalFilters?: pulumi.Input<inputs.ssm.PatchBaselinePatchFilterGroupArgs>;
    /**
     * The name of the patch baseline.
     */
    name?: pulumi.Input<string>;
    /**
     * Defines the operating system the patch baseline applies to. The Default value is WINDOWS.
     */
    operatingSystem?: pulumi.Input<enums.ssm.PatchBaselineOperatingSystem>;
    /**
     * PatchGroups is used to associate instances with a specific patch baseline
     */
    patchGroups?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A list of explicitly rejected patches for the baseline.
     */
    rejectedPatches?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The action for Patch Manager to take on patches included in the RejectedPackages list.
     */
    rejectedPatchesAction?: pulumi.Input<enums.ssm.PatchBaselineRejectedPatchesAction>;
    /**
     * Information about the patches to use to update the instances, including target operating systems and source repository. Applies to Linux instances only.
     */
    sources?: pulumi.Input<pulumi.Input<inputs.ssm.PatchBaselinePatchSourceArgs>[]>;
    /**
     * Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
