diff --git a/.changelog/26012.txt b/.changelog/26012.txt new file mode 100644 index 000000000000..9a5ca4bba143 --- /dev/null +++ b/.changelog/26012.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/aws_appmesh_gateway_route: Fix crash when only one of hostname rewrite or path rewrite is configured +``` \ No newline at end of file diff --git a/internal/service/appmesh/gateway_route.go b/internal/service/appmesh/gateway_route.go index 0a76e351f6dd..15b8c3e44536 100644 --- a/internal/service/appmesh/gateway_route.go +++ b/internal/service/appmesh/gateway_route.go @@ -779,7 +779,7 @@ func expandHTTPGatewayRouteRewrite(vHttpRouteRewrite []interface{}) *appmesh.Htt mRouteRewrite := vHttpRouteRewrite[0].(map[string]interface{}) routeRewrite := &appmesh.HttpGatewayRouteRewrite{} - if vRouteHostnameRewrite, ok := mRouteRewrite["hostname"].([]interface{}); ok { + if vRouteHostnameRewrite, ok := mRouteRewrite["hostname"].([]interface{}); ok && len(vRouteHostnameRewrite) > 0 && vRouteHostnameRewrite[0] != nil { mRouteHostnameRewrite := vRouteHostnameRewrite[0].(map[string]interface{}) routeHostnameRewrite := &appmesh.GatewayRouteHostnameRewrite{} if vDefaultTargetHostname, ok := mRouteHostnameRewrite["default_target_hostname"].(string); ok && vDefaultTargetHostname != "" { @@ -788,7 +788,7 @@ func expandHTTPGatewayRouteRewrite(vHttpRouteRewrite []interface{}) *appmesh.Htt routeRewrite.Hostname = routeHostnameRewrite } - if vRoutePrefixRewrite, ok := mRouteRewrite["prefix"].([]interface{}); ok { + if vRoutePrefixRewrite, ok := mRouteRewrite["prefix"].([]interface{}); ok && len(vRoutePrefixRewrite) > 0 && vRoutePrefixRewrite[0] != nil { mRoutePrefixRewrite := vRoutePrefixRewrite[0].(map[string]interface{}) routePrefixRewrite := &appmesh.HttpGatewayRoutePrefixRewrite{} if vDefaultPrefix, ok := mRoutePrefixRewrite["default_prefix"].(string); ok && vDefaultPrefix != "" {