github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/securityhub/standardsSubscription.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 // Subscribes to a Security Hub standard. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "fmt" 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/securityhub" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // example, err := securityhub.NewAccount(ctx, "example", nil) 36 // if err != nil { 37 // return err 38 // } 39 // current, err := aws.GetRegion(ctx, nil, nil) 40 // if err != nil { 41 // return err 42 // } 43 // _, err = securityhub.NewStandardsSubscription(ctx, "cis", &securityhub.StandardsSubscriptionArgs{ 44 // StandardsArn: pulumi.String("arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"), 45 // }, pulumi.DependsOn([]pulumi.Resource{ 46 // example, 47 // })) 48 // if err != nil { 49 // return err 50 // } 51 // _, err = securityhub.NewStandardsSubscription(ctx, "pci_321", &securityhub.StandardsSubscriptionArgs{ 52 // StandardsArn: pulumi.String(fmt.Sprintf("arn:aws:securityhub:%v::standards/pci-dss/v/3.2.1", current.Name)), 53 // }, pulumi.DependsOn([]pulumi.Resource{ 54 // example, 55 // })) 56 // if err != nil { 57 // return err 58 // } 59 // return nil 60 // }) 61 // } 62 // 63 // ``` 64 // <!--End PulumiCodeChooser --> 65 // 66 // ## Import 67 // 68 // Using `pulumi import`, import Security Hub standards subscriptions using the standards subscription ARN. For example: 69 // 70 // ```sh 71 // $ pulumi import aws:securityhub/standardsSubscription:StandardsSubscription cis arn:aws:securityhub:eu-west-1:123456789012:subscription/cis-aws-foundations-benchmark/v/1.2.0 72 // ``` 73 // ```sh 74 // $ pulumi import aws:securityhub/standardsSubscription:StandardsSubscription pci_321 arn:aws:securityhub:eu-west-1:123456789012:subscription/pci-dss/v/3.2.1 75 // ``` 76 // ```sh 77 // $ pulumi import aws:securityhub/standardsSubscription:StandardsSubscription nist_800_53_rev_5 arn:aws:securityhub:eu-west-1:123456789012:subscription/nist-800-53/v/5.0.0 78 // ``` 79 type StandardsSubscription struct { 80 pulumi.CustomResourceState 81 82 // The ARN of a standard - see below. 83 // 84 // Currently available standards (remember to replace `${var.region}` as appropriate): 85 // 86 // | Name | ARN | 87 // |------------------------------------------|-------------------------------------------------------------------------------------------------| 88 // | AWS Foundational Security Best Practices | `arn:aws:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` | 89 // | CIS AWS Foundations Benchmark v1.2.0 | `arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | 90 // | CIS AWS Foundations Benchmark v1.4.0 | `arn:aws:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | 91 // | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | 92 // | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | 93 StandardsArn pulumi.StringOutput `pulumi:"standardsArn"` 94 } 95 96 // NewStandardsSubscription registers a new resource with the given unique name, arguments, and options. 97 func NewStandardsSubscription(ctx *pulumi.Context, 98 name string, args *StandardsSubscriptionArgs, opts ...pulumi.ResourceOption) (*StandardsSubscription, error) { 99 if args == nil { 100 return nil, errors.New("missing one or more required arguments") 101 } 102 103 if args.StandardsArn == nil { 104 return nil, errors.New("invalid value for required argument 'StandardsArn'") 105 } 106 opts = internal.PkgResourceDefaultOpts(opts) 107 var resource StandardsSubscription 108 err := ctx.RegisterResource("aws:securityhub/standardsSubscription:StandardsSubscription", name, args, &resource, opts...) 109 if err != nil { 110 return nil, err 111 } 112 return &resource, nil 113 } 114 115 // GetStandardsSubscription gets an existing StandardsSubscription resource's state with the given name, ID, and optional 116 // state properties that are used to uniquely qualify the lookup (nil if not required). 117 func GetStandardsSubscription(ctx *pulumi.Context, 118 name string, id pulumi.IDInput, state *StandardsSubscriptionState, opts ...pulumi.ResourceOption) (*StandardsSubscription, error) { 119 var resource StandardsSubscription 120 err := ctx.ReadResource("aws:securityhub/standardsSubscription:StandardsSubscription", name, id, state, &resource, opts...) 121 if err != nil { 122 return nil, err 123 } 124 return &resource, nil 125 } 126 127 // Input properties used for looking up and filtering StandardsSubscription resources. 128 type standardsSubscriptionState struct { 129 // The ARN of a standard - see below. 130 // 131 // Currently available standards (remember to replace `${var.region}` as appropriate): 132 // 133 // | Name | ARN | 134 // |------------------------------------------|-------------------------------------------------------------------------------------------------| 135 // | AWS Foundational Security Best Practices | `arn:aws:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` | 136 // | CIS AWS Foundations Benchmark v1.2.0 | `arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | 137 // | CIS AWS Foundations Benchmark v1.4.0 | `arn:aws:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | 138 // | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | 139 // | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | 140 StandardsArn *string `pulumi:"standardsArn"` 141 } 142 143 type StandardsSubscriptionState struct { 144 // The ARN of a standard - see below. 145 // 146 // Currently available standards (remember to replace `${var.region}` as appropriate): 147 // 148 // | Name | ARN | 149 // |------------------------------------------|-------------------------------------------------------------------------------------------------| 150 // | AWS Foundational Security Best Practices | `arn:aws:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` | 151 // | CIS AWS Foundations Benchmark v1.2.0 | `arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | 152 // | CIS AWS Foundations Benchmark v1.4.0 | `arn:aws:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | 153 // | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | 154 // | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | 155 StandardsArn pulumi.StringPtrInput 156 } 157 158 func (StandardsSubscriptionState) ElementType() reflect.Type { 159 return reflect.TypeOf((*standardsSubscriptionState)(nil)).Elem() 160 } 161 162 type standardsSubscriptionArgs struct { 163 // The ARN of a standard - see below. 164 // 165 // Currently available standards (remember to replace `${var.region}` as appropriate): 166 // 167 // | Name | ARN | 168 // |------------------------------------------|-------------------------------------------------------------------------------------------------| 169 // | AWS Foundational Security Best Practices | `arn:aws:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` | 170 // | CIS AWS Foundations Benchmark v1.2.0 | `arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | 171 // | CIS AWS Foundations Benchmark v1.4.0 | `arn:aws:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | 172 // | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | 173 // | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | 174 StandardsArn string `pulumi:"standardsArn"` 175 } 176 177 // The set of arguments for constructing a StandardsSubscription resource. 178 type StandardsSubscriptionArgs struct { 179 // The ARN of a standard - see below. 180 // 181 // Currently available standards (remember to replace `${var.region}` as appropriate): 182 // 183 // | Name | ARN | 184 // |------------------------------------------|-------------------------------------------------------------------------------------------------| 185 // | AWS Foundational Security Best Practices | `arn:aws:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` | 186 // | CIS AWS Foundations Benchmark v1.2.0 | `arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | 187 // | CIS AWS Foundations Benchmark v1.4.0 | `arn:aws:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | 188 // | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | 189 // | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | 190 StandardsArn pulumi.StringInput 191 } 192 193 func (StandardsSubscriptionArgs) ElementType() reflect.Type { 194 return reflect.TypeOf((*standardsSubscriptionArgs)(nil)).Elem() 195 } 196 197 type StandardsSubscriptionInput interface { 198 pulumi.Input 199 200 ToStandardsSubscriptionOutput() StandardsSubscriptionOutput 201 ToStandardsSubscriptionOutputWithContext(ctx context.Context) StandardsSubscriptionOutput 202 } 203 204 func (*StandardsSubscription) ElementType() reflect.Type { 205 return reflect.TypeOf((**StandardsSubscription)(nil)).Elem() 206 } 207 208 func (i *StandardsSubscription) ToStandardsSubscriptionOutput() StandardsSubscriptionOutput { 209 return i.ToStandardsSubscriptionOutputWithContext(context.Background()) 210 } 211 212 func (i *StandardsSubscription) ToStandardsSubscriptionOutputWithContext(ctx context.Context) StandardsSubscriptionOutput { 213 return pulumi.ToOutputWithContext(ctx, i).(StandardsSubscriptionOutput) 214 } 215 216 // StandardsSubscriptionArrayInput is an input type that accepts StandardsSubscriptionArray and StandardsSubscriptionArrayOutput values. 217 // You can construct a concrete instance of `StandardsSubscriptionArrayInput` via: 218 // 219 // StandardsSubscriptionArray{ StandardsSubscriptionArgs{...} } 220 type StandardsSubscriptionArrayInput interface { 221 pulumi.Input 222 223 ToStandardsSubscriptionArrayOutput() StandardsSubscriptionArrayOutput 224 ToStandardsSubscriptionArrayOutputWithContext(context.Context) StandardsSubscriptionArrayOutput 225 } 226 227 type StandardsSubscriptionArray []StandardsSubscriptionInput 228 229 func (StandardsSubscriptionArray) ElementType() reflect.Type { 230 return reflect.TypeOf((*[]*StandardsSubscription)(nil)).Elem() 231 } 232 233 func (i StandardsSubscriptionArray) ToStandardsSubscriptionArrayOutput() StandardsSubscriptionArrayOutput { 234 return i.ToStandardsSubscriptionArrayOutputWithContext(context.Background()) 235 } 236 237 func (i StandardsSubscriptionArray) ToStandardsSubscriptionArrayOutputWithContext(ctx context.Context) StandardsSubscriptionArrayOutput { 238 return pulumi.ToOutputWithContext(ctx, i).(StandardsSubscriptionArrayOutput) 239 } 240 241 // StandardsSubscriptionMapInput is an input type that accepts StandardsSubscriptionMap and StandardsSubscriptionMapOutput values. 242 // You can construct a concrete instance of `StandardsSubscriptionMapInput` via: 243 // 244 // StandardsSubscriptionMap{ "key": StandardsSubscriptionArgs{...} } 245 type StandardsSubscriptionMapInput interface { 246 pulumi.Input 247 248 ToStandardsSubscriptionMapOutput() StandardsSubscriptionMapOutput 249 ToStandardsSubscriptionMapOutputWithContext(context.Context) StandardsSubscriptionMapOutput 250 } 251 252 type StandardsSubscriptionMap map[string]StandardsSubscriptionInput 253 254 func (StandardsSubscriptionMap) ElementType() reflect.Type { 255 return reflect.TypeOf((*map[string]*StandardsSubscription)(nil)).Elem() 256 } 257 258 func (i StandardsSubscriptionMap) ToStandardsSubscriptionMapOutput() StandardsSubscriptionMapOutput { 259 return i.ToStandardsSubscriptionMapOutputWithContext(context.Background()) 260 } 261 262 func (i StandardsSubscriptionMap) ToStandardsSubscriptionMapOutputWithContext(ctx context.Context) StandardsSubscriptionMapOutput { 263 return pulumi.ToOutputWithContext(ctx, i).(StandardsSubscriptionMapOutput) 264 } 265 266 type StandardsSubscriptionOutput struct{ *pulumi.OutputState } 267 268 func (StandardsSubscriptionOutput) ElementType() reflect.Type { 269 return reflect.TypeOf((**StandardsSubscription)(nil)).Elem() 270 } 271 272 func (o StandardsSubscriptionOutput) ToStandardsSubscriptionOutput() StandardsSubscriptionOutput { 273 return o 274 } 275 276 func (o StandardsSubscriptionOutput) ToStandardsSubscriptionOutputWithContext(ctx context.Context) StandardsSubscriptionOutput { 277 return o 278 } 279 280 // The ARN of a standard - see below. 281 // 282 // Currently available standards (remember to replace `${var.region}` as appropriate): 283 // 284 // | Name | ARN | 285 // |------------------------------------------|-------------------------------------------------------------------------------------------------| 286 // | AWS Foundational Security Best Practices | `arn:aws:securityhub:${var.region}::standards/aws-foundational-security-best-practices/v/1.0.0` | 287 // | CIS AWS Foundations Benchmark v1.2.0 | `arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0` | 288 // | CIS AWS Foundations Benchmark v1.4.0 | `arn:aws:securityhub:${var.region}::standards/cis-aws-foundations-benchmark/v/1.4.0` | 289 // | NIST SP 800-53 Rev. 5 | `arn:aws:securityhub:${var.region}::standards/nist-800-53/v/5.0.0` | 290 // | PCI DSS | `arn:aws:securityhub:${var.region}::standards/pci-dss/v/3.2.1` | 291 func (o StandardsSubscriptionOutput) StandardsArn() pulumi.StringOutput { 292 return o.ApplyT(func(v *StandardsSubscription) pulumi.StringOutput { return v.StandardsArn }).(pulumi.StringOutput) 293 } 294 295 type StandardsSubscriptionArrayOutput struct{ *pulumi.OutputState } 296 297 func (StandardsSubscriptionArrayOutput) ElementType() reflect.Type { 298 return reflect.TypeOf((*[]*StandardsSubscription)(nil)).Elem() 299 } 300 301 func (o StandardsSubscriptionArrayOutput) ToStandardsSubscriptionArrayOutput() StandardsSubscriptionArrayOutput { 302 return o 303 } 304 305 func (o StandardsSubscriptionArrayOutput) ToStandardsSubscriptionArrayOutputWithContext(ctx context.Context) StandardsSubscriptionArrayOutput { 306 return o 307 } 308 309 func (o StandardsSubscriptionArrayOutput) Index(i pulumi.IntInput) StandardsSubscriptionOutput { 310 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StandardsSubscription { 311 return vs[0].([]*StandardsSubscription)[vs[1].(int)] 312 }).(StandardsSubscriptionOutput) 313 } 314 315 type StandardsSubscriptionMapOutput struct{ *pulumi.OutputState } 316 317 func (StandardsSubscriptionMapOutput) ElementType() reflect.Type { 318 return reflect.TypeOf((*map[string]*StandardsSubscription)(nil)).Elem() 319 } 320 321 func (o StandardsSubscriptionMapOutput) ToStandardsSubscriptionMapOutput() StandardsSubscriptionMapOutput { 322 return o 323 } 324 325 func (o StandardsSubscriptionMapOutput) ToStandardsSubscriptionMapOutputWithContext(ctx context.Context) StandardsSubscriptionMapOutput { 326 return o 327 } 328 329 func (o StandardsSubscriptionMapOutput) MapIndex(k pulumi.StringInput) StandardsSubscriptionOutput { 330 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StandardsSubscription { 331 return vs[0].(map[string]*StandardsSubscription)[vs[1].(string)] 332 }).(StandardsSubscriptionOutput) 333 } 334 335 func init() { 336 pulumi.RegisterInputType(reflect.TypeOf((*StandardsSubscriptionInput)(nil)).Elem(), &StandardsSubscription{}) 337 pulumi.RegisterInputType(reflect.TypeOf((*StandardsSubscriptionArrayInput)(nil)).Elem(), StandardsSubscriptionArray{}) 338 pulumi.RegisterInputType(reflect.TypeOf((*StandardsSubscriptionMapInput)(nil)).Elem(), StandardsSubscriptionMap{}) 339 pulumi.RegisterOutputType(StandardsSubscriptionOutput{}) 340 pulumi.RegisterOutputType(StandardsSubscriptionArrayOutput{}) 341 pulumi.RegisterOutputType(StandardsSubscriptionMapOutput{}) 342 }