github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/aws/resource_aws_ses_active_receipt_rule_set.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 "log" 6 7 "github.com/aws/aws-sdk-go/aws" 8 "github.com/aws/aws-sdk-go/service/ses" 9 "github.com/hashicorp/terraform/helper/schema" 10 ) 11 12 func resourceAwsSesActiveReceiptRuleSet() *schema.Resource { 13 return &schema.Resource{ 14 Create: resourceAwsSesActiveReceiptRuleSetUpdate, 15 Update: resourceAwsSesActiveReceiptRuleSetUpdate, 16 Read: resourceAwsSesActiveReceiptRuleSetRead, 17 Delete: resourceAwsSesActiveReceiptRuleSetDelete, 18 19 Schema: map[string]*schema.Schema{ 20 "rule_set_name": &schema.Schema{ 21 Type: schema.TypeString, 22 Required: true, 23 }, 24 }, 25 } 26 } 27 28 func resourceAwsSesActiveReceiptRuleSetUpdate(d *schema.ResourceData, meta interface{}) error { 29 conn := meta.(*AWSClient).sesConn 30 31 ruleSetName := d.Get("rule_set_name").(string) 32 33 createOpts := &ses.SetActiveReceiptRuleSetInput{ 34 RuleSetName: aws.String(ruleSetName), 35 } 36 37 _, err := conn.SetActiveReceiptRuleSet(createOpts) 38 if err != nil { 39 return fmt.Errorf("Error setting active SES rule set: %s", err) 40 } 41 42 d.SetId(ruleSetName) 43 44 return resourceAwsSesActiveReceiptRuleSetRead(d, meta) 45 } 46 47 func resourceAwsSesActiveReceiptRuleSetRead(d *schema.ResourceData, meta interface{}) error { 48 conn := meta.(*AWSClient).sesConn 49 50 describeOpts := &ses.DescribeActiveReceiptRuleSetInput{} 51 52 response, err := conn.DescribeActiveReceiptRuleSet(describeOpts) 53 if err != nil { 54 return err 55 } 56 57 if response.Metadata != nil { 58 d.Set("rule_set_name", response.Metadata.Name) 59 } else { 60 log.Print("[WARN] No active Receipt Rule Set found") 61 d.SetId("") 62 } 63 64 return nil 65 } 66 67 func resourceAwsSesActiveReceiptRuleSetDelete(d *schema.ResourceData, meta interface{}) error { 68 conn := meta.(*AWSClient).sesConn 69 70 deleteOpts := &ses.SetActiveReceiptRuleSetInput{ 71 RuleSetName: nil, 72 } 73 74 _, err := conn.SetActiveReceiptRuleSet(deleteOpts) 75 if err != nil { 76 return fmt.Errorf("Error deleting active SES rule set: %s", err) 77 } 78 79 return nil 80 }