func resourceAwsRedshiftSecurityGroupAuthorizeRule(ingress interface{}, redshiftSecurityGroupName string, conn *redshift.Redshift) error { ing := ingress.(map[string]interface{}) opts := redshift.AuthorizeClusterSecurityGroupIngressInput{ ClusterSecurityGroupName: aws.String(redshiftSecurityGroupName), } if attr, ok := ing["cidr"]; ok && attr != "" { opts.CIDRIP = aws.String(attr.(string)) } if attr, ok := ing["security_group_name"]; ok && attr != "" { opts.EC2SecurityGroupName = aws.String(attr.(string)) } if attr, ok := ing["security_group_owner_id"]; ok && attr != "" { opts.EC2SecurityGroupOwnerId = aws.String(attr.(string)) } log.Printf("[DEBUG] Authorize ingress rule configuration: %#v", opts) _, err := conn.AuthorizeClusterSecurityGroupIngress(&opts) if err != nil { return fmt.Errorf("Error authorizing security group ingress: %s", err) } return nil }
func enableRedshiftClusterLogging(d *schema.ResourceData, conn *redshift.Redshift) error { if _, ok := d.GetOk("bucket_name"); !ok { return fmt.Errorf("bucket_name must be set when enabling logging for Redshift Clusters") } params := &redshift.EnableLoggingInput{ ClusterIdentifier: aws.String(d.Id()), BucketName: aws.String(d.Get("bucket_name").(string)), } if v, ok := d.GetOk("s3_key_prefix"); ok { params.S3KeyPrefix = aws.String(v.(string)) } _, loggingErr := conn.EnableLogging(params) if loggingErr != nil { log.Printf("[ERROR] Error Enabling Logging on Redshift Cluster: %s", loggingErr) return loggingErr } return nil }
func setTagsRedshift(conn *redshift.Redshift, d *schema.ResourceData, arn string) error { if d.HasChange("tags") { oraw, nraw := d.GetChange("tags") o := oraw.(map[string]interface{}) n := nraw.(map[string]interface{}) create, remove := diffTagsRedshift(tagsFromMapRedshift(o), tagsFromMapRedshift(n)) // Set tags if len(remove) > 0 { log.Printf("[DEBUG] Removing tags: %#v", remove) k := make([]*string, len(remove), len(remove)) for i, t := range remove { k[i] = t.Key } _, err := conn.DeleteTags(&redshift.DeleteTagsInput{ ResourceName: aws.String(arn), TagKeys: k, }) if err != nil { return err } } if len(create) > 0 { log.Printf("[DEBUG] Creating tags: %#v", create) _, err := conn.CreateTags(&redshift.CreateTagsInput{ ResourceName: aws.String(arn), Tags: create, }) if err != nil { return err } } } return nil }