func expandRedshiftSGAuthorizeIngress(configured []interface{}) ([]redshift.AuthorizeClusterSecurityGroupIngressInput, error) { var ingress []redshift.AuthorizeClusterSecurityGroupIngressInput // Loop over our configured parameters and create // an array of aws-sdk-go compatabile objects for _, pRaw := range configured { data := pRaw.(map[string]interface{}) i := redshift.AuthorizeClusterSecurityGroupIngressInput{} if v, ok := data["cidr"]; ok { i.CIDRIP = aws.String(v.(string)) } if v, ok := data["security_group_name"]; ok { i.EC2SecurityGroupName = aws.String(v.(string)) } if v, ok := data["security_group_owner_id"]; ok { i.EC2SecurityGroupOwnerId = aws.String(v.(string)) } ingress = append(ingress, i) } return ingress, nil }
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 }