@@ -60,20 +60,6 @@ func TestAccLogsQueryDefinition_basic(t *testing.T) {
60
60
})
61
61
}
62
62
63
- func testAccQueryDefinitionImportStateID (ctx context.Context , v * types.QueryDefinition ) resource.ImportStateIdFunc {
64
- return func (* terraform.State ) (string , error ) {
65
- id := arn.ARN {
66
- AccountID : acctest .AccountID (ctx ),
67
- Partition : acctest .Partition (),
68
- Region : acctest .Region (),
69
- Service : "logs" ,
70
- Resource : fmt .Sprintf ("query-definition:%s" , aws .ToString (v .QueryDefinitionId )),
71
- }
72
-
73
- return id .String (), nil
74
- }
75
- }
76
-
77
63
func TestAccLogsQueryDefinition_disappears (t * testing.T ) {
78
64
ctx := acctest .Context (t )
79
65
var v types.QueryDefinition
@@ -176,6 +162,52 @@ func TestAccLogsQueryDefinition_logGroups(t *testing.T) {
176
162
})
177
163
}
178
164
165
+ func TestAccLogsQueryDefinition_logGroupARNs (t * testing.T ) {
166
+ ctx := acctest .Context (t )
167
+ var v types.QueryDefinition
168
+ resourceName := "aws_cloudwatch_query_definition.test"
169
+ queryName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
170
+
171
+ resource .ParallelTest (t , resource.TestCase {
172
+ PreCheck : func () { acctest .PreCheck (ctx , t ) },
173
+ ErrorCheck : acctest .ErrorCheck (t , names .LogsServiceID ),
174
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
175
+ CheckDestroy : testAccCheckQueryDefinitionDestroy (ctx ),
176
+ Steps : []resource.TestStep {
177
+ {
178
+ Config : testAccQueryDefinitionConfig_logGroupARNs (queryName ),
179
+ Check : resource .ComposeTestCheckFunc (
180
+ testAccCheckQueryDefinitionExists (ctx , resourceName , & v ),
181
+ resource .TestCheckResourceAttr (resourceName , names .AttrName , queryName ),
182
+ resource .TestCheckResourceAttr (resourceName , "log_group_names.#" , "2" ),
183
+ resource .TestCheckResourceAttrPair (resourceName , "log_group_names.0" , "aws_cloudwatch_log_group.test.0" , names .AttrARN ),
184
+ resource .TestCheckResourceAttrPair (resourceName , "log_group_names.1" , "aws_cloudwatch_log_group.test.1" , names .AttrARN ),
185
+ ),
186
+ },
187
+ {
188
+ ResourceName : resourceName ,
189
+ ImportState : true ,
190
+ ImportStateVerify : true ,
191
+ ImportStateIdFunc : testAccQueryDefinitionImportStateID (ctx , & v ),
192
+ },
193
+ },
194
+ })
195
+ }
196
+
197
+ func testAccQueryDefinitionImportStateID (ctx context.Context , v * types.QueryDefinition ) resource.ImportStateIdFunc {
198
+ return func (* terraform.State ) (string , error ) {
199
+ id := arn.ARN {
200
+ AccountID : acctest .AccountID (ctx ),
201
+ Partition : acctest .Partition (),
202
+ Region : acctest .Region (),
203
+ Service : "logs" ,
204
+ Resource : fmt .Sprintf ("query-definition:%s" , aws .ToString (v .QueryDefinitionId )),
205
+ }
206
+
207
+ return id .String (), nil
208
+ }
209
+ }
210
+
179
211
func testAccCheckQueryDefinitionExists (ctx context.Context , n string , v * types.QueryDefinition ) resource.TestCheckFunc {
180
212
return func (s * terraform.State ) error {
181
213
rs , ok := s .RootModule ().Resources [n ]
@@ -258,3 +290,28 @@ resource "aws_cloudwatch_log_group" "test" {
258
290
}
259
291
` , rName , count )
260
292
}
293
+
294
+ func testAccQueryDefinitionConfig_logGroupARNs (rName string ) string {
295
+ return fmt .Sprintf (`
296
+ resource "aws_cloudwatch_query_definition" "test" {
297
+ name = %[1]q
298
+
299
+ log_group_names = [
300
+ aws_cloudwatch_log_group.test[0].arn,
301
+ aws_cloudwatch_log_group.test[1].arn,
302
+ ]
303
+
304
+ query_string = <<EOF
305
+ fields @timestamp, @message
306
+ | sort @timestamp desc
307
+ | limit 20
308
+ EOF
309
+ }
310
+
311
+ resource "aws_cloudwatch_log_group" "test" {
312
+ count = 2
313
+
314
+ name = "%[1]s-${count.index}"
315
+ }
316
+ ` , rName )
317
+ }
0 commit comments