Allow setting the notification topic ARN for ElastiCache clusters.
This commit is contained in:
parent
e7f33bf523
commit
3c6faf068f
|
@ -112,7 +112,10 @@ func resourceAwsElasticacheCluster() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"notification_topic_arn": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
// A single-element string list containing an Amazon Resource Name (ARN) that
|
// A single-element string list containing an Amazon Resource Name (ARN) that
|
||||||
// uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
|
// uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
|
||||||
// file will be used to populate the node group.
|
// file will be used to populate the node group.
|
||||||
|
@ -182,6 +185,10 @@ func resourceAwsElasticacheClusterCreate(d *schema.ResourceData, meta interface{
|
||||||
req.PreferredMaintenanceWindow = aws.String(v.(string))
|
req.PreferredMaintenanceWindow = aws.String(v.(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := d.GetOk("notification_topic_arn"); ok {
|
||||||
|
req.NotificationTopicArn = aws.String(v.(string))
|
||||||
|
}
|
||||||
|
|
||||||
snaps := d.Get("snapshot_arns").(*schema.Set).List()
|
snaps := d.Get("snapshot_arns").(*schema.Set).List()
|
||||||
if len(snaps) > 0 {
|
if len(snaps) > 0 {
|
||||||
s := expandStringList(snaps)
|
s := expandStringList(snaps)
|
||||||
|
@ -244,6 +251,11 @@ func resourceAwsElasticacheClusterRead(d *schema.ResourceData, meta interface{})
|
||||||
d.Set("security_group_ids", c.SecurityGroups)
|
d.Set("security_group_ids", c.SecurityGroups)
|
||||||
d.Set("parameter_group_name", c.CacheParameterGroup)
|
d.Set("parameter_group_name", c.CacheParameterGroup)
|
||||||
d.Set("maintenance_window", c.PreferredMaintenanceWindow)
|
d.Set("maintenance_window", c.PreferredMaintenanceWindow)
|
||||||
|
if c.NotificationConfiguration != nil {
|
||||||
|
if *c.NotificationConfiguration.TopicStatus == "active" {
|
||||||
|
d.Set("notification_topic_arn", c.NotificationConfiguration.TopicArn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := setCacheNodeData(d, c); err != nil {
|
if err := setCacheNodeData(d, c); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -307,6 +319,16 @@ func resourceAwsElasticacheClusterUpdate(d *schema.ResourceData, meta interface{
|
||||||
requestUpdate = true
|
requestUpdate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if d.HasChange("notification_topic_arn") {
|
||||||
|
v := d.Get("notification_topic_arn").(string)
|
||||||
|
req.NotificationTopicArn = aws.String(v)
|
||||||
|
if v == "" {
|
||||||
|
inactive := "inactive"
|
||||||
|
req.NotificationTopicStatus = &inactive
|
||||||
|
}
|
||||||
|
requestUpdate = true
|
||||||
|
}
|
||||||
|
|
||||||
if d.HasChange("engine_version") {
|
if d.HasChange("engine_version") {
|
||||||
req.EngineVersion = aws.String(d.Get("engine_version").(string))
|
req.EngineVersion = aws.String(d.Get("engine_version").(string))
|
||||||
requestUpdate = true
|
requestUpdate = true
|
||||||
|
|
|
@ -73,6 +73,10 @@ names to associate with this cache cluster
|
||||||
Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3.
|
Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3.
|
||||||
Example: `arn:aws:s3:::my_bucket/snapshot1.rdb`
|
Example: `arn:aws:s3:::my_bucket/snapshot1.rdb`
|
||||||
|
|
||||||
|
* `notification_topic_arn` – (Optional) An Amazon Resource Name (ARN) of an
|
||||||
|
SNS topic to send ElastiCache notifications to. Example:
|
||||||
|
`arn:aws:sns:us-east-1:012345678999:my_sns_topic`
|
||||||
|
|
||||||
* `tags` - (Optional) A mapping of tags to assign to the resource.
|
* `tags` - (Optional) A mapping of tags to assign to the resource.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue