Skip to content

Commit 02f6065

Browse files
authored
data-source/aws_launch_template: Support id as argument (#16457)
1 parent 120b944 commit 02f6065

3 files changed

Lines changed: 46 additions & 0 deletions

File tree

aws/data_source_aws_launch_template.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ func dataSourceAwsLaunchTemplate() *schema.Resource {
2929
Type: schema.TypeString,
3030
Computed: true,
3131
},
32+
"id": {
33+
Type: schema.TypeString,
34+
Optional: true,
35+
Computed: true,
36+
},
3237
"default_version": {
3338
Type: schema.TypeInt,
3439
Computed: true,
@@ -391,13 +396,17 @@ func dataSourceAwsLaunchTemplateRead(d *schema.ResourceData, meta interface{}) e
391396
ignoreTagsConfig := meta.(*AWSClient).IgnoreTagsConfig
392397

393398
filters, filtersOk := d.GetOk("filter")
399+
id, idOk := d.GetOk("id")
394400
name, nameOk := d.GetOk("name")
395401
tags, tagsOk := d.GetOk("tags")
396402

397403
params := &ec2.DescribeLaunchTemplatesInput{}
398404
if filtersOk {
399405
params.Filters = buildAwsDataSourceFilters(filters.(*schema.Set))
400406
}
407+
if idOk {
408+
params.LaunchTemplateIds = []*string{aws.String(id.(string))}
409+
}
401410
if nameOk {
402411
params.LaunchTemplateNames = []*string{aws.String(name.(string))}
403412
}

aws/data_source_aws_launch_template_test.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,30 @@ func TestAccAWSLaunchTemplateDataSource_basic(t *testing.T) {
3333
})
3434
}
3535

36+
func TestAccAWSLaunchTemplateDataSource_id_basic(t *testing.T) {
37+
rName := acctest.RandomWithPrefix("tf-acc-test")
38+
dataSourceName := "data.aws_launch_template.test"
39+
resourceName := "aws_launch_template.test"
40+
41+
resource.ParallelTest(t, resource.TestCase{
42+
PreCheck: func() { testAccPreCheck(t) },
43+
Providers: testAccProviders,
44+
CheckDestroy: testAccCheckAWSLaunchTemplateDestroy,
45+
Steps: []resource.TestStep{
46+
{
47+
Config: testAccAWSLaunchTemplateDataSourceConfig_BasicId(rName),
48+
Check: resource.ComposeTestCheckFunc(
49+
resource.TestCheckResourceAttrPair(resourceName, "arn", dataSourceName, "arn"),
50+
resource.TestCheckResourceAttrPair(resourceName, "default_version", dataSourceName, "default_version"),
51+
resource.TestCheckResourceAttrPair(resourceName, "latest_version", dataSourceName, "latest_version"),
52+
resource.TestCheckResourceAttrPair(resourceName, "name", dataSourceName, "name"),
53+
resource.TestCheckResourceAttrPair(resourceName, "hibernation_options", dataSourceName, "hibernation_options"),
54+
),
55+
},
56+
},
57+
})
58+
}
59+
3660
func TestAccAWSLaunchTemplateDataSource_filter_basic(t *testing.T) {
3761
rName := acctest.RandomWithPrefix("tf-acc-test")
3862
dataSourceName := "data.aws_launch_template.test"
@@ -256,6 +280,18 @@ data "aws_launch_template" "test" {
256280
`, rName)
257281
}
258282

283+
func testAccAWSLaunchTemplateDataSourceConfig_BasicId(rName string) string {
284+
return fmt.Sprintf(`
285+
resource "aws_launch_template" "test" {
286+
name = %q
287+
}
288+
289+
data "aws_launch_template" "test" {
290+
id = aws_launch_template.test.id
291+
}
292+
`, rName)
293+
}
294+
259295
func testAccAWSLaunchTemplateDataSourceConfigBasicFilter(rName string) string {
260296
return fmt.Sprintf(`
261297
resource "aws_launch_template" "test" {

website/docs/d/launch_template.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ data "aws_launch_template" "test" {
3434
The following arguments are supported:
3535

3636
* `filter` - (Optional) Configuration block(s) for filtering. Detailed below.
37+
* `id` - (Optional) The ID of the specific launch template to retrieve.
3738
* `name` - (Optional) The name of the launch template.
3839
* `tags` - (Optional) A map of tags, each pair of which must exactly match a pair on the desired Launch Template.
3940

0 commit comments

Comments
 (0)