github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ses/receiptRule.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 ses 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 SES receipt rule resource 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/ses" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // // Add a header to the email and store it in S3 33 // _, err := ses.NewReceiptRule(ctx, "store", &ses.ReceiptRuleArgs{ 34 // Name: pulumi.String("store"), 35 // RuleSetName: pulumi.String("default-rule-set"), 36 // Recipients: pulumi.StringArray{ 37 // pulumi.String("karen@example.com"), 38 // }, 39 // Enabled: pulumi.Bool(true), 40 // ScanEnabled: pulumi.Bool(true), 41 // AddHeaderActions: ses.ReceiptRuleAddHeaderActionArray{ 42 // &ses.ReceiptRuleAddHeaderActionArgs{ 43 // HeaderName: pulumi.String("Custom-Header"), 44 // HeaderValue: pulumi.String("Added by SES"), 45 // Position: pulumi.Int(1), 46 // }, 47 // }, 48 // S3Actions: ses.ReceiptRuleS3ActionArray{ 49 // &ses.ReceiptRuleS3ActionArgs{ 50 // BucketName: pulumi.String("emails"), 51 // Position: pulumi.Int(2), 52 // }, 53 // }, 54 // }) 55 // if err != nil { 56 // return err 57 // } 58 // return nil 59 // }) 60 // } 61 // 62 // ``` 63 // <!--End PulumiCodeChooser --> 64 // 65 // ## Import 66 // 67 // Using `pulumi import`, import SES receipt rules using the ruleset name and rule name separated by `:`. For example: 68 // 69 // ```sh 70 // $ pulumi import aws:ses/receiptRule:ReceiptRule my_rule my_rule_set:my_rule 71 // ``` 72 type ReceiptRule struct { 73 pulumi.CustomResourceState 74 75 // A list of Add Header Action blocks. Documented below. 76 AddHeaderActions ReceiptRuleAddHeaderActionArrayOutput `pulumi:"addHeaderActions"` 77 // The name of the rule to place this rule after 78 After pulumi.StringPtrOutput `pulumi:"after"` 79 // The SES receipt rule ARN. 80 Arn pulumi.StringOutput `pulumi:"arn"` 81 // A list of Bounce Action blocks. Documented below. 82 BounceActions ReceiptRuleBounceActionArrayOutput `pulumi:"bounceActions"` 83 // If true, the rule will be enabled 84 Enabled pulumi.BoolPtrOutput `pulumi:"enabled"` 85 // A list of Lambda Action blocks. Documented below. 86 LambdaActions ReceiptRuleLambdaActionArrayOutput `pulumi:"lambdaActions"` 87 // The name of the rule 88 Name pulumi.StringOutput `pulumi:"name"` 89 // A list of email addresses 90 Recipients pulumi.StringArrayOutput `pulumi:"recipients"` 91 // The name of the rule set 92 RuleSetName pulumi.StringOutput `pulumi:"ruleSetName"` 93 // A list of S3 Action blocks. Documented below. 94 S3Actions ReceiptRuleS3ActionArrayOutput `pulumi:"s3Actions"` 95 // If true, incoming emails will be scanned for spam and viruses 96 ScanEnabled pulumi.BoolPtrOutput `pulumi:"scanEnabled"` 97 // A list of SNS Action blocks. Documented below. 98 SnsActions ReceiptRuleSnsActionArrayOutput `pulumi:"snsActions"` 99 // A list of Stop Action blocks. Documented below. 100 StopActions ReceiptRuleStopActionArrayOutput `pulumi:"stopActions"` 101 // `Require` or `Optional` 102 TlsPolicy pulumi.StringOutput `pulumi:"tlsPolicy"` 103 // A list of WorkMail Action blocks. Documented below. 104 WorkmailActions ReceiptRuleWorkmailActionArrayOutput `pulumi:"workmailActions"` 105 } 106 107 // NewReceiptRule registers a new resource with the given unique name, arguments, and options. 108 func NewReceiptRule(ctx *pulumi.Context, 109 name string, args *ReceiptRuleArgs, opts ...pulumi.ResourceOption) (*ReceiptRule, error) { 110 if args == nil { 111 return nil, errors.New("missing one or more required arguments") 112 } 113 114 if args.RuleSetName == nil { 115 return nil, errors.New("invalid value for required argument 'RuleSetName'") 116 } 117 opts = internal.PkgResourceDefaultOpts(opts) 118 var resource ReceiptRule 119 err := ctx.RegisterResource("aws:ses/receiptRule:ReceiptRule", name, args, &resource, opts...) 120 if err != nil { 121 return nil, err 122 } 123 return &resource, nil 124 } 125 126 // GetReceiptRule gets an existing ReceiptRule resource's state with the given name, ID, and optional 127 // state properties that are used to uniquely qualify the lookup (nil if not required). 128 func GetReceiptRule(ctx *pulumi.Context, 129 name string, id pulumi.IDInput, state *ReceiptRuleState, opts ...pulumi.ResourceOption) (*ReceiptRule, error) { 130 var resource ReceiptRule 131 err := ctx.ReadResource("aws:ses/receiptRule:ReceiptRule", name, id, state, &resource, opts...) 132 if err != nil { 133 return nil, err 134 } 135 return &resource, nil 136 } 137 138 // Input properties used for looking up and filtering ReceiptRule resources. 139 type receiptRuleState struct { 140 // A list of Add Header Action blocks. Documented below. 141 AddHeaderActions []ReceiptRuleAddHeaderAction `pulumi:"addHeaderActions"` 142 // The name of the rule to place this rule after 143 After *string `pulumi:"after"` 144 // The SES receipt rule ARN. 145 Arn *string `pulumi:"arn"` 146 // A list of Bounce Action blocks. Documented below. 147 BounceActions []ReceiptRuleBounceAction `pulumi:"bounceActions"` 148 // If true, the rule will be enabled 149 Enabled *bool `pulumi:"enabled"` 150 // A list of Lambda Action blocks. Documented below. 151 LambdaActions []ReceiptRuleLambdaAction `pulumi:"lambdaActions"` 152 // The name of the rule 153 Name *string `pulumi:"name"` 154 // A list of email addresses 155 Recipients []string `pulumi:"recipients"` 156 // The name of the rule set 157 RuleSetName *string `pulumi:"ruleSetName"` 158 // A list of S3 Action blocks. Documented below. 159 S3Actions []ReceiptRuleS3Action `pulumi:"s3Actions"` 160 // If true, incoming emails will be scanned for spam and viruses 161 ScanEnabled *bool `pulumi:"scanEnabled"` 162 // A list of SNS Action blocks. Documented below. 163 SnsActions []ReceiptRuleSnsAction `pulumi:"snsActions"` 164 // A list of Stop Action blocks. Documented below. 165 StopActions []ReceiptRuleStopAction `pulumi:"stopActions"` 166 // `Require` or `Optional` 167 TlsPolicy *string `pulumi:"tlsPolicy"` 168 // A list of WorkMail Action blocks. Documented below. 169 WorkmailActions []ReceiptRuleWorkmailAction `pulumi:"workmailActions"` 170 } 171 172 type ReceiptRuleState struct { 173 // A list of Add Header Action blocks. Documented below. 174 AddHeaderActions ReceiptRuleAddHeaderActionArrayInput 175 // The name of the rule to place this rule after 176 After pulumi.StringPtrInput 177 // The SES receipt rule ARN. 178 Arn pulumi.StringPtrInput 179 // A list of Bounce Action blocks. Documented below. 180 BounceActions ReceiptRuleBounceActionArrayInput 181 // If true, the rule will be enabled 182 Enabled pulumi.BoolPtrInput 183 // A list of Lambda Action blocks. Documented below. 184 LambdaActions ReceiptRuleLambdaActionArrayInput 185 // The name of the rule 186 Name pulumi.StringPtrInput 187 // A list of email addresses 188 Recipients pulumi.StringArrayInput 189 // The name of the rule set 190 RuleSetName pulumi.StringPtrInput 191 // A list of S3 Action blocks. Documented below. 192 S3Actions ReceiptRuleS3ActionArrayInput 193 // If true, incoming emails will be scanned for spam and viruses 194 ScanEnabled pulumi.BoolPtrInput 195 // A list of SNS Action blocks. Documented below. 196 SnsActions ReceiptRuleSnsActionArrayInput 197 // A list of Stop Action blocks. Documented below. 198 StopActions ReceiptRuleStopActionArrayInput 199 // `Require` or `Optional` 200 TlsPolicy pulumi.StringPtrInput 201 // A list of WorkMail Action blocks. Documented below. 202 WorkmailActions ReceiptRuleWorkmailActionArrayInput 203 } 204 205 func (ReceiptRuleState) ElementType() reflect.Type { 206 return reflect.TypeOf((*receiptRuleState)(nil)).Elem() 207 } 208 209 type receiptRuleArgs struct { 210 // A list of Add Header Action blocks. Documented below. 211 AddHeaderActions []ReceiptRuleAddHeaderAction `pulumi:"addHeaderActions"` 212 // The name of the rule to place this rule after 213 After *string `pulumi:"after"` 214 // A list of Bounce Action blocks. Documented below. 215 BounceActions []ReceiptRuleBounceAction `pulumi:"bounceActions"` 216 // If true, the rule will be enabled 217 Enabled *bool `pulumi:"enabled"` 218 // A list of Lambda Action blocks. Documented below. 219 LambdaActions []ReceiptRuleLambdaAction `pulumi:"lambdaActions"` 220 // The name of the rule 221 Name *string `pulumi:"name"` 222 // A list of email addresses 223 Recipients []string `pulumi:"recipients"` 224 // The name of the rule set 225 RuleSetName string `pulumi:"ruleSetName"` 226 // A list of S3 Action blocks. Documented below. 227 S3Actions []ReceiptRuleS3Action `pulumi:"s3Actions"` 228 // If true, incoming emails will be scanned for spam and viruses 229 ScanEnabled *bool `pulumi:"scanEnabled"` 230 // A list of SNS Action blocks. Documented below. 231 SnsActions []ReceiptRuleSnsAction `pulumi:"snsActions"` 232 // A list of Stop Action blocks. Documented below. 233 StopActions []ReceiptRuleStopAction `pulumi:"stopActions"` 234 // `Require` or `Optional` 235 TlsPolicy *string `pulumi:"tlsPolicy"` 236 // A list of WorkMail Action blocks. Documented below. 237 WorkmailActions []ReceiptRuleWorkmailAction `pulumi:"workmailActions"` 238 } 239 240 // The set of arguments for constructing a ReceiptRule resource. 241 type ReceiptRuleArgs struct { 242 // A list of Add Header Action blocks. Documented below. 243 AddHeaderActions ReceiptRuleAddHeaderActionArrayInput 244 // The name of the rule to place this rule after 245 After pulumi.StringPtrInput 246 // A list of Bounce Action blocks. Documented below. 247 BounceActions ReceiptRuleBounceActionArrayInput 248 // If true, the rule will be enabled 249 Enabled pulumi.BoolPtrInput 250 // A list of Lambda Action blocks. Documented below. 251 LambdaActions ReceiptRuleLambdaActionArrayInput 252 // The name of the rule 253 Name pulumi.StringPtrInput 254 // A list of email addresses 255 Recipients pulumi.StringArrayInput 256 // The name of the rule set 257 RuleSetName pulumi.StringInput 258 // A list of S3 Action blocks. Documented below. 259 S3Actions ReceiptRuleS3ActionArrayInput 260 // If true, incoming emails will be scanned for spam and viruses 261 ScanEnabled pulumi.BoolPtrInput 262 // A list of SNS Action blocks. Documented below. 263 SnsActions ReceiptRuleSnsActionArrayInput 264 // A list of Stop Action blocks. Documented below. 265 StopActions ReceiptRuleStopActionArrayInput 266 // `Require` or `Optional` 267 TlsPolicy pulumi.StringPtrInput 268 // A list of WorkMail Action blocks. Documented below. 269 WorkmailActions ReceiptRuleWorkmailActionArrayInput 270 } 271 272 func (ReceiptRuleArgs) ElementType() reflect.Type { 273 return reflect.TypeOf((*receiptRuleArgs)(nil)).Elem() 274 } 275 276 type ReceiptRuleInput interface { 277 pulumi.Input 278 279 ToReceiptRuleOutput() ReceiptRuleOutput 280 ToReceiptRuleOutputWithContext(ctx context.Context) ReceiptRuleOutput 281 } 282 283 func (*ReceiptRule) ElementType() reflect.Type { 284 return reflect.TypeOf((**ReceiptRule)(nil)).Elem() 285 } 286 287 func (i *ReceiptRule) ToReceiptRuleOutput() ReceiptRuleOutput { 288 return i.ToReceiptRuleOutputWithContext(context.Background()) 289 } 290 291 func (i *ReceiptRule) ToReceiptRuleOutputWithContext(ctx context.Context) ReceiptRuleOutput { 292 return pulumi.ToOutputWithContext(ctx, i).(ReceiptRuleOutput) 293 } 294 295 // ReceiptRuleArrayInput is an input type that accepts ReceiptRuleArray and ReceiptRuleArrayOutput values. 296 // You can construct a concrete instance of `ReceiptRuleArrayInput` via: 297 // 298 // ReceiptRuleArray{ ReceiptRuleArgs{...} } 299 type ReceiptRuleArrayInput interface { 300 pulumi.Input 301 302 ToReceiptRuleArrayOutput() ReceiptRuleArrayOutput 303 ToReceiptRuleArrayOutputWithContext(context.Context) ReceiptRuleArrayOutput 304 } 305 306 type ReceiptRuleArray []ReceiptRuleInput 307 308 func (ReceiptRuleArray) ElementType() reflect.Type { 309 return reflect.TypeOf((*[]*ReceiptRule)(nil)).Elem() 310 } 311 312 func (i ReceiptRuleArray) ToReceiptRuleArrayOutput() ReceiptRuleArrayOutput { 313 return i.ToReceiptRuleArrayOutputWithContext(context.Background()) 314 } 315 316 func (i ReceiptRuleArray) ToReceiptRuleArrayOutputWithContext(ctx context.Context) ReceiptRuleArrayOutput { 317 return pulumi.ToOutputWithContext(ctx, i).(ReceiptRuleArrayOutput) 318 } 319 320 // ReceiptRuleMapInput is an input type that accepts ReceiptRuleMap and ReceiptRuleMapOutput values. 321 // You can construct a concrete instance of `ReceiptRuleMapInput` via: 322 // 323 // ReceiptRuleMap{ "key": ReceiptRuleArgs{...} } 324 type ReceiptRuleMapInput interface { 325 pulumi.Input 326 327 ToReceiptRuleMapOutput() ReceiptRuleMapOutput 328 ToReceiptRuleMapOutputWithContext(context.Context) ReceiptRuleMapOutput 329 } 330 331 type ReceiptRuleMap map[string]ReceiptRuleInput 332 333 func (ReceiptRuleMap) ElementType() reflect.Type { 334 return reflect.TypeOf((*map[string]*ReceiptRule)(nil)).Elem() 335 } 336 337 func (i ReceiptRuleMap) ToReceiptRuleMapOutput() ReceiptRuleMapOutput { 338 return i.ToReceiptRuleMapOutputWithContext(context.Background()) 339 } 340 341 func (i ReceiptRuleMap) ToReceiptRuleMapOutputWithContext(ctx context.Context) ReceiptRuleMapOutput { 342 return pulumi.ToOutputWithContext(ctx, i).(ReceiptRuleMapOutput) 343 } 344 345 type ReceiptRuleOutput struct{ *pulumi.OutputState } 346 347 func (ReceiptRuleOutput) ElementType() reflect.Type { 348 return reflect.TypeOf((**ReceiptRule)(nil)).Elem() 349 } 350 351 func (o ReceiptRuleOutput) ToReceiptRuleOutput() ReceiptRuleOutput { 352 return o 353 } 354 355 func (o ReceiptRuleOutput) ToReceiptRuleOutputWithContext(ctx context.Context) ReceiptRuleOutput { 356 return o 357 } 358 359 // A list of Add Header Action blocks. Documented below. 360 func (o ReceiptRuleOutput) AddHeaderActions() ReceiptRuleAddHeaderActionArrayOutput { 361 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleAddHeaderActionArrayOutput { return v.AddHeaderActions }).(ReceiptRuleAddHeaderActionArrayOutput) 362 } 363 364 // The name of the rule to place this rule after 365 func (o ReceiptRuleOutput) After() pulumi.StringPtrOutput { 366 return o.ApplyT(func(v *ReceiptRule) pulumi.StringPtrOutput { return v.After }).(pulumi.StringPtrOutput) 367 } 368 369 // The SES receipt rule ARN. 370 func (o ReceiptRuleOutput) Arn() pulumi.StringOutput { 371 return o.ApplyT(func(v *ReceiptRule) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 372 } 373 374 // A list of Bounce Action blocks. Documented below. 375 func (o ReceiptRuleOutput) BounceActions() ReceiptRuleBounceActionArrayOutput { 376 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleBounceActionArrayOutput { return v.BounceActions }).(ReceiptRuleBounceActionArrayOutput) 377 } 378 379 // If true, the rule will be enabled 380 func (o ReceiptRuleOutput) Enabled() pulumi.BoolPtrOutput { 381 return o.ApplyT(func(v *ReceiptRule) pulumi.BoolPtrOutput { return v.Enabled }).(pulumi.BoolPtrOutput) 382 } 383 384 // A list of Lambda Action blocks. Documented below. 385 func (o ReceiptRuleOutput) LambdaActions() ReceiptRuleLambdaActionArrayOutput { 386 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleLambdaActionArrayOutput { return v.LambdaActions }).(ReceiptRuleLambdaActionArrayOutput) 387 } 388 389 // The name of the rule 390 func (o ReceiptRuleOutput) Name() pulumi.StringOutput { 391 return o.ApplyT(func(v *ReceiptRule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 392 } 393 394 // A list of email addresses 395 func (o ReceiptRuleOutput) Recipients() pulumi.StringArrayOutput { 396 return o.ApplyT(func(v *ReceiptRule) pulumi.StringArrayOutput { return v.Recipients }).(pulumi.StringArrayOutput) 397 } 398 399 // The name of the rule set 400 func (o ReceiptRuleOutput) RuleSetName() pulumi.StringOutput { 401 return o.ApplyT(func(v *ReceiptRule) pulumi.StringOutput { return v.RuleSetName }).(pulumi.StringOutput) 402 } 403 404 // A list of S3 Action blocks. Documented below. 405 func (o ReceiptRuleOutput) S3Actions() ReceiptRuleS3ActionArrayOutput { 406 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleS3ActionArrayOutput { return v.S3Actions }).(ReceiptRuleS3ActionArrayOutput) 407 } 408 409 // If true, incoming emails will be scanned for spam and viruses 410 func (o ReceiptRuleOutput) ScanEnabled() pulumi.BoolPtrOutput { 411 return o.ApplyT(func(v *ReceiptRule) pulumi.BoolPtrOutput { return v.ScanEnabled }).(pulumi.BoolPtrOutput) 412 } 413 414 // A list of SNS Action blocks. Documented below. 415 func (o ReceiptRuleOutput) SnsActions() ReceiptRuleSnsActionArrayOutput { 416 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleSnsActionArrayOutput { return v.SnsActions }).(ReceiptRuleSnsActionArrayOutput) 417 } 418 419 // A list of Stop Action blocks. Documented below. 420 func (o ReceiptRuleOutput) StopActions() ReceiptRuleStopActionArrayOutput { 421 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleStopActionArrayOutput { return v.StopActions }).(ReceiptRuleStopActionArrayOutput) 422 } 423 424 // `Require` or `Optional` 425 func (o ReceiptRuleOutput) TlsPolicy() pulumi.StringOutput { 426 return o.ApplyT(func(v *ReceiptRule) pulumi.StringOutput { return v.TlsPolicy }).(pulumi.StringOutput) 427 } 428 429 // A list of WorkMail Action blocks. Documented below. 430 func (o ReceiptRuleOutput) WorkmailActions() ReceiptRuleWorkmailActionArrayOutput { 431 return o.ApplyT(func(v *ReceiptRule) ReceiptRuleWorkmailActionArrayOutput { return v.WorkmailActions }).(ReceiptRuleWorkmailActionArrayOutput) 432 } 433 434 type ReceiptRuleArrayOutput struct{ *pulumi.OutputState } 435 436 func (ReceiptRuleArrayOutput) ElementType() reflect.Type { 437 return reflect.TypeOf((*[]*ReceiptRule)(nil)).Elem() 438 } 439 440 func (o ReceiptRuleArrayOutput) ToReceiptRuleArrayOutput() ReceiptRuleArrayOutput { 441 return o 442 } 443 444 func (o ReceiptRuleArrayOutput) ToReceiptRuleArrayOutputWithContext(ctx context.Context) ReceiptRuleArrayOutput { 445 return o 446 } 447 448 func (o ReceiptRuleArrayOutput) Index(i pulumi.IntInput) ReceiptRuleOutput { 449 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ReceiptRule { 450 return vs[0].([]*ReceiptRule)[vs[1].(int)] 451 }).(ReceiptRuleOutput) 452 } 453 454 type ReceiptRuleMapOutput struct{ *pulumi.OutputState } 455 456 func (ReceiptRuleMapOutput) ElementType() reflect.Type { 457 return reflect.TypeOf((*map[string]*ReceiptRule)(nil)).Elem() 458 } 459 460 func (o ReceiptRuleMapOutput) ToReceiptRuleMapOutput() ReceiptRuleMapOutput { 461 return o 462 } 463 464 func (o ReceiptRuleMapOutput) ToReceiptRuleMapOutputWithContext(ctx context.Context) ReceiptRuleMapOutput { 465 return o 466 } 467 468 func (o ReceiptRuleMapOutput) MapIndex(k pulumi.StringInput) ReceiptRuleOutput { 469 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ReceiptRule { 470 return vs[0].(map[string]*ReceiptRule)[vs[1].(string)] 471 }).(ReceiptRuleOutput) 472 } 473 474 func init() { 475 pulumi.RegisterInputType(reflect.TypeOf((*ReceiptRuleInput)(nil)).Elem(), &ReceiptRule{}) 476 pulumi.RegisterInputType(reflect.TypeOf((*ReceiptRuleArrayInput)(nil)).Elem(), ReceiptRuleArray{}) 477 pulumi.RegisterInputType(reflect.TypeOf((*ReceiptRuleMapInput)(nil)).Elem(), ReceiptRuleMap{}) 478 pulumi.RegisterOutputType(ReceiptRuleOutput{}) 479 pulumi.RegisterOutputType(ReceiptRuleArrayOutput{}) 480 pulumi.RegisterOutputType(ReceiptRuleMapOutput{}) 481 }