If you're only interested in reading path parameters, here's a compact template you can use.
#set($inputString = "{@requestBody@: $input.json('$'), @pathParameters@: {")
#set($pathParams = $input.params().get('path'))
#foreach($paramName in $pathParams.keySet())
#set($inputString = "$inputString @$paramName@: @$pathParams.get($paramName)@")
#if($foreach.hasNext)
#set($inputString = "$inputString,")
#end
#end
#set($inputString = "$inputString }}")
#set($inputString = $inputString.replaceAll("@",'"'))
{
"input": "$util.escapeJavaScript($inputString).replaceAll("\\'","'")",
"name": "$context.requestId",
"stateMachineArn": "${ErNameIntent}"
}
This will result in a payload like:
{
"requestBody": <requestbody>,
"pathParameters": {
<key1>: <value1>,
<key2>: <value2>,
...
<keyN>: <valueN>
}
}