@@ -368,6 +368,58 @@ func testAccAwsAppmeshRoute_grpcRouteTimeout(t *testing.T) {
368368 })
369369}
370370
371+ func testAccAwsAppmeshRoute_grpcRouteEmptyMatch (t * testing.T ) {
372+ var r appmesh.RouteData
373+ resourceName := "aws_appmesh_route.test"
374+ meshName := acctest .RandomWithPrefix ("tf-acc-test" )
375+ vrName := acctest .RandomWithPrefix ("tf-acc-test" )
376+ vn1Name := acctest .RandomWithPrefix ("tf-acc-test" )
377+ vn2Name := acctest .RandomWithPrefix ("tf-acc-test" )
378+ rName := acctest .RandomWithPrefix ("tf-acc-test" )
379+
380+ resource .Test (t , resource.TestCase {
381+ PreCheck : func () { testAccPreCheck (t ); testAccPartitionHasServicePreCheck (appmesh .EndpointsID , t ) },
382+ Providers : testAccProviders ,
383+ CheckDestroy : testAccCheckAppmeshRouteDestroy ,
384+ Steps : []resource.TestStep {
385+ {
386+ Config : testAccAwsAppmeshRouteConfig_grpcRouteWithEmptyMatch (meshName , vrName , vn1Name , vn2Name , rName ),
387+ Check : resource .ComposeTestCheckFunc (
388+ testAccCheckAppmeshRouteExists (resourceName , & r ),
389+ resource .TestCheckResourceAttr (resourceName , "name" , rName ),
390+ resource .TestCheckResourceAttr (resourceName , "mesh_name" , meshName ),
391+ testAccCheckResourceAttrAccountID (resourceName , "mesh_owner" ),
392+ resource .TestCheckResourceAttr (resourceName , "virtual_router_name" , vrName ),
393+ resource .TestCheckResourceAttr (resourceName , "spec.#" , "1" ),
394+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.#" , "1" ),
395+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.action.#" , "1" ),
396+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.action.0.weighted_target.#" , "1" ),
397+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.match.#" , "1" ),
398+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.match.0.metadata.#" , "0" ),
399+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.match.0.method_name" , "" ),
400+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.match.0.service_name" , "" ),
401+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.retry_policy.#" , "0" ),
402+ resource .TestCheckResourceAttr (resourceName , "spec.0.grpc_route.0.timeout.#" , "0" ),
403+ resource .TestCheckResourceAttr (resourceName , "spec.0.http2_route.#" , "0" ),
404+ resource .TestCheckResourceAttr (resourceName , "spec.0.http_route.#" , "0" ),
405+ resource .TestCheckResourceAttr (resourceName , "spec.0.tcp_route.#" , "0" ),
406+ resource .TestCheckResourceAttr (resourceName , "tags.%" , "0" ),
407+ resource .TestCheckResourceAttrSet (resourceName , "created_date" ),
408+ resource .TestCheckResourceAttrSet (resourceName , "last_updated_date" ),
409+ testAccCheckResourceAttrAccountID (resourceName , "resource_owner" ),
410+ testAccCheckResourceAttrRegionalARN (resourceName , "arn" , "appmesh" , fmt .Sprintf ("mesh/%s/virtualRouter/%s/route/%s" , meshName , vrName , rName )),
411+ ),
412+ },
413+ {
414+ ResourceName : resourceName ,
415+ ImportStateIdFunc : testAccAwsAppmeshRouteImportStateIdFunc (resourceName ),
416+ ImportState : true ,
417+ ImportStateVerify : true ,
418+ },
419+ },
420+ })
421+ }
422+
371423func testAccAwsAppmeshRoute_http2Route (t * testing.T ) {
372424 var r appmesh.RouteData
373425 resourceName := "aws_appmesh_route.test"
@@ -1645,6 +1697,29 @@ resource "aws_appmesh_route" "test" {
16451697` , rName ))
16461698}
16471699
1700+ func testAccAwsAppmeshRouteConfig_grpcRouteWithEmptyMatch (meshName , vrName , vn1Name , vn2Name , rName string ) string {
1701+ return composeConfig (testAccAppmeshRouteConfigBase (meshName , vrName , "grpc" , vn1Name , vn2Name ), fmt .Sprintf (`
1702+ resource "aws_appmesh_route" "test" {
1703+ name = %[1]q
1704+ mesh_name = aws_appmesh_mesh.test.id
1705+ virtual_router_name = aws_appmesh_virtual_router.test.name
1706+
1707+ spec {
1708+ grpc_route {
1709+ match {}
1710+
1711+ action {
1712+ weighted_target {
1713+ virtual_node = aws_appmesh_virtual_node.foo.name
1714+ weight = 100
1715+ }
1716+ }
1717+ }
1718+ }
1719+ }
1720+ ` , rName ))
1721+ }
1722+
16481723func testAccAwsAppmeshRouteConfig_http2Route (meshName , vrName , vn1Name , vn2Name , rName string ) string {
16491724 return composeConfig (testAccAppmeshRouteConfigBase (meshName , vrName , "http2" , vn1Name , vn2Name ), fmt .Sprintf (`
16501725resource "aws_appmesh_route" "test" {
0 commit comments