From ef3dd3060d501dd02140a9104651ca92be8159d8 Mon Sep 17 00:00:00 2001 From: Chad Greenburg Date: Mon, 10 Feb 2020 15:35:22 -0600 Subject: [PATCH] Updated lambda_layer_version resource Added a "retain" value to the resource schema. If retain is true, don't delete the old lambda layer. --- aws/resource_aws_lambda_layer_version.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/aws/resource_aws_lambda_layer_version.go b/aws/resource_aws_lambda_layer_version.go index 92d564f38f29..d5166ff9bd72 100644 --- a/aws/resource_aws_lambda_layer_version.go +++ b/aws/resource_aws_lambda_layer_version.go @@ -105,6 +105,11 @@ func resourceAwsLambdaLayerVersion() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "retain": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, }, } } @@ -225,6 +230,12 @@ func resourceAwsLambdaLayerVersionRead(d *schema.ResourceData, meta interface{}) } func resourceAwsLambdaLayerVersionDelete(d *schema.ResourceData, meta interface{}) error { + retain := d.Get("retain").(bool) + if retain { + log.Printf("[DEBUG] Retaining Lambda Layer %q", d.Get("arn").(string)) + return nil + } + conn := meta.(*AWSClient).lambdaconn version, err := strconv.ParseInt(d.Get("version").(string), 10, 64) @@ -237,7 +248,7 @@ func resourceAwsLambdaLayerVersionDelete(d *schema.ResourceData, meta interface{ VersionNumber: aws.Int64(version), }) if err != nil { - return fmt.Errorf("error deleting Lambda Layer Version (%s): %s", d.Id(), err) + return fmt.Errorf("Error deleting Lambda Layer Version (%s): %s", d.Id(), err) } log.Printf("[DEBUG] Lambda layer %q deleted", d.Get("arn").(string))