UNPKG

@pulumi/aws-native

Version:

The Pulumi AWS Cloud Control Provider enables you to build, deploy, and manage [any AWS resource that's supported by the AWS Cloud Control API](https://github.com/pulumi/pulumi-aws-native/blob/master/provider/cmd/pulumi-gen-aws-native/supported-types.txt)

650 lines • 26.6 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.AutomationRule = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../utilities"); /** * The ``AWS::SecurityHub::AutomationRule`` resource specifies an automation rule based on input parameters. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*. * * ## Example Usage * ### Example * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws_native from "@pulumi/aws-native"; * * const ruleWithCriteriaActionsTags = new aws_native.securityhub.AutomationRule("ruleWithCriteriaActionsTags", { * ruleName: "Example rule name", * ruleOrder: 5, * description: "Example rule description.", * isTerminal: false, * ruleStatus: aws_native.securityhub.AutomationRuleRuleStatus.Enabled, * criteria: { * productName: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "GuardDuty", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "SecurityHub", * }, * ], * companyName: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "AWS", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "Private", * }, * ], * productArn: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "arn:aws:securityhub:us-west-2:123456789012:product/123456789012/default", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "arn:aws:securityhub:us-west-2:123456789012:product/aws", * }, * ], * awsAccountId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "123456789012", * }], * id: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-finding-id", * }], * generatorId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-generator-id", * }], * type: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "type-1", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "type-2", * }, * ], * description: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "description1", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "description2", * }, * ], * sourceUrl: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "https", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "ftp", * }, * ], * title: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "title-1", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "title-2", * }, * ], * severityLabel: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "LOW", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "HIGH", * }, * ], * resourceType: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "AwsEc2Instance", * }], * resourcePartition: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "aws", * }], * resourceId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "i-1234567890", * }], * resourceRegion: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "us-west", * }], * complianceStatus: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "FAILED", * }], * complianceSecurityControlId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "EC2.3", * }], * complianceAssociatedStandardsId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "ruleset/cis-aws-foundations-benchmark/v/1.2.0", * }], * verificationState: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "BENIGN_POSITIVE", * }], * recordState: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "ACTIVE", * }], * relatedFindingsProductArn: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "arn:aws:securityhub:eu-central-1::product/aws/securityhub", * }], * relatedFindingsId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-finding-id-2", * }], * noteText: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-note-text", * }], * noteUpdatedAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * noteUpdatedBy: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "sechub", * }], * workflowStatus: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "NEW", * }], * firstObservedAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * lastObservedAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * createdAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * updatedAt: [{ * start: "2023-04-25T17:05:54.832Z", * end: "2023-05-25T17:05:54.832Z", * }], * resourceTags: [ * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "department", * value: "security", * }, * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "department", * value: "operations", * }, * ], * userDefinedFields: [ * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.Equals, * key: "key1", * value: "security", * }, * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.Equals, * key: "key2", * value: "operations", * }, * ], * resourceDetailsOther: [ * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "area", * value: "na", * }, * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "department", * value: "sales", * }, * ], * confidence: [{ * gte: 50, * lte: 95, * }], * criticality: [{ * gte: 50, * lte: 95, * }], * }, * actions: [{ * type: aws_native.securityhub.AutomationRulesActionType.FindingFieldsUpdate, * findingFieldsUpdate: { * severity: { * product: 50, * label: aws_native.securityhub.AutomationRuleSeverityUpdateLabel.Medium, * normalized: 60, * }, * types: [ * "Software and Configuration Checks/Industry and Regulatory Standards/AWS-Foundational-Security-Best-Practices", * "Industry Compliance", * ], * confidence: 98, * criticality: 95, * userDefinedFields: { * key1: "value1", * key2: "value2", * }, * relatedFindings: [ * { * productArn: "arn:aws:securityhub:us-west-2:123456789012:product/123456789012/default", * id: "sample-finding-id-1", * }, * { * productArn: "arn:aws:securityhub:us-west-2:123456789012:product/123456789012/default", * id: "sample-finding-id-2", * }, * ], * note: { * text: "sample-note-text", * updatedBy: "sechub", * }, * verificationState: aws_native.securityhub.AutomationRulesFindingFieldsUpdateVerificationState.TruePositive, * workflow: { * status: aws_native.securityhub.AutomationRuleWorkflowUpdateStatus.Notified, * }, * }, * }], * tags: { * sampleTag: "sampleValue", * organizationUnit: "pnw", * }, * }); * * ``` * ### Example * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws_native from "@pulumi/aws-native"; * * const ruleWithCriteriaActionsTags = new aws_native.securityhub.AutomationRule("ruleWithCriteriaActionsTags", { * ruleName: "Example rule name", * ruleOrder: 5, * description: "Example rule description.", * isTerminal: false, * ruleStatus: aws_native.securityhub.AutomationRuleRuleStatus.Enabled, * criteria: { * productName: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "GuardDuty", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "SecurityHub", * }, * ], * companyName: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "AWS", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "Private", * }, * ], * productArn: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "arn:aws:securityhub:us-west-2:123456789012:product/123456789012/default", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "arn:aws:securityhub:us-west-2:123456789012:product/aws", * }, * ], * awsAccountId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "123456789012", * }], * id: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-finding-id", * }], * generatorId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-generator-id", * }], * type: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "type-1", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "type-2", * }, * ], * description: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "description1", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "description2", * }, * ], * sourceUrl: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "https", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "ftp", * }, * ], * title: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "title-1", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "title-2", * }, * ], * severityLabel: [ * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "LOW", * }, * { * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "HIGH", * }, * ], * resourceType: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "AwsEc2Instance", * }], * resourcePartition: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "aws", * }], * resourceId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "i-1234567890", * }], * resourceRegion: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "us-west", * }], * complianceStatus: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "FAILED", * }], * complianceSecurityControlId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "EC2.3", * }], * complianceAssociatedStandardsId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "ruleset/cis-aws-foundations-benchmark/v/1.2.0", * }], * verificationState: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "BENIGN_POSITIVE", * }], * recordState: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "ACTIVE", * }], * relatedFindingsProductArn: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "arn:aws:securityhub:eu-central-1::product/aws/securityhub", * }], * relatedFindingsId: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-finding-id-2", * }], * noteText: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "example-note-text", * }], * noteUpdatedAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * noteUpdatedBy: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Prefix, * value: "sechub", * }], * workflowStatus: [{ * comparison: aws_native.securityhub.AutomationRuleStringFilterComparison.Equals, * value: "NEW", * }], * firstObservedAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * lastObservedAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * createdAt: [{ * dateRange: { * unit: aws_native.securityhub.AutomationRuleDateRangeUnit.Days, * value: 5, * }, * }], * updatedAt: [{ * start: "2023-04-25T17:05:54.832Z", * end: "2023-05-25T17:05:54.832Z", * }], * resourceTags: [ * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "department", * value: "security", * }, * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "department", * value: "operations", * }, * ], * userDefinedFields: [ * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.Equals, * key: "key1", * value: "security", * }, * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.Equals, * key: "key2", * value: "operations", * }, * ], * resourceDetailsOther: [ * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "area", * value: "na", * }, * { * comparison: aws_native.securityhub.AutomationRuleMapFilterComparison.NotEquals, * key: "department", * value: "sales", * }, * ], * confidence: [{ * gte: 50, * lte: 95, * }], * criticality: [{ * gte: 50, * lte: 95, * }], * }, * actions: [{ * type: aws_native.securityhub.AutomationRulesActionType.FindingFieldsUpdate, * findingFieldsUpdate: { * severity: { * product: 50, * label: aws_native.securityhub.AutomationRuleSeverityUpdateLabel.Medium, * normalized: 60, * }, * types: [ * "Software and Configuration Checks/Industry and Regulatory Standards/AWS-Foundational-Security-Best-Practices", * "Industry Compliance", * ], * confidence: 98, * criticality: 95, * userDefinedFields: { * key1: "value1", * key2: "value2", * }, * relatedFindings: [ * { * productArn: "arn:aws:securityhub:us-west-2:123456789012:product/123456789012/default", * id: "sample-finding-id-1", * }, * { * productArn: "arn:aws:securityhub:us-west-2:123456789012:product/123456789012/default", * id: "sample-finding-id-2", * }, * ], * note: { * text: "sample-note-text", * updatedBy: "sechub", * }, * verificationState: aws_native.securityhub.AutomationRulesFindingFieldsUpdateVerificationState.TruePositive, * workflow: { * status: aws_native.securityhub.AutomationRuleWorkflowUpdateStatus.Notified, * }, * }, * }], * tags: { * sampleTag: "sampleValue", * organizationUnit: "pnw", * }, * }); * * ``` */ 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, id, opts) { return new AutomationRule(name, undefined, Object.assign(Object.assign({}, opts), { id: id })); } /** * 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) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === AutomationRule.__pulumiType; } /** * 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, args, opts) { let resourceInputs = {}; opts = opts || {}; if (!opts.id) { if ((!args || args.actions === undefined) && !opts.urn) { throw new Error("Missing required property 'actions'"); } if ((!args || args.criteria === undefined) && !opts.urn) { throw new Error("Missing required property 'criteria'"); } if ((!args || args.description === undefined) && !opts.urn) { throw new Error("Missing required property 'description'"); } if ((!args || args.ruleOrder === undefined) && !opts.urn) { throw new Error("Missing required property 'ruleOrder'"); } resourceInputs["actions"] = args ? args.actions : undefined; resourceInputs["criteria"] = args ? args.criteria : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["isTerminal"] = args ? args.isTerminal : undefined; resourceInputs["ruleName"] = args ? args.ruleName : undefined; resourceInputs["ruleOrder"] = args ? args.ruleOrder : undefined; resourceInputs["ruleStatus"] = args ? args.ruleStatus : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["createdBy"] = undefined /*out*/; resourceInputs["ruleArn"] = undefined /*out*/; resourceInputs["updatedAt"] = undefined /*out*/; } else { resourceInputs["actions"] = undefined /*out*/; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["createdBy"] = undefined /*out*/; resourceInputs["criteria"] = undefined /*out*/; resourceInputs["description"] = undefined /*out*/; resourceInputs["isTerminal"] = undefined /*out*/; resourceInputs["ruleArn"] = undefined /*out*/; resourceInputs["ruleName"] = undefined /*out*/; resourceInputs["ruleOrder"] = undefined /*out*/; resourceInputs["ruleStatus"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; resourceInputs["updatedAt"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(AutomationRule.__pulumiType, name, resourceInputs, opts); } } exports.AutomationRule = AutomationRule; /** @internal */ AutomationRule.__pulumiType = 'aws-native:securityhub:AutomationRule'; //# sourceMappingURL=automationRule.js.map