Body Mapping Template + API Gateway
<p>So I'm trying to set up a basic POST to a API Post Method I made that's connected to a simple dynamodb. I have the following Body Mapping Template below: </p>

<pre><code>{ 
"TableName": "bars",
"Item": {
  "barid": {
    "S": "$input.path('$.barid')"
  },
  "phone": {
    "S": "$input.path('$.phone')"
  },
  "location": {
    "S": "$input.path('$.location')"
  },
  "happyhour": {
    "L": [
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": "$input.path('$.Time')"
          },
          "Deal": {
            "S": "$input.path('$.Deal')"
          },
          "Day": {
            "S": "$input.path('$.Day')"
          }
        }
      }
    ]
  },
  "name": {
    "S": "$input.path('$.name')"
  }
}
}
</code></pre>

<p>Here is what I'm testing the post statement with:</p>

<pre><code>{
"barid": {
    "S": "005"
},
"happyhour": {
    "L": [{
        "M": {
            "Time": {
                "S": "11AM-9AM"
            },
            "Deal": {
                "S": "$3 Mimosas; $3 Bloody Marys"
            },
            "Day": {
                "S": "Sunday"
            }
        }
    }, {
        "M": {
            "Time": {
                "S": "4PM - 9PM"
            },
            "Deal": {
                "S": "$4 Margaritas, Corona, Corona Light; $3 Bud Light Lime"
            },
            "Day": {
                "S": "Monday"
            }
        }
    }, {
        "M": {
            "Time": {
                "S": "4PM-9PM"
            },
            "Deal": {
                "S": "1/2 Price Burgers; $2 Bud and Bud Light Drafts"
            },
            "Day": {
                "S": "Tuesday"
            }
        }
    }, {
        "M": {
            "Time": {
                "S": "4PM-9PM"
            },
            "Deal": {
                "S": "$2 Drafts; $3 Food Menu"
            },
            "Day": {
                "S": "Wednesday"
            }
        }
    }, {
        "M": {
            "Time": {
                "S": "4PM-9PM"
            },
            "Deal": {
                "S": "$2 Beers, House Liquor, Flavored Vodka; 1/2 Price Wings; $5 Pizzas or Pasta Bowl"
            },
            "Day": {
                "S": "Thursday"
            }
        }
    }, {
        "M": {
            "Time": {
                "S": "4PM-9PM"
            },
            "Deal": {
                "S": "$5 Red Bull House Liquor Cocktails; $5 Wings, Nachos, Sliders, Flatbreads; $5 Finlandia Cocktails and Martinis; $15 Sam Adams Light Buckets"
            },
            "Day": {
                "S": "Friday"
            }
        }
    }, {
        "M": {
            "Time": {
                "S": "None"
            },
            "Deal": {
                "S": "None"
            },
            "Day": {
                "S": "Sunday"
            }
        }
    }]
},
"phone": {
    "S": "(703) 527-1600"
},
"location": {
    "S": "3100 Clarendon Blvd, Arlington, VA 22201"
},
"name": {
    "S": "Mister Days"
}
</code></pre>

<p>}</p>

<p>Whenever I run this it seems that it populates the barid, phone and location field but leaves the happyhour array blank. Below is what I got in the logs after running the test.</p>

<pre><code>"TableName": "bars",
"Item": {
  "barid": {
    "S": "{S=005}"
  },
  "phone": {
    "S": "{S=(703) 527-1576}"
  },
  "location": {
    "S": "{S=2500 Hess Road}"
  },
  "happyhour": {
    "L": [
      {
        "M": {
          "Time": {
            "S": ""
          },
          "Deal": {
            "S": ""
          },
          "Day": {
            "S": ""
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": ""
          },
          "Deal": {
            "S": ""
          },
          "Day": {
            "S": ""
          }
        }
      },
      {
        "M": {
          "Time": {
            "S": ""
          },
          "Deal": {
            "S": ""
          },
          "Day": {
            "S": ""
          }
   [TRUNCATED]
Thu Jun 30 15:36:27 UTC 2016 : Endpoint response body before transformations: {"__type":"com.amazon.coral.service#UnknownOperationException"}
</code></pre>

<p>Not sure what I'm doing wrong but anything would help. Thanks!</p>