All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.securityhub.kotlin.ConfigurationPolicyArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.securityhub.kotlin

import com.pulumi.aws.securityhub.ConfigurationPolicyArgs.builder
import com.pulumi.aws.securityhub.kotlin.inputs.ConfigurationPolicyConfigurationPolicyArgs
import com.pulumi.aws.securityhub.kotlin.inputs.ConfigurationPolicyConfigurationPolicyArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Manages Security Hub configuration policy
 * > **NOTE:** This resource requires `aws.securityhub.OrganizationConfiguration` to be configured of type `CENTRAL`. More information about Security Hub central configuration and configuration policies can be found in the [How Security Hub configuration policies work](https://docs.aws.amazon.com/securityhub/latest/userguide/configuration-policies-overview.html) documentation.
 * ## Example Usage
 * ### Default standards enabled
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.securityhub.FindingAggregator("example", {linkingMode: "ALL_REGIONS"});
 * const exampleOrganizationConfiguration = new aws.securityhub.OrganizationConfiguration("example", {
 *     autoEnable: false,
 *     autoEnableStandards: "NONE",
 *     organizationConfiguration: {
 *         configurationType: "CENTRAL",
 *     },
 * }, {
 *     dependsOn: [example],
 * });
 * const exampleConfigurationPolicy = new aws.securityhub.ConfigurationPolicy("example", {
 *     name: "Example",
 *     description: "This is an example configuration policy",
 *     configurationPolicy: {
 *         serviceEnabled: true,
 *         enabledStandardArns: [
 *             "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *             "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
 *         ],
 *         securityControlsConfiguration: {
 *             disabledControlIdentifiers: [],
 *         },
 *     },
 * }, {
 *     dependsOn: [exampleOrganizationConfiguration],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.securityhub.FindingAggregator("example", linking_mode="ALL_REGIONS")
 * example_organization_configuration = aws.securityhub.OrganizationConfiguration("example",
 *     auto_enable=False,
 *     auto_enable_standards="NONE",
 *     organization_configuration={
 *         "configuration_type": "CENTRAL",
 *     },
 *     opts = pulumi.ResourceOptions(depends_on=[example]))
 * example_configuration_policy = aws.securityhub.ConfigurationPolicy("example",
 *     name="Example",
 *     description="This is an example configuration policy",
 *     configuration_policy={
 *         "service_enabled": True,
 *         "enabled_standard_arns": [
 *             "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *             "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
 *         ],
 *         "security_controls_configuration": {
 *             "disabled_control_identifiers": [],
 *         },
 *     },
 *     opts = pulumi.ResourceOptions(depends_on=[example_organization_configuration]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.SecurityHub.FindingAggregator("example", new()
 *     {
 *         LinkingMode = "ALL_REGIONS",
 *     });
 *     var exampleOrganizationConfiguration = new Aws.SecurityHub.OrganizationConfiguration("example", new()
 *     {
 *         AutoEnable = false,
 *         AutoEnableStandards = "NONE",
 *         OrganizationConfigurationDetails = new Aws.SecurityHub.Inputs.OrganizationConfigurationOrganizationConfigurationArgs
 *         {
 *             ConfigurationType = "CENTRAL",
 *         },
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             example,
 *         },
 *     });
 *     var exampleConfigurationPolicy = new Aws.SecurityHub.ConfigurationPolicy("example", new()
 *     {
 *         Name = "Example",
 *         Description = "This is an example configuration policy",
 *         ConfigurationPolicyDetails = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicyArgs
 *         {
 *             ServiceEnabled = true,
 *             EnabledStandardArns = new[]
 *             {
 *                 "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *                 "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
 *             },
 *             SecurityControlsConfiguration = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs
 *             {
 *                 DisabledControlIdentifiers = new() { },
 *             },
 *         },
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             exampleOrganizationConfiguration,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := securityhub.NewFindingAggregator(ctx, "example", &securityhub.FindingAggregatorArgs{
 * 			LinkingMode: pulumi.String("ALL_REGIONS"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleOrganizationConfiguration, err := securityhub.NewOrganizationConfiguration(ctx, "example", &securityhub.OrganizationConfigurationArgs{
 * 			AutoEnable:          pulumi.Bool(false),
 * 			AutoEnableStandards: pulumi.String("NONE"),
 * 			OrganizationConfiguration: &securityhub.OrganizationConfigurationOrganizationConfigurationArgs{
 * 				ConfigurationType: pulumi.String("CENTRAL"),
 * 			},
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			example,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = securityhub.NewConfigurationPolicy(ctx, "example", &securityhub.ConfigurationPolicyArgs{
 * 			Name:        pulumi.String("Example"),
 * 			Description: pulumi.String("This is an example configuration policy"),
 * 			ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{
 * 				ServiceEnabled: pulumi.Bool(true),
 * 				EnabledStandardArns: pulumi.StringArray{
 * 					pulumi.String("arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0"),
 * 					pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"),
 * 				},
 * 				SecurityControlsConfiguration: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs{
 * 					DisabledControlIdentifiers: pulumi.StringArray{},
 * 				},
 * 			},
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			exampleOrganizationConfiguration,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.securityhub.FindingAggregator;
 * import com.pulumi.aws.securityhub.FindingAggregatorArgs;
 * import com.pulumi.aws.securityhub.OrganizationConfiguration;
 * import com.pulumi.aws.securityhub.OrganizationConfigurationArgs;
 * import com.pulumi.aws.securityhub.inputs.OrganizationConfigurationOrganizationConfigurationArgs;
 * import com.pulumi.aws.securityhub.ConfigurationPolicy;
 * import com.pulumi.aws.securityhub.ConfigurationPolicyArgs;
 * import com.pulumi.aws.securityhub.inputs.ConfigurationPolicyConfigurationPolicyArgs;
 * import com.pulumi.aws.securityhub.inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new FindingAggregator("example", FindingAggregatorArgs.builder()
 *             .linkingMode("ALL_REGIONS")
 *             .build());
 *         var exampleOrganizationConfiguration = new OrganizationConfiguration("exampleOrganizationConfiguration", OrganizationConfigurationArgs.builder()
 *             .autoEnable(false)
 *             .autoEnableStandards("NONE")
 *             .organizationConfiguration(OrganizationConfigurationOrganizationConfigurationArgs.builder()
 *                 .configurationType("CENTRAL")
 *                 .build())
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(example)
 *                 .build());
 *         var exampleConfigurationPolicy = new ConfigurationPolicy("exampleConfigurationPolicy", ConfigurationPolicyArgs.builder()
 *             .name("Example")
 *             .description("This is an example configuration policy")
 *             .configurationPolicy(ConfigurationPolicyConfigurationPolicyArgs.builder()
 *                 .serviceEnabled(true)
 *                 .enabledStandardArns(
 *                     "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *                     "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0")
 *                 .securityControlsConfiguration(ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs.builder()
 *                     .disabledControlIdentifiers()
 *                     .build())
 *                 .build())
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(exampleOrganizationConfiguration)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:securityhub:FindingAggregator
 *     properties:
 *       linkingMode: ALL_REGIONS
 *   exampleOrganizationConfiguration:
 *     type: aws:securityhub:OrganizationConfiguration
 *     name: example
 *     properties:
 *       autoEnable: false
 *       autoEnableStandards: NONE
 *       organizationConfiguration:
 *         configurationType: CENTRAL
 *     options:
 *       dependson:
 *         - ${example}
 *   exampleConfigurationPolicy:
 *     type: aws:securityhub:ConfigurationPolicy
 *     name: example
 *     properties:
 *       name: Example
 *       description: This is an example configuration policy
 *       configurationPolicy:
 *         serviceEnabled: true
 *         enabledStandardArns:
 *           - arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0
 *           - arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0
 *         securityControlsConfiguration:
 *           disabledControlIdentifiers: []
 *     options:
 *       dependson:
 *         - ${exampleOrganizationConfiguration}
 * ```
 * 
 * ### Disabled Policy
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const disabled = new aws.securityhub.ConfigurationPolicy("disabled", {
 *     name: "Disabled",
 *     description: "This is an example of disabled configuration policy",
 *     configurationPolicy: {
 *         serviceEnabled: false,
 *     },
 * }, {
 *     dependsOn: [example],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * disabled = aws.securityhub.ConfigurationPolicy("disabled",
 *     name="Disabled",
 *     description="This is an example of disabled configuration policy",
 *     configuration_policy={
 *         "service_enabled": False,
 *     },
 *     opts = pulumi.ResourceOptions(depends_on=[example]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var disabled = new Aws.SecurityHub.ConfigurationPolicy("disabled", new()
 *     {
 *         Name = "Disabled",
 *         Description = "This is an example of disabled configuration policy",
 *         ConfigurationPolicyDetails = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicyArgs
 *         {
 *             ServiceEnabled = false,
 *         },
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             example,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := securityhub.NewConfigurationPolicy(ctx, "disabled", &securityhub.ConfigurationPolicyArgs{
 * 			Name:        pulumi.String("Disabled"),
 * 			Description: pulumi.String("This is an example of disabled configuration policy"),
 * 			ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{
 * 				ServiceEnabled: pulumi.Bool(false),
 * 			},
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			example,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.securityhub.ConfigurationPolicy;
 * import com.pulumi.aws.securityhub.ConfigurationPolicyArgs;
 * import com.pulumi.aws.securityhub.inputs.ConfigurationPolicyConfigurationPolicyArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var disabled = new ConfigurationPolicy("disabled", ConfigurationPolicyArgs.builder()
 *             .name("Disabled")
 *             .description("This is an example of disabled configuration policy")
 *             .configurationPolicy(ConfigurationPolicyConfigurationPolicyArgs.builder()
 *                 .serviceEnabled(false)
 *                 .build())
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(example)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   disabled:
 *     type: aws:securityhub:ConfigurationPolicy
 *     properties:
 *       name: Disabled
 *       description: This is an example of disabled configuration policy
 *       configurationPolicy:
 *         serviceEnabled: false
 *     options:
 *       dependson:
 *         - ${example}
 * ```
 * 
 * ### Custom Control Configuration
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const disabled = new aws.securityhub.ConfigurationPolicy("disabled", {
 *     name: "Custom Controls",
 *     description: "This is an example of configuration policy with custom control settings",
 *     configurationPolicy: {
 *         serviceEnabled: true,
 *         enabledStandardArns: [
 *             "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *             "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
 *         ],
 *         securityControlsConfiguration: {
 *             enabledControlIdentifiers: [
 *                 "APIGateway.1",
 *                 "IAM.7",
 *             ],
 *             securityControlCustomParameters: [
 *                 {
 *                     securityControlId: "APIGateway.1",
 *                     parameters: [{
 *                         name: "loggingLevel",
 *                         valueType: "CUSTOM",
 *                         "enum": {
 *                             value: "INFO",
 *                         },
 *                     }],
 *                 },
 *                 {
 *                     securityControlId: "IAM.7",
 *                     parameters: [
 *                         {
 *                             name: "RequireLowercaseCharacters",
 *                             valueType: "CUSTOM",
 *                             bool: {
 *                                 value: false,
 *                             },
 *                         },
 *                         {
 *                             name: "MaxPasswordAge",
 *                             valueType: "CUSTOM",
 *                             int: {
 *                                 value: 60,
 *                             },
 *                         },
 *                     ],
 *                 },
 *             ],
 *         },
 *     },
 * }, {
 *     dependsOn: [example],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * disabled = aws.securityhub.ConfigurationPolicy("disabled",
 *     name="Custom Controls",
 *     description="This is an example of configuration policy with custom control settings",
 *     configuration_policy={
 *         "service_enabled": True,
 *         "enabled_standard_arns": [
 *             "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *             "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
 *         ],
 *         "security_controls_configuration": {
 *             "enabled_control_identifiers": [
 *                 "APIGateway.1",
 *                 "IAM.7",
 *             ],
 *             "security_control_custom_parameters": [
 *                 {
 *                     "security_control_id": "APIGateway.1",
 *                     "parameters": [{
 *                         "name": "loggingLevel",
 *                         "value_type": "CUSTOM",
 *                         "enum": {
 *                             "value": "INFO",
 *                         },
 *                     }],
 *                 },
 *                 {
 *                     "security_control_id": "IAM.7",
 *                     "parameters": [
 *                         {
 *                             "name": "RequireLowercaseCharacters",
 *                             "value_type": "CUSTOM",
 *                             "bool": {
 *                                 "value": False,
 *                             },
 *                         },
 *                         {
 *                             "name": "MaxPasswordAge",
 *                             "value_type": "CUSTOM",
 *                             "int": {
 *                                 "value": 60,
 *                             },
 *                         },
 *                     ],
 *                 },
 *             ],
 *         },
 *     },
 *     opts = pulumi.ResourceOptions(depends_on=[example]))
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var disabled = new Aws.SecurityHub.ConfigurationPolicy("disabled", new()
 *     {
 *         Name = "Custom Controls",
 *         Description = "This is an example of configuration policy with custom control settings",
 *         ConfigurationPolicyDetails = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicyArgs
 *         {
 *             ServiceEnabled = true,
 *             EnabledStandardArns = new[]
 *             {
 *                 "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *                 "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0",
 *             },
 *             SecurityControlsConfiguration = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs
 *             {
 *                 EnabledControlIdentifiers = new[]
 *                 {
 *                     "APIGateway.1",
 *                     "IAM.7",
 *                 },
 *                 SecurityControlCustomParameters = new[]
 *                 {
 *                     new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs
 *                     {
 *                         SecurityControlId = "APIGateway.1",
 *                         Parameters = new[]
 *                         {
 *                             new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs
 *                             {
 *                                 Name = "loggingLevel",
 *                                 ValueType = "CUSTOM",
 *                                 Enum = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterEnumArgs
 *                                 {
 *                                     Value = "INFO",
 *                                 },
 *                             },
 *                         },
 *                     },
 *                     new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs
 *                     {
 *                         SecurityControlId = "IAM.7",
 *                         Parameters = new[]
 *                         {
 *                             new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs
 *                             {
 *                                 Name = "RequireLowercaseCharacters",
 *                                 ValueType = "CUSTOM",
 *                                 Bool = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterBoolArgs
 *                                 {
 *                                     Value = false,
 *                                 },
 *                             },
 *                             new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs
 *                             {
 *                                 Name = "MaxPasswordAge",
 *                                 ValueType = "CUSTOM",
 *                                 Int = new Aws.SecurityHub.Inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterIntArgs
 *                                 {
 *                                     Value = 60,
 *                                 },
 *                             },
 *                         },
 *                     },
 *                 },
 *             },
 *         },
 *     }, new CustomResourceOptions
 *     {
 *         DependsOn =
 *         {
 *             example,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := securityhub.NewConfigurationPolicy(ctx, "disabled", &securityhub.ConfigurationPolicyArgs{
 * 			Name:        pulumi.String("Custom Controls"),
 * 			Description: pulumi.String("This is an example of configuration policy with custom control settings"),
 * 			ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{
 * 				ServiceEnabled: pulumi.Bool(true),
 * 				EnabledStandardArns: pulumi.StringArray{
 * 					pulumi.String("arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0"),
 * 					pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"),
 * 				},
 * 				SecurityControlsConfiguration: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs{
 * 					EnabledControlIdentifiers: pulumi.StringArray{
 * 						pulumi.String("APIGateway.1"),
 * 						pulumi.String("IAM.7"),
 * 					},
 * 					SecurityControlCustomParameters: securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArray{
 * 						&securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs{
 * 							SecurityControlId: pulumi.String("APIGateway.1"),
 * 							Parameters: securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArray{
 * 								&securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs{
 * 									Name:      pulumi.String("loggingLevel"),
 * 									ValueType: pulumi.String("CUSTOM"),
 * 									Enum: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterEnumArgs{
 * 										Value: pulumi.String("INFO"),
 * 									},
 * 								},
 * 							},
 * 						},
 * 						&securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs{
 * 							SecurityControlId: pulumi.String("IAM.7"),
 * 							Parameters: securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArray{
 * 								&securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs{
 * 									Name:      pulumi.String("RequireLowercaseCharacters"),
 * 									ValueType: pulumi.String("CUSTOM"),
 * 									Bool: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterBoolArgs{
 * 										Value: pulumi.Bool(false),
 * 									},
 * 								},
 * 								&securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs{
 * 									Name:      pulumi.String("MaxPasswordAge"),
 * 									ValueType: pulumi.String("CUSTOM"),
 * 									Int: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterIntArgs{
 * 										Value: pulumi.Int(60),
 * 									},
 * 								},
 * 							},
 * 						},
 * 					},
 * 				},
 * 			},
 * 		}, pulumi.DependsOn([]pulumi.Resource{
 * 			example,
 * 		}))
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.securityhub.ConfigurationPolicy;
 * import com.pulumi.aws.securityhub.ConfigurationPolicyArgs;
 * import com.pulumi.aws.securityhub.inputs.ConfigurationPolicyConfigurationPolicyArgs;
 * import com.pulumi.aws.securityhub.inputs.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs;
 * import com.pulumi.resources.CustomResourceOptions;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var disabled = new ConfigurationPolicy("disabled", ConfigurationPolicyArgs.builder()
 *             .name("Custom Controls")
 *             .description("This is an example of configuration policy with custom control settings")
 *             .configurationPolicy(ConfigurationPolicyConfigurationPolicyArgs.builder()
 *                 .serviceEnabled(true)
 *                 .enabledStandardArns(
 *                     "arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0",
 *                     "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0")
 *                 .securityControlsConfiguration(ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs.builder()
 *                     .enabledControlIdentifiers(
 *                         "APIGateway.1",
 *                         "IAM.7")
 *                     .securityControlCustomParameters(
 *                         ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs.builder()
 *                             .securityControlId("APIGateway.1")
 *                             .parameters(ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs.builder()
 *                                 .name("loggingLevel")
 *                                 .valueType("CUSTOM")
 *                                 .enum_(ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterEnumArgs.builder()
 *                                     .value("INFO")
 *                                     .build())
 *                                 .build())
 *                             .build(),
 *                         ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterArgs.builder()
 *                             .securityControlId("IAM.7")
 *                             .parameters(
 *                                 ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs.builder()
 *                                     .name("RequireLowercaseCharacters")
 *                                     .valueType("CUSTOM")
 *                                     .bool(ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterBoolArgs.builder()
 *                                         .value(false)
 *                                         .build())
 *                                     .build(),
 *                                 ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterArgs.builder()
 *                                     .name("MaxPasswordAge")
 *                                     .valueType("CUSTOM")
 *                                     .int_(ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationSecurityControlCustomParameterParameterIntArgs.builder()
 *                                         .value(60)
 *                                         .build())
 *                                     .build())
 *                             .build())
 *                     .build())
 *                 .build())
 *             .build(), CustomResourceOptions.builder()
 *                 .dependsOn(example)
 *                 .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   disabled:
 *     type: aws:securityhub:ConfigurationPolicy
 *     properties:
 *       name: Custom Controls
 *       description: This is an example of configuration policy with custom control settings
 *       configurationPolicy:
 *         serviceEnabled: true
 *         enabledStandardArns:
 *           - arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0
 *           - arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0
 *         securityControlsConfiguration:
 *           enabledControlIdentifiers:
 *             - APIGateway.1
 *             - IAM.7
 *           securityControlCustomParameters:
 *             - securityControlId: APIGateway.1
 *               parameters:
 *                 - name: loggingLevel
 *                   valueType: CUSTOM
 *                   enum:
 *                     value: INFO
 *             - securityControlId: IAM.7
 *               parameters:
 *                 - name: RequireLowercaseCharacters
 *                   valueType: CUSTOM
 *                   bool:
 *                     value: false
 *                 - name: MaxPasswordAge
 *                   valueType: CUSTOM
 *                   int:
 *                     value: 60
 *     options:
 *       dependson:
 *         - ${example}
 * ```
 * 
 * ## Import
 * Using `pulumi import`, import an existing Security Hub enabled account using the universally unique identifier (UUID) of the policy. For example:
 * ```sh
 * $ pulumi import aws:securityhub/configurationPolicy:ConfigurationPolicy example "00000000-1111-2222-3333-444444444444"
 * ```
 * @property configurationPolicy Defines how Security Hub is configured. See below.
 * @property description The description of the configuration policy.
 * @property name The name of the configuration policy.
 */
public data class ConfigurationPolicyArgs(
    public val configurationPolicy: Output? = null,
    public val description: Output? = null,
    public val name: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.securityhub.ConfigurationPolicyArgs =
        com.pulumi.aws.securityhub.ConfigurationPolicyArgs.builder()
            .configurationPolicy(
                configurationPolicy?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .description(description?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ConfigurationPolicyArgs].
 */
@PulumiTagMarker
public class ConfigurationPolicyArgsBuilder internal constructor() {
    private var configurationPolicy: Output? = null

    private var description: Output? = null

    private var name: Output? = null

    /**
     * @param value Defines how Security Hub is configured. See below.
     */
    @JvmName("hjlhrfoaiplmcjnv")
    public suspend fun configurationPolicy(`value`: Output) {
        this.configurationPolicy = value
    }

    /**
     * @param value The description of the configuration policy.
     */
    @JvmName("wtdimmltfwnwryfr")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The name of the configuration policy.
     */
    @JvmName("aapahrjocvhykfuu")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Defines how Security Hub is configured. See below.
     */
    @JvmName("tsexeucnnoltpqgd")
    public suspend fun configurationPolicy(`value`: ConfigurationPolicyConfigurationPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationPolicy = mapped
    }

    /**
     * @param argument Defines how Security Hub is configured. See below.
     */
    @JvmName("lsnxteqguagbsyob")
    public suspend fun configurationPolicy(argument: suspend ConfigurationPolicyConfigurationPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = ConfigurationPolicyConfigurationPolicyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.configurationPolicy = mapped
    }

    /**
     * @param value The description of the configuration policy.
     */
    @JvmName("coinjtlcqwwwxhlh")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The name of the configuration policy.
     */
    @JvmName("fakqjroqwlwxqlme")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    internal fun build(): ConfigurationPolicyArgs = ConfigurationPolicyArgs(
        configurationPolicy = configurationPolicy,
        description = description,
        name = name,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy