github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/securityhub/configurationPolicyAssociation.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package securityhub 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Manages Security Hub configuration policy associations. 16 // 17 // > **NOTE:** This resource requires `securityhub.OrganizationConfiguration` to be configured with 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. 18 // 19 // ## Example Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // example, err := securityhub.NewFindingAggregator(ctx, "example", &securityhub.FindingAggregatorArgs{ 35 // LinkingMode: pulumi.String("ALL_REGIONS"), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // exampleOrganizationConfiguration, err := securityhub.NewOrganizationConfiguration(ctx, "example", &securityhub.OrganizationConfigurationArgs{ 41 // AutoEnable: pulumi.Bool(false), 42 // AutoEnableStandards: pulumi.String("NONE"), 43 // OrganizationConfiguration: &securityhub.OrganizationConfigurationOrganizationConfigurationArgs{ 44 // ConfigurationType: pulumi.String("CENTRAL"), 45 // }, 46 // }, pulumi.DependsOn([]pulumi.Resource{ 47 // example, 48 // })) 49 // if err != nil { 50 // return err 51 // } 52 // exampleConfigurationPolicy, err := securityhub.NewConfigurationPolicy(ctx, "example", &securityhub.ConfigurationPolicyArgs{ 53 // Name: pulumi.String("Example"), 54 // Description: pulumi.String("This is an example configuration policy"), 55 // ConfigurationPolicy: &securityhub.ConfigurationPolicyConfigurationPolicyArgs{ 56 // ServiceEnabled: pulumi.Bool(true), 57 // EnabledStandardArns: pulumi.StringArray{ 58 // pulumi.String("arn:aws:securityhub:us-east-1::standards/aws-foundational-security-best-practices/v/1.0.0"), 59 // pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"), 60 // }, 61 // SecurityControlsConfiguration: &securityhub.ConfigurationPolicyConfigurationPolicySecurityControlsConfigurationArgs{ 62 // DisabledControlIdentifiers: pulumi.StringArray{}, 63 // }, 64 // }, 65 // }, pulumi.DependsOn([]pulumi.Resource{ 66 // exampleOrganizationConfiguration, 67 // })) 68 // if err != nil { 69 // return err 70 // } 71 // _, err = securityhub.NewConfigurationPolicyAssociation(ctx, "account_example", &securityhub.ConfigurationPolicyAssociationArgs{ 72 // TargetId: pulumi.String("123456789012"), 73 // PolicyId: exampleConfigurationPolicy.ID(), 74 // }) 75 // if err != nil { 76 // return err 77 // } 78 // _, err = securityhub.NewConfigurationPolicyAssociation(ctx, "root_example", &securityhub.ConfigurationPolicyAssociationArgs{ 79 // TargetId: pulumi.String("r-abcd"), 80 // PolicyId: exampleConfigurationPolicy.ID(), 81 // }) 82 // if err != nil { 83 // return err 84 // } 85 // _, err = securityhub.NewConfigurationPolicyAssociation(ctx, "ou_example", &securityhub.ConfigurationPolicyAssociationArgs{ 86 // TargetId: pulumi.String("ou-abcd-12345678"), 87 // PolicyId: exampleConfigurationPolicy.ID(), 88 // }) 89 // if err != nil { 90 // return err 91 // } 92 // return nil 93 // }) 94 // } 95 // 96 // ``` 97 // <!--End PulumiCodeChooser --> 98 // 99 // ## Import 100 // 101 // Using `pulumi import`, import an existing Security Hub enabled account using the universally unique identifier (UUID) of the policy. For example: 102 // 103 // ```sh 104 // $ pulumi import aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation example_account_association 123456789012 105 // ``` 106 type ConfigurationPolicyAssociation struct { 107 pulumi.CustomResourceState 108 109 // The universally unique identifier (UUID) of the configuration policy. 110 PolicyId pulumi.StringOutput `pulumi:"policyId"` 111 // The identifier of the target account, organizational unit, or the root to associate with the specified configuration. 112 TargetId pulumi.StringOutput `pulumi:"targetId"` 113 } 114 115 // NewConfigurationPolicyAssociation registers a new resource with the given unique name, arguments, and options. 116 func NewConfigurationPolicyAssociation(ctx *pulumi.Context, 117 name string, args *ConfigurationPolicyAssociationArgs, opts ...pulumi.ResourceOption) (*ConfigurationPolicyAssociation, error) { 118 if args == nil { 119 return nil, errors.New("missing one or more required arguments") 120 } 121 122 if args.PolicyId == nil { 123 return nil, errors.New("invalid value for required argument 'PolicyId'") 124 } 125 if args.TargetId == nil { 126 return nil, errors.New("invalid value for required argument 'TargetId'") 127 } 128 opts = internal.PkgResourceDefaultOpts(opts) 129 var resource ConfigurationPolicyAssociation 130 err := ctx.RegisterResource("aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation", name, args, &resource, opts...) 131 if err != nil { 132 return nil, err 133 } 134 return &resource, nil 135 } 136 137 // GetConfigurationPolicyAssociation gets an existing ConfigurationPolicyAssociation resource's state with the given name, ID, and optional 138 // state properties that are used to uniquely qualify the lookup (nil if not required). 139 func GetConfigurationPolicyAssociation(ctx *pulumi.Context, 140 name string, id pulumi.IDInput, state *ConfigurationPolicyAssociationState, opts ...pulumi.ResourceOption) (*ConfigurationPolicyAssociation, error) { 141 var resource ConfigurationPolicyAssociation 142 err := ctx.ReadResource("aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation", name, id, state, &resource, opts...) 143 if err != nil { 144 return nil, err 145 } 146 return &resource, nil 147 } 148 149 // Input properties used for looking up and filtering ConfigurationPolicyAssociation resources. 150 type configurationPolicyAssociationState struct { 151 // The universally unique identifier (UUID) of the configuration policy. 152 PolicyId *string `pulumi:"policyId"` 153 // The identifier of the target account, organizational unit, or the root to associate with the specified configuration. 154 TargetId *string `pulumi:"targetId"` 155 } 156 157 type ConfigurationPolicyAssociationState struct { 158 // The universally unique identifier (UUID) of the configuration policy. 159 PolicyId pulumi.StringPtrInput 160 // The identifier of the target account, organizational unit, or the root to associate with the specified configuration. 161 TargetId pulumi.StringPtrInput 162 } 163 164 func (ConfigurationPolicyAssociationState) ElementType() reflect.Type { 165 return reflect.TypeOf((*configurationPolicyAssociationState)(nil)).Elem() 166 } 167 168 type configurationPolicyAssociationArgs struct { 169 // The universally unique identifier (UUID) of the configuration policy. 170 PolicyId string `pulumi:"policyId"` 171 // The identifier of the target account, organizational unit, or the root to associate with the specified configuration. 172 TargetId string `pulumi:"targetId"` 173 } 174 175 // The set of arguments for constructing a ConfigurationPolicyAssociation resource. 176 type ConfigurationPolicyAssociationArgs struct { 177 // The universally unique identifier (UUID) of the configuration policy. 178 PolicyId pulumi.StringInput 179 // The identifier of the target account, organizational unit, or the root to associate with the specified configuration. 180 TargetId pulumi.StringInput 181 } 182 183 func (ConfigurationPolicyAssociationArgs) ElementType() reflect.Type { 184 return reflect.TypeOf((*configurationPolicyAssociationArgs)(nil)).Elem() 185 } 186 187 type ConfigurationPolicyAssociationInput interface { 188 pulumi.Input 189 190 ToConfigurationPolicyAssociationOutput() ConfigurationPolicyAssociationOutput 191 ToConfigurationPolicyAssociationOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationOutput 192 } 193 194 func (*ConfigurationPolicyAssociation) ElementType() reflect.Type { 195 return reflect.TypeOf((**ConfigurationPolicyAssociation)(nil)).Elem() 196 } 197 198 func (i *ConfigurationPolicyAssociation) ToConfigurationPolicyAssociationOutput() ConfigurationPolicyAssociationOutput { 199 return i.ToConfigurationPolicyAssociationOutputWithContext(context.Background()) 200 } 201 202 func (i *ConfigurationPolicyAssociation) ToConfigurationPolicyAssociationOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationOutput { 203 return pulumi.ToOutputWithContext(ctx, i).(ConfigurationPolicyAssociationOutput) 204 } 205 206 // ConfigurationPolicyAssociationArrayInput is an input type that accepts ConfigurationPolicyAssociationArray and ConfigurationPolicyAssociationArrayOutput values. 207 // You can construct a concrete instance of `ConfigurationPolicyAssociationArrayInput` via: 208 // 209 // ConfigurationPolicyAssociationArray{ ConfigurationPolicyAssociationArgs{...} } 210 type ConfigurationPolicyAssociationArrayInput interface { 211 pulumi.Input 212 213 ToConfigurationPolicyAssociationArrayOutput() ConfigurationPolicyAssociationArrayOutput 214 ToConfigurationPolicyAssociationArrayOutputWithContext(context.Context) ConfigurationPolicyAssociationArrayOutput 215 } 216 217 type ConfigurationPolicyAssociationArray []ConfigurationPolicyAssociationInput 218 219 func (ConfigurationPolicyAssociationArray) ElementType() reflect.Type { 220 return reflect.TypeOf((*[]*ConfigurationPolicyAssociation)(nil)).Elem() 221 } 222 223 func (i ConfigurationPolicyAssociationArray) ToConfigurationPolicyAssociationArrayOutput() ConfigurationPolicyAssociationArrayOutput { 224 return i.ToConfigurationPolicyAssociationArrayOutputWithContext(context.Background()) 225 } 226 227 func (i ConfigurationPolicyAssociationArray) ToConfigurationPolicyAssociationArrayOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationArrayOutput { 228 return pulumi.ToOutputWithContext(ctx, i).(ConfigurationPolicyAssociationArrayOutput) 229 } 230 231 // ConfigurationPolicyAssociationMapInput is an input type that accepts ConfigurationPolicyAssociationMap and ConfigurationPolicyAssociationMapOutput values. 232 // You can construct a concrete instance of `ConfigurationPolicyAssociationMapInput` via: 233 // 234 // ConfigurationPolicyAssociationMap{ "key": ConfigurationPolicyAssociationArgs{...} } 235 type ConfigurationPolicyAssociationMapInput interface { 236 pulumi.Input 237 238 ToConfigurationPolicyAssociationMapOutput() ConfigurationPolicyAssociationMapOutput 239 ToConfigurationPolicyAssociationMapOutputWithContext(context.Context) ConfigurationPolicyAssociationMapOutput 240 } 241 242 type ConfigurationPolicyAssociationMap map[string]ConfigurationPolicyAssociationInput 243 244 func (ConfigurationPolicyAssociationMap) ElementType() reflect.Type { 245 return reflect.TypeOf((*map[string]*ConfigurationPolicyAssociation)(nil)).Elem() 246 } 247 248 func (i ConfigurationPolicyAssociationMap) ToConfigurationPolicyAssociationMapOutput() ConfigurationPolicyAssociationMapOutput { 249 return i.ToConfigurationPolicyAssociationMapOutputWithContext(context.Background()) 250 } 251 252 func (i ConfigurationPolicyAssociationMap) ToConfigurationPolicyAssociationMapOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationMapOutput { 253 return pulumi.ToOutputWithContext(ctx, i).(ConfigurationPolicyAssociationMapOutput) 254 } 255 256 type ConfigurationPolicyAssociationOutput struct{ *pulumi.OutputState } 257 258 func (ConfigurationPolicyAssociationOutput) ElementType() reflect.Type { 259 return reflect.TypeOf((**ConfigurationPolicyAssociation)(nil)).Elem() 260 } 261 262 func (o ConfigurationPolicyAssociationOutput) ToConfigurationPolicyAssociationOutput() ConfigurationPolicyAssociationOutput { 263 return o 264 } 265 266 func (o ConfigurationPolicyAssociationOutput) ToConfigurationPolicyAssociationOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationOutput { 267 return o 268 } 269 270 // The universally unique identifier (UUID) of the configuration policy. 271 func (o ConfigurationPolicyAssociationOutput) PolicyId() pulumi.StringOutput { 272 return o.ApplyT(func(v *ConfigurationPolicyAssociation) pulumi.StringOutput { return v.PolicyId }).(pulumi.StringOutput) 273 } 274 275 // The identifier of the target account, organizational unit, or the root to associate with the specified configuration. 276 func (o ConfigurationPolicyAssociationOutput) TargetId() pulumi.StringOutput { 277 return o.ApplyT(func(v *ConfigurationPolicyAssociation) pulumi.StringOutput { return v.TargetId }).(pulumi.StringOutput) 278 } 279 280 type ConfigurationPolicyAssociationArrayOutput struct{ *pulumi.OutputState } 281 282 func (ConfigurationPolicyAssociationArrayOutput) ElementType() reflect.Type { 283 return reflect.TypeOf((*[]*ConfigurationPolicyAssociation)(nil)).Elem() 284 } 285 286 func (o ConfigurationPolicyAssociationArrayOutput) ToConfigurationPolicyAssociationArrayOutput() ConfigurationPolicyAssociationArrayOutput { 287 return o 288 } 289 290 func (o ConfigurationPolicyAssociationArrayOutput) ToConfigurationPolicyAssociationArrayOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationArrayOutput { 291 return o 292 } 293 294 func (o ConfigurationPolicyAssociationArrayOutput) Index(i pulumi.IntInput) ConfigurationPolicyAssociationOutput { 295 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ConfigurationPolicyAssociation { 296 return vs[0].([]*ConfigurationPolicyAssociation)[vs[1].(int)] 297 }).(ConfigurationPolicyAssociationOutput) 298 } 299 300 type ConfigurationPolicyAssociationMapOutput struct{ *pulumi.OutputState } 301 302 func (ConfigurationPolicyAssociationMapOutput) ElementType() reflect.Type { 303 return reflect.TypeOf((*map[string]*ConfigurationPolicyAssociation)(nil)).Elem() 304 } 305 306 func (o ConfigurationPolicyAssociationMapOutput) ToConfigurationPolicyAssociationMapOutput() ConfigurationPolicyAssociationMapOutput { 307 return o 308 } 309 310 func (o ConfigurationPolicyAssociationMapOutput) ToConfigurationPolicyAssociationMapOutputWithContext(ctx context.Context) ConfigurationPolicyAssociationMapOutput { 311 return o 312 } 313 314 func (o ConfigurationPolicyAssociationMapOutput) MapIndex(k pulumi.StringInput) ConfigurationPolicyAssociationOutput { 315 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ConfigurationPolicyAssociation { 316 return vs[0].(map[string]*ConfigurationPolicyAssociation)[vs[1].(string)] 317 }).(ConfigurationPolicyAssociationOutput) 318 } 319 320 func init() { 321 pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationPolicyAssociationInput)(nil)).Elem(), &ConfigurationPolicyAssociation{}) 322 pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationPolicyAssociationArrayInput)(nil)).Elem(), ConfigurationPolicyAssociationArray{}) 323 pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationPolicyAssociationMapInput)(nil)).Elem(), ConfigurationPolicyAssociationMap{}) 324 pulumi.RegisterOutputType(ConfigurationPolicyAssociationOutput{}) 325 pulumi.RegisterOutputType(ConfigurationPolicyAssociationArrayOutput{}) 326 pulumi.RegisterOutputType(ConfigurationPolicyAssociationMapOutput{}) 327 }