github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/inspector/assessmentTemplate.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 inspector 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 // Provides an Inspector Classic Assessment Template 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/inspector" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // _, err := inspector.NewAssessmentTemplate(ctx, "example", &inspector.AssessmentTemplateArgs{ 33 // Name: pulumi.String("example"), 34 // TargetArn: pulumi.Any(exampleAwsInspectorAssessmentTarget.Arn), 35 // Duration: pulumi.Int(3600), 36 // RulesPackageArns: pulumi.StringArray{ 37 // pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-9hgA516p"), 38 // pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-H5hpSawc"), 39 // pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-JJOtZiqQ"), 40 // pulumi.String("arn:aws:inspector:us-west-2:758058086616:rulespackage/0-vg5GGHSD"), 41 // }, 42 // EventSubscriptions: inspector.AssessmentTemplateEventSubscriptionArray{ 43 // &inspector.AssessmentTemplateEventSubscriptionArgs{ 44 // Event: pulumi.String("ASSESSMENT_RUN_COMPLETED"), 45 // TopicArn: pulumi.Any(exampleAwsSnsTopic.Arn), 46 // }, 47 // }, 48 // }) 49 // if err != nil { 50 // return err 51 // } 52 // return nil 53 // }) 54 // } 55 // 56 // ``` 57 // <!--End PulumiCodeChooser --> 58 // 59 // ## Import 60 // 61 // Using `pulumi import`, import `aws_inspector_assessment_template` using the template assessment ARN. For example: 62 // 63 // ```sh 64 // $ pulumi import aws:inspector/assessmentTemplate:AssessmentTemplate example arn:aws:inspector:us-west-2:123456789012:target/0-9IaAzhGR/template/0-WEcjR8CH 65 // ``` 66 type AssessmentTemplate struct { 67 pulumi.CustomResourceState 68 69 // The template assessment ARN. 70 Arn pulumi.StringOutput `pulumi:"arn"` 71 // The duration of the inspector run. 72 Duration pulumi.IntOutput `pulumi:"duration"` 73 // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details. 74 EventSubscriptions AssessmentTemplateEventSubscriptionArrayOutput `pulumi:"eventSubscriptions"` 75 // The name of the assessment template. 76 Name pulumi.StringOutput `pulumi:"name"` 77 // The rules to be used during the run. 78 RulesPackageArns pulumi.StringArrayOutput `pulumi:"rulesPackageArns"` 79 // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 80 Tags pulumi.StringMapOutput `pulumi:"tags"` 81 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 82 // 83 // Deprecated: Please use `tags` instead. 84 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 85 // The assessment target ARN to attach the template to. 86 TargetArn pulumi.StringOutput `pulumi:"targetArn"` 87 } 88 89 // NewAssessmentTemplate registers a new resource with the given unique name, arguments, and options. 90 func NewAssessmentTemplate(ctx *pulumi.Context, 91 name string, args *AssessmentTemplateArgs, opts ...pulumi.ResourceOption) (*AssessmentTemplate, error) { 92 if args == nil { 93 return nil, errors.New("missing one or more required arguments") 94 } 95 96 if args.Duration == nil { 97 return nil, errors.New("invalid value for required argument 'Duration'") 98 } 99 if args.RulesPackageArns == nil { 100 return nil, errors.New("invalid value for required argument 'RulesPackageArns'") 101 } 102 if args.TargetArn == nil { 103 return nil, errors.New("invalid value for required argument 'TargetArn'") 104 } 105 opts = internal.PkgResourceDefaultOpts(opts) 106 var resource AssessmentTemplate 107 err := ctx.RegisterResource("aws:inspector/assessmentTemplate:AssessmentTemplate", name, args, &resource, opts...) 108 if err != nil { 109 return nil, err 110 } 111 return &resource, nil 112 } 113 114 // GetAssessmentTemplate gets an existing AssessmentTemplate resource's state with the given name, ID, and optional 115 // state properties that are used to uniquely qualify the lookup (nil if not required). 116 func GetAssessmentTemplate(ctx *pulumi.Context, 117 name string, id pulumi.IDInput, state *AssessmentTemplateState, opts ...pulumi.ResourceOption) (*AssessmentTemplate, error) { 118 var resource AssessmentTemplate 119 err := ctx.ReadResource("aws:inspector/assessmentTemplate:AssessmentTemplate", name, id, state, &resource, opts...) 120 if err != nil { 121 return nil, err 122 } 123 return &resource, nil 124 } 125 126 // Input properties used for looking up and filtering AssessmentTemplate resources. 127 type assessmentTemplateState struct { 128 // The template assessment ARN. 129 Arn *string `pulumi:"arn"` 130 // The duration of the inspector run. 131 Duration *int `pulumi:"duration"` 132 // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details. 133 EventSubscriptions []AssessmentTemplateEventSubscription `pulumi:"eventSubscriptions"` 134 // The name of the assessment template. 135 Name *string `pulumi:"name"` 136 // The rules to be used during the run. 137 RulesPackageArns []string `pulumi:"rulesPackageArns"` 138 // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 139 Tags map[string]string `pulumi:"tags"` 140 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 141 // 142 // Deprecated: Please use `tags` instead. 143 TagsAll map[string]string `pulumi:"tagsAll"` 144 // The assessment target ARN to attach the template to. 145 TargetArn *string `pulumi:"targetArn"` 146 } 147 148 type AssessmentTemplateState struct { 149 // The template assessment ARN. 150 Arn pulumi.StringPtrInput 151 // The duration of the inspector run. 152 Duration pulumi.IntPtrInput 153 // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details. 154 EventSubscriptions AssessmentTemplateEventSubscriptionArrayInput 155 // The name of the assessment template. 156 Name pulumi.StringPtrInput 157 // The rules to be used during the run. 158 RulesPackageArns pulumi.StringArrayInput 159 // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 160 Tags pulumi.StringMapInput 161 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 162 // 163 // Deprecated: Please use `tags` instead. 164 TagsAll pulumi.StringMapInput 165 // The assessment target ARN to attach the template to. 166 TargetArn pulumi.StringPtrInput 167 } 168 169 func (AssessmentTemplateState) ElementType() reflect.Type { 170 return reflect.TypeOf((*assessmentTemplateState)(nil)).Elem() 171 } 172 173 type assessmentTemplateArgs struct { 174 // The duration of the inspector run. 175 Duration int `pulumi:"duration"` 176 // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details. 177 EventSubscriptions []AssessmentTemplateEventSubscription `pulumi:"eventSubscriptions"` 178 // The name of the assessment template. 179 Name *string `pulumi:"name"` 180 // The rules to be used during the run. 181 RulesPackageArns []string `pulumi:"rulesPackageArns"` 182 // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 183 Tags map[string]string `pulumi:"tags"` 184 // The assessment target ARN to attach the template to. 185 TargetArn string `pulumi:"targetArn"` 186 } 187 188 // The set of arguments for constructing a AssessmentTemplate resource. 189 type AssessmentTemplateArgs struct { 190 // The duration of the inspector run. 191 Duration pulumi.IntInput 192 // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details. 193 EventSubscriptions AssessmentTemplateEventSubscriptionArrayInput 194 // The name of the assessment template. 195 Name pulumi.StringPtrInput 196 // The rules to be used during the run. 197 RulesPackageArns pulumi.StringArrayInput 198 // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 199 Tags pulumi.StringMapInput 200 // The assessment target ARN to attach the template to. 201 TargetArn pulumi.StringInput 202 } 203 204 func (AssessmentTemplateArgs) ElementType() reflect.Type { 205 return reflect.TypeOf((*assessmentTemplateArgs)(nil)).Elem() 206 } 207 208 type AssessmentTemplateInput interface { 209 pulumi.Input 210 211 ToAssessmentTemplateOutput() AssessmentTemplateOutput 212 ToAssessmentTemplateOutputWithContext(ctx context.Context) AssessmentTemplateOutput 213 } 214 215 func (*AssessmentTemplate) ElementType() reflect.Type { 216 return reflect.TypeOf((**AssessmentTemplate)(nil)).Elem() 217 } 218 219 func (i *AssessmentTemplate) ToAssessmentTemplateOutput() AssessmentTemplateOutput { 220 return i.ToAssessmentTemplateOutputWithContext(context.Background()) 221 } 222 223 func (i *AssessmentTemplate) ToAssessmentTemplateOutputWithContext(ctx context.Context) AssessmentTemplateOutput { 224 return pulumi.ToOutputWithContext(ctx, i).(AssessmentTemplateOutput) 225 } 226 227 // AssessmentTemplateArrayInput is an input type that accepts AssessmentTemplateArray and AssessmentTemplateArrayOutput values. 228 // You can construct a concrete instance of `AssessmentTemplateArrayInput` via: 229 // 230 // AssessmentTemplateArray{ AssessmentTemplateArgs{...} } 231 type AssessmentTemplateArrayInput interface { 232 pulumi.Input 233 234 ToAssessmentTemplateArrayOutput() AssessmentTemplateArrayOutput 235 ToAssessmentTemplateArrayOutputWithContext(context.Context) AssessmentTemplateArrayOutput 236 } 237 238 type AssessmentTemplateArray []AssessmentTemplateInput 239 240 func (AssessmentTemplateArray) ElementType() reflect.Type { 241 return reflect.TypeOf((*[]*AssessmentTemplate)(nil)).Elem() 242 } 243 244 func (i AssessmentTemplateArray) ToAssessmentTemplateArrayOutput() AssessmentTemplateArrayOutput { 245 return i.ToAssessmentTemplateArrayOutputWithContext(context.Background()) 246 } 247 248 func (i AssessmentTemplateArray) ToAssessmentTemplateArrayOutputWithContext(ctx context.Context) AssessmentTemplateArrayOutput { 249 return pulumi.ToOutputWithContext(ctx, i).(AssessmentTemplateArrayOutput) 250 } 251 252 // AssessmentTemplateMapInput is an input type that accepts AssessmentTemplateMap and AssessmentTemplateMapOutput values. 253 // You can construct a concrete instance of `AssessmentTemplateMapInput` via: 254 // 255 // AssessmentTemplateMap{ "key": AssessmentTemplateArgs{...} } 256 type AssessmentTemplateMapInput interface { 257 pulumi.Input 258 259 ToAssessmentTemplateMapOutput() AssessmentTemplateMapOutput 260 ToAssessmentTemplateMapOutputWithContext(context.Context) AssessmentTemplateMapOutput 261 } 262 263 type AssessmentTemplateMap map[string]AssessmentTemplateInput 264 265 func (AssessmentTemplateMap) ElementType() reflect.Type { 266 return reflect.TypeOf((*map[string]*AssessmentTemplate)(nil)).Elem() 267 } 268 269 func (i AssessmentTemplateMap) ToAssessmentTemplateMapOutput() AssessmentTemplateMapOutput { 270 return i.ToAssessmentTemplateMapOutputWithContext(context.Background()) 271 } 272 273 func (i AssessmentTemplateMap) ToAssessmentTemplateMapOutputWithContext(ctx context.Context) AssessmentTemplateMapOutput { 274 return pulumi.ToOutputWithContext(ctx, i).(AssessmentTemplateMapOutput) 275 } 276 277 type AssessmentTemplateOutput struct{ *pulumi.OutputState } 278 279 func (AssessmentTemplateOutput) ElementType() reflect.Type { 280 return reflect.TypeOf((**AssessmentTemplate)(nil)).Elem() 281 } 282 283 func (o AssessmentTemplateOutput) ToAssessmentTemplateOutput() AssessmentTemplateOutput { 284 return o 285 } 286 287 func (o AssessmentTemplateOutput) ToAssessmentTemplateOutputWithContext(ctx context.Context) AssessmentTemplateOutput { 288 return o 289 } 290 291 // The template assessment ARN. 292 func (o AssessmentTemplateOutput) Arn() pulumi.StringOutput { 293 return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 294 } 295 296 // The duration of the inspector run. 297 func (o AssessmentTemplateOutput) Duration() pulumi.IntOutput { 298 return o.ApplyT(func(v *AssessmentTemplate) pulumi.IntOutput { return v.Duration }).(pulumi.IntOutput) 299 } 300 301 // A block that enables sending notifications about a specified assessment template event to a designated SNS topic. See Event Subscriptions for details. 302 func (o AssessmentTemplateOutput) EventSubscriptions() AssessmentTemplateEventSubscriptionArrayOutput { 303 return o.ApplyT(func(v *AssessmentTemplate) AssessmentTemplateEventSubscriptionArrayOutput { 304 return v.EventSubscriptions 305 }).(AssessmentTemplateEventSubscriptionArrayOutput) 306 } 307 308 // The name of the assessment template. 309 func (o AssessmentTemplateOutput) Name() pulumi.StringOutput { 310 return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 311 } 312 313 // The rules to be used during the run. 314 func (o AssessmentTemplateOutput) RulesPackageArns() pulumi.StringArrayOutput { 315 return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringArrayOutput { return v.RulesPackageArns }).(pulumi.StringArrayOutput) 316 } 317 318 // Key-value map of tags for the Inspector assessment template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 319 func (o AssessmentTemplateOutput) Tags() pulumi.StringMapOutput { 320 return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 321 } 322 323 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 324 // 325 // Deprecated: Please use `tags` instead. 326 func (o AssessmentTemplateOutput) TagsAll() pulumi.StringMapOutput { 327 return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 328 } 329 330 // The assessment target ARN to attach the template to. 331 func (o AssessmentTemplateOutput) TargetArn() pulumi.StringOutput { 332 return o.ApplyT(func(v *AssessmentTemplate) pulumi.StringOutput { return v.TargetArn }).(pulumi.StringOutput) 333 } 334 335 type AssessmentTemplateArrayOutput struct{ *pulumi.OutputState } 336 337 func (AssessmentTemplateArrayOutput) ElementType() reflect.Type { 338 return reflect.TypeOf((*[]*AssessmentTemplate)(nil)).Elem() 339 } 340 341 func (o AssessmentTemplateArrayOutput) ToAssessmentTemplateArrayOutput() AssessmentTemplateArrayOutput { 342 return o 343 } 344 345 func (o AssessmentTemplateArrayOutput) ToAssessmentTemplateArrayOutputWithContext(ctx context.Context) AssessmentTemplateArrayOutput { 346 return o 347 } 348 349 func (o AssessmentTemplateArrayOutput) Index(i pulumi.IntInput) AssessmentTemplateOutput { 350 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AssessmentTemplate { 351 return vs[0].([]*AssessmentTemplate)[vs[1].(int)] 352 }).(AssessmentTemplateOutput) 353 } 354 355 type AssessmentTemplateMapOutput struct{ *pulumi.OutputState } 356 357 func (AssessmentTemplateMapOutput) ElementType() reflect.Type { 358 return reflect.TypeOf((*map[string]*AssessmentTemplate)(nil)).Elem() 359 } 360 361 func (o AssessmentTemplateMapOutput) ToAssessmentTemplateMapOutput() AssessmentTemplateMapOutput { 362 return o 363 } 364 365 func (o AssessmentTemplateMapOutput) ToAssessmentTemplateMapOutputWithContext(ctx context.Context) AssessmentTemplateMapOutput { 366 return o 367 } 368 369 func (o AssessmentTemplateMapOutput) MapIndex(k pulumi.StringInput) AssessmentTemplateOutput { 370 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AssessmentTemplate { 371 return vs[0].(map[string]*AssessmentTemplate)[vs[1].(string)] 372 }).(AssessmentTemplateOutput) 373 } 374 375 func init() { 376 pulumi.RegisterInputType(reflect.TypeOf((*AssessmentTemplateInput)(nil)).Elem(), &AssessmentTemplate{}) 377 pulumi.RegisterInputType(reflect.TypeOf((*AssessmentTemplateArrayInput)(nil)).Elem(), AssessmentTemplateArray{}) 378 pulumi.RegisterInputType(reflect.TypeOf((*AssessmentTemplateMapInput)(nil)).Elem(), AssessmentTemplateMap{}) 379 pulumi.RegisterOutputType(AssessmentTemplateOutput{}) 380 pulumi.RegisterOutputType(AssessmentTemplateArrayOutput{}) 381 pulumi.RegisterOutputType(AssessmentTemplateMapOutput{}) 382 }