{"version":3,"file":"static/chunks/667e7a8e-ee87a0b0644d557c.js","mappings":"oPA29FOA,EAAA,SAAAC,CAAA,CAAAC,CAAA,EAAyE,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCAChG,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACA,MAAW,GAAAV,EAAAW,EAAA,EAAW,cAAAC,CAAA,EACtB,OAAAA,EAAAC,KAAA,EACA,OAKA,GAJAX,EAAA,CACA,iCACA,EACAC,EAAA,kCACAL,KAAAgB,IAAAhB,EAAAiB,aAAA,EAEA,GAAAX,CADAA,EAAAN,EAAAiB,aAAA,EACAC,MAAA,IACA,yEAEAb,EAAAA,EAAAc,OAAA,mBAA2E,GAAAC,EAAAC,EAAA,EAA4Bf,GACvG,MAEA,sEASA,OAPAU,KAAAA,IAAAhB,EAAAsB,aAAA,EACAf,CAAAA,EAAAgB,EAAAvB,EAAAsB,aAAA,CAAArB,EAAA,EAEAe,KAAAA,IAAAT,GACAA,CAAAA,EAAA,IAEAA,EAAAiB,KAAAC,SAAA,CAAAlB,GACA,GAAAN,EAAAyB,QAAA,SACA,EAEA,OADAjB,EAAAD,CAAAA,EAAAM,EAAAa,IAAA,IAAAlB,QAAA,CAAAE,EAAAD,KAAA,IAAAA,CAAAA,EAAAF,EAAAG,QAAA,UAAAD,EAAAE,EAAAJ,EAAAI,IAAA,CACA,OAA0CgB,EAAAC,EAAa,EACvDlB,SAAAA,EACAF,SAAAA,EACAG,KAAAA,EACAkB,OAAA,OACA1B,QAAAA,EACA2B,KAAA1B,EACAE,KAAAA,CACA,GAAqB,CAErB,EACA,EAAC,EAgqBMyB,EAAA,SAAAhC,CAAA,CAAAC,CAAA,EAA8E,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCACrG,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACA,MAAW,GAAAV,EAAAW,EAAA,EAAW,cAAAC,CAAA,EACtB,OAAAA,EAAAC,KAAA,EACA,OAKA,GAJAX,EAAA,CACA,iCACA,EACAC,EAAA,kDACAL,KAAAgB,IAAAhB,EAAAiB,aAAA,EAEA,GAAAX,CADAA,EAAAN,EAAAiB,aAAA,EACAC,MAAA,IACA,yEAEAb,EAAAA,EAAAc,OAAA,mBAA2E,GAAAC,EAAAC,EAAA,EAA4Bf,GACvG,MAEA,sEAEA,GAAAN,KAAAgB,IAAAhB,EAAAiC,UAAA,EAEA,GAAA3B,CADAA,EAAAN,EAAAiC,UAAA,EACAf,MAAA,IACA,sEAEAb,EAAAA,EAAAc,OAAA,gBAAwE,GAAAC,EAAAC,EAAA,EAA4Bf,GACpG,MAEA,mEASA,OAPAU,KAAAA,IAAAhB,EAAAkC,eAAA,EACA3B,CAAAA,EAAA4B,EAAAnC,EAAAkC,eAAA,CAAAjC,EAAA,EAEAe,KAAAA,IAAAT,GACAA,CAAAA,EAAA,IAEAA,EAAAiB,KAAAC,SAAA,CAAAlB,GACA,GAAAN,EAAAyB,QAAA,SACA,EAEA,OADAjB,EAAAD,CAAAA,EAAAM,EAAAa,IAAA,IAAAlB,QAAA,CAAAE,EAAAD,KAAA,IAAAA,CAAAA,EAAAF,EAAAG,QAAA,UAAAD,EAAAE,EAAAJ,EAAAI,IAAA,CACA,OAA0CgB,EAAAC,EAAa,EACvDlB,SAAAA,EACAF,SAAAA,EACAG,KAAAA,EACAkB,OAAA,MACA1B,QAAAA,EACA2B,KAAA1B,EACAE,KAAAA,CACA,GAAqB,CAErB,EACA,EAAC,EAm4RM6B,EAAA,SAAAC,CAAA,CAAApC,CAAA,EAA4E,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCACnG,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EACtB,OAAAA,EAAAO,KAAA,EACA,OACA,GAAAsB,MAAAA,EAAAG,UAAA,EAAAH,EAAAG,UAAA,MACA,SAAAC,EAAAJ,EAAApC,GAAA,CAMA,OAJAqC,EAAA,CACAI,UAAAC,EAAAN,GACAO,eAAA5B,KAAAA,CACA,EACA,GAAA6B,EAAAR,EAAA9B,IAAA,CAAAN,GAAA,MACA,EAGA,OAFAsC,EAAA/B,EAAAmB,IAAA,GACAW,EAAAM,cAAA,CAAAE,EAAAP,EAAAtC,GACA,GAAA8C,QAAAC,OAAA,CAAAV,GAAA,CAEA,EACA,EAAC,EACDG,EAAA,SAAAJ,CAAA,CAAApC,CAAA,EAAiF,MAAO,GAAAC,EAAAC,EAAA,EAAS,oCACjG8C,EAAAzC,EAAA0C,EAAAC,EAAArC,EAAAsC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAC,EACA,MAAW,GAAA1D,EAAAW,EAAA,EAAW,cAAAgD,CAAA,EACtB,OAAAA,EAAA9C,KAAA,EACA,OAGA,OAFAP,EAAA,CAAsB,GAAAN,EAAA4D,EAAA,EAAQ,GAAGzB,GAAA,CACjCuB,EAAA,GACA,GAAAf,EAAAR,EAAA9B,IAAA,CAAAN,GAAA,MACA,EAKA,OAJAgD,EAA+B/C,EAAA4D,EAAQ,CAAAC,KAAA,QAAAvD,EAAAwD,MAAA,EAAAJ,CAAAA,EAAArD,IAAA,CAAAsD,EAAAlC,IAAA,GAAAiC,CAAA,KACvCT,EAAA,eACAA,EAAAc,EAAA5B,EAAAY,EAAA1C,IAAA,GAGA,0BACA,iDADA,gBAEA,qBACA,gDADA,gBAEA,+BACA,0DADA,gBAEA,4BACA,uDADA,gBAEA,oBACA,+CADA,iBAEA,2BACA,sDADA,iBAEA,2BACA,sDADA,aAGA,kBACA,EAEA,OADAO,EAAA,IAAwB,CACxB,GAAAoD,EAAAjB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAjD,EAAAkD,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,EAEA,OADAe,EAAA,IAAwB,CACxB,GAAAgB,EAAAnB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAX,EAAAY,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,EAEA,OADAgB,EAAA,IAAwB,CACxB,GAAAgB,EAAApB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAV,EAAAW,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,EAEA,OADAiB,EAAA,IAAwB,CACxB,GAAAgB,EAAArB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAT,EAAAU,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEA,OADAkB,EAAA,IAAwB,CACxB,GAAAgB,EAAAtB,EAAAhD,GAAA,MACA,GAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAR,EAAAS,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEA,OADAmB,EAAA,IAAwB,CACxB,GAAAgB,EAAAvB,EAAAhD,GAAA,MACA,GAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAP,EAAAQ,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEA,OADAoB,EAAA,IAAwB,CACxB,GAAAgB,EAAAxB,EAAAhD,GAAA,MACA,GAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAN,EAAAO,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEAc,EAAAO,CADAA,EAAAT,EAAA1C,IAAA,EACAmE,IAAA,EAAAhB,EAAAiB,IAAA,EAAAxB,EACAD,EAA2B,GAAAhD,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAGJ,GAAA,CAAiBS,KAAA,GAAAhB,EAAAQ,QAAAD,EAAAC,OAAA,EAAAD,EAAAkB,OAAA,EAAAzB,EAAA0B,OAAA,SAAAnC,UAAAC,EAAAN,EAAA,GAChEwB,EAAA9C,KAAA,GACA,SAIA,OAHA4C,EAAAT,EAAAS,OAAA,EAAAT,EAAA0B,OAAA,EAAAzB,EACAD,EAAAS,OAAA,CAAAA,EACA,OAAAT,EAAA0B,OAAA,CACA,GAAA7B,QAAA+B,MAAA,CAAAC,OAAAC,MAAA,OAAArB,GAAAT,IAAA,CAEA,EACA,EAAC,EAqiDM+B,EAAA,SAAA5C,CAAA,CAAApC,CAAA,EAAiF,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCACxG,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EACtB,OAAAA,EAAAO,KAAA,EACA,OACA,GAAAsB,MAAAA,EAAAG,UAAA,EAAAH,EAAAG,UAAA,MACA,SAAA0C,EAAA7C,EAAApC,GAAA,CAMA,OAJAqC,EAAA,CACAI,UAAAC,EAAAN,GACA8C,YAAAnE,KAAAA,CACA,EACA,GAAA6B,EAAAR,EAAA9B,IAAA,CAAAN,GAAA,MACA,EAGA,OAFAsC,EAAA/B,EAAAmB,IAAA,GACAW,EAAA6C,WAAA,CAAAC,EAAA7C,EAAAtC,GACA,GAAA8C,QAAAC,OAAA,CAAAV,GAAA,CAEA,EACA,EAAC,EACD4C,EAAA,SAAA7C,CAAA,CAAApC,CAAA,EAAsF,MAAO,GAAAC,EAAAC,EAAA,EAAS,oCACtG8C,EAAAzC,EAAA0C,EAAAC,EAAArC,EAAAsC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACAC,EACA,MAAW,GAAA1D,EAAAW,EAAA,EAAW,cAAAgD,CAAA,EACtB,OAAAA,EAAA9C,KAAA,EACA,OAGA,OAFAP,EAAA,CAAsB,GAAAN,EAAA4D,EAAA,EAAQ,GAAGzB,GAAA,CACjCuB,EAAA,GACA,GAAAf,EAAAR,EAAA9B,IAAA,CAAAN,GAAA,MACA,EAKA,OAJAgD,EAA+B/C,EAAA4D,EAAQ,CAAAC,KAAA,QAAAvD,EAAAwD,MAAA,EAAAJ,CAAAA,EAAArD,IAAA,CAAAsD,EAAAlC,IAAA,GAAAiC,CAAA,KACvCT,EAAA,eACAA,EAAAc,EAAA5B,EAAAY,EAAA1C,IAAA,GAGA,0BACA,iDADA,gBAEA,qBACA,gDADA,gBAEA,+BACA,0DADA,gBAEA,4BACA,uDADA,gBAEA,oBACA,+CADA,iBAEA,2BACA,sDADA,iBAEA,2BACA,sDADA,aAGA,kBACA,EAEA,OADAO,EAAA,IAAwB,CACxB,GAAAoD,EAAAjB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAjD,EAAAkD,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,EAEA,OADAe,EAAA,IAAwB,CACxB,GAAAgB,EAAAnB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAX,EAAAY,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,EAEA,OADAgB,EAAA,IAAwB,CACxB,GAAAgB,EAAApB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAV,EAAAW,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,EAEA,OADAiB,EAAA,IAAwB,CACxB,GAAAgB,EAAArB,EAAAhD,GAAA,MACA,EAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAT,EAAAU,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEA,OADAkB,EAAA,IAAwB,CACxB,GAAAgB,EAAAtB,EAAAhD,GAAA,MACA,GAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAR,EAAAS,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEA,OADAmB,EAAA,IAAwB,CACxB,GAAAgB,EAAAvB,EAAAhD,GAAA,MACA,GAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAP,EAAAQ,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEA,OADAoB,EAAA,IAAwB,CACxB,GAAAgB,EAAAxB,EAAAhD,GAAA,MACA,GAEA,OADAiD,EAA2BhD,EAAA4D,EAAQ,CAAAC,KAAA,SAAgB7D,EAAA4D,EAAQ,CAAAC,KAAA,QAAAN,EAAAO,MAAA,EAAAH,EAAAlC,IAAA,OAA4CwC,KAAAhB,EAAAT,UAAAC,EAAAN,EAAA,EAAyD,EAChK,YACA,GAEAc,EAAAO,CADAA,EAAAT,EAAA1C,IAAA,EACAmE,IAAA,EAAAhB,EAAAiB,IAAA,EAAAxB,EACAD,EAA2B,GAAAhD,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAGJ,GAAA,CAAiBS,KAAA,GAAAhB,EAAAQ,QAAAD,EAAAC,OAAA,EAAAD,EAAAkB,OAAA,EAAAzB,EAAA0B,OAAA,SAAAnC,UAAAC,EAAAN,EAAA,GAChEwB,EAAA9C,KAAA,GACA,SAIA,OAHA4C,EAAAT,EAAAS,OAAA,EAAAT,EAAA0B,OAAA,EAAAzB,EACAD,EAAAS,OAAA,CAAAA,EACA,OAAAT,EAAA0B,OAAA,CACA,GAAA7B,QAAA+B,MAAA,CAAAC,OAAAC,MAAA,OAAArB,GAAAT,IAAA,CAEA,EACA,EAAC,EAiwCDgB,EAAA,SAAAjB,CAAA,CAAAhD,CAAA,EAA6F,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCAC7G,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,sBACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EAqBD8B,EAAA,SAAAnB,CAAA,CAAAhD,CAAA,EAA4F,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCAC5G,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,qBACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EACD+B,EAAA,SAAApB,CAAA,CAAAhD,CAAA,EAAsG,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCACtH,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,+BACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EACDgC,EAAA,SAAArB,CAAA,CAAAhD,CAAA,EAAmG,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCACnH,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,4BACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EACDiC,EAAA,SAAAtB,CAAA,CAAAhD,CAAA,EAA2F,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCAC3G,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,oBACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EACDkC,EAAA,SAAAvB,CAAA,CAAAhD,CAAA,EAAkG,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCAClH,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,2BACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EACDmC,EAAA,SAAAxB,CAAA,CAAAhD,CAAA,EAAkG,MAAO,GAAAC,EAAAC,EAAA,EAAS,gCAClH,IAAAmC,EAAAC,EACA,MAAW,GAAArC,EAAAW,EAAA,EAAW,cAAAL,CAAA,EAetB,OAdA8B,EAAA,CACA6B,KAAA,2BACAU,OAAA,SACAnC,UAAAC,EAAAM,GACA2B,QAAA5D,KAAAA,EACAqE,UAAArE,KAAAA,CACA,EAEAA,KAAAA,IAAAuB,CADAA,EAAAU,EAAA1C,IAAA,EACAqE,OAAA,EAAArC,OAAAA,EAAAqC,OAAA,EACAtC,CAAAA,EAAAsC,OAAA,CAAArC,EAAAqC,OAAA,EAEA5D,KAAAA,IAAAuB,EAAA8C,SAAA,EAAA9C,OAAAA,EAAA8C,SAAA,EACA/C,CAAAA,EAAA+C,SAAA,CAAA9C,EAAA8C,SAAA,EAEA,GAAA/C,EAAA,EAEA,EAAC,EA2ODgD,EAAA,SAAAtF,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAuF,UAAA,EAAAvF,OAAAA,EAAAuF,UAAA,GAAoEA,WAAAvF,EAAAuF,UAAA,GAA8BvF,KAAAgB,IAAAhB,EAAAwF,MAAA,EAAAxF,OAAAA,EAAAwF,MAAA,GAA8DA,OAAAxF,EAAAwF,MAAA,GAAsBxF,KAAAgB,IAAAhB,EAAAyF,IAAA,EAAAzF,OAAAA,EAAAyF,IAAA,GAA0DA,KAAAzF,EAAAyF,IAAA,GAAkBzF,KAAAgB,IAAAhB,EAAA0F,KAAA,EAAA1F,OAAAA,EAAA0F,KAAA,GAA4DA,MAAA1F,EAAA0F,KAAA,GAAoB1F,KAAAgB,IAAAhB,EAAA2F,YAAA,EAAA3F,OAAAA,EAAA2F,YAAA,GAA0EA,aAAA3F,EAAA2F,YAAA,GAAkC3F,KAAAgB,IAAAhB,EAAA4F,QAAA,EAAA5F,OAAAA,EAAA4F,QAAA,GAAkEA,SAAA5F,EAAA4F,QAAA,GAA0B5F,KAAAgB,IAAAhB,EAAA6F,eAAA,EAC/mB7F,OAAAA,EAAA6F,eAAA,GAA4CA,gBAAA7F,EAAA6F,eAAA,GAAwC7F,KAAAgB,IAAAhB,EAAA8F,QAAA,EAAA9F,OAAAA,EAAA8F,QAAA,GAAkEA,SAAA9F,EAAA8F,QAAA,EACtJ,EACAC,EAAA,SAAA/F,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAgG,IAAA,EAAAhG,OAAAA,EAAAgG,IAAA,GAAwDA,KAAAhG,EAAAgG,IAAA,GAAkBhG,KAAAgB,IAAAhB,EAAAiG,OAAA,EAAAjG,OAAAA,EAAAiG,OAAA,GAAgEA,QAAAjG,EAAAiG,OAAA,GAAwBjG,KAAAgB,IAAAhB,EAAAkG,QAAA,EAAAlG,OAAAA,EAAAkG,QAAA,GAAkEA,SAAAlG,EAAAkG,QAAA,GAA0BlG,KAAAgB,IAAAhB,EAAAmG,SAAA,EAAAnG,OAAAA,EAAAmG,SAAA,GAAoEA,UAAAnG,EAAAmG,SAAA,GAA4BnG,KAAAgB,IAAAhB,EAAAoG,UAAA,EAAApG,OAAAA,EAAAoG,UAAA,GAAsEA,WAAApG,EAAAoG,UAAA,GAA8BpG,KAAAgB,IAAAhB,EAAAqG,MAAA,EAAArG,OAAAA,EAAAqG,MAAA,GAA8DA,OAAArG,EAAAqG,MAAA,EACnkB,EACAlE,EAAA,SAAAnC,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAsG,OAAA,EAAAtG,OAAAA,EAAAsG,OAAA,GAA8DA,QAAAtG,EAAAsG,OAAA,GAAwBtG,KAAAgB,IAAAhB,EAAAuG,UAAA,EACtMvG,OAAAA,EAAAuG,UAAA,GACAA,WAAAC,EAAAxG,EAAAuG,UAAA,CAAAtG,EACA,GAAKD,KAAAgB,IAAAhB,EAAAyG,WAAA,EAAAzG,OAAAA,EAAAyG,WAAA,GAAwEA,YAAAzG,EAAAyG,WAAA,GAAgCzG,KAAAgB,IAAAhB,EAAA0G,WAAA,EAC7G1G,OAAAA,EAAA0G,WAAA,GACAA,YAAApB,EAAAtF,EAAA0G,WAAA,CAAAzG,EACA,GAAKD,KAAAgB,IAAAhB,EAAA2G,aAAA,EAAA3G,OAAAA,EAAA2G,aAAA,GAA4EA,cAAA3G,EAAA2G,aAAA,GAAoC3G,KAAAgB,IAAAhB,EAAA4G,cAAA,EACrH5G,OAAAA,EAAA4G,cAAA,GAA2CA,eAAA5G,EAAA4G,cAAA,GAAsC5G,KAAAgB,IAAAhB,EAAA6G,QAAA,EACjF7G,OAAAA,EAAA6G,QAAA,GAAqCA,SAAAd,EAAA/F,EAAA6G,QAAA,CAAA5G,EAAA,GAA2ED,KAAAgB,IAAAhB,EAAA8G,OAAA,EAChH9G,OAAAA,EAAA8G,OAAA,GAAoCA,QAAAC,EAAA/G,EAAA8G,OAAA,CAAA7G,EAAA,GAAsED,KAAAgB,IAAAhB,EAAAgH,MAAA,EAAAhH,OAAAA,EAAAgH,MAAA,GAA8DA,OAAAhH,EAAAgH,MAAA,GAAsBhH,KAAAgB,IAAAhB,EAAAiH,SAAA,EAAAjH,OAAAA,EAAAiH,SAAA,GAAoEA,UAAAjH,EAAAiH,SAAA,GAA4BjH,KAAAgB,IAAAhB,EAAAkH,IAAA,EAC9RlH,OAAAA,EAAAkH,IAAA,GAAiCA,KAAAC,EAAAnH,EAAAkH,IAAA,CAAAjH,EAAA,EACjC,EAQAkH,EAAA,SAAAnH,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAoH,cAAA,EAC/BpH,OAAAA,EAAAoH,cAAA,GACAA,eAAAZ,EAAAxG,EAAAoH,cAAA,CAAAnH,EACA,GAAKD,KAAAgB,IAAAhB,EAAAqH,MAAA,EAAArH,OAAAA,EAAAqH,MAAA,GAA8DA,OAAArH,EAAAqH,MAAA,EACnE,EAgCA9F,EAAA,SAAAvB,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAsH,SAAA,EACtBtH,OAAAA,EAAAsH,SAAA,GAAsCA,UAAAC,EAAAvH,EAAAsH,SAAA,CAAArH,EAAA,EACtC,EAiKA8G,EAAA,SAAA/G,CAAA,CAAAC,CAAA,EACA,OAAA8E,OAAAyC,OAAA,CAAAxH,GAAAyH,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CAAAC,EAAAnH,CAAA,EACnD,EAAK,GACL,EA6DA6G,EAAA,SAAAvH,CAAA,CAAAC,CAAA,EACA,OAAA8E,OAAAyC,OAAA,CAAAxH,GAAAyH,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CArPxC,GAAA1H,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAA8H,QAAA,EAC/B9H,OAAAA,EAAA8H,QAAA,GAAqCA,SAAAC,EAAA/H,EAAA8H,QAAA,CAoPc7H,EApPd,GAAyED,KAAAgB,IAAAhB,EAAAgI,MAAA,EAC9GhI,OAAAA,EAAAgI,MAAA,GAAmCA,OAmOnCjD,OAAAyC,OAAA,CAnOmCxH,EAAAgI,MAAA,EAmOnCP,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CArQxC,GAAA1H,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAiI,cAAA,EACvGjI,OAAAA,EAAAiI,cAAA,GAA2CA,eAAAjI,EAAAiI,cAAA,GAAsCjI,KAAAgB,IAAAhB,EAAAkI,QAAA,EAAAlI,OAAAA,EAAAkI,QAAA,GAAkEA,SAAAlI,EAAAkI,QAAA,GAA0BlI,KAAAgB,IAAAhB,EAAAmI,cAAA,EAC7KnI,OAAAA,EAAAmI,cAAA,GAA2CA,eAAAnI,EAAAmI,cAAA,GAAsCnI,KAAAgB,IAAAhB,EAAAuG,UAAA,EACjFvG,OAAAA,EAAAuG,UAAA,GAAuCA,WA0MvCxB,OAAAyC,OAAA,CA1MuCxH,EAAAuG,UAAA,EA0MvCkB,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CAAAC,EAAAnH,CAAA,EACnD,EAAK,GAjNkC,GAA4EV,KAAAgB,IAAAhB,EAAAoI,gBAAA,EACnHpI,OAAAA,EAAAoI,gBAAA,GAA6CA,iBAAApI,EAAAoI,gBAAA,GAA0CpI,KAAAgB,IAAAhB,EAAAqI,SAAA,EAAArI,OAAAA,EAAAqI,SAAA,GAAoEA,UAAArI,EAAAqI,SAAA,GAA4BrI,KAAAgB,IAAAhB,EAAA8G,OAAA,EACvL9G,OAAAA,EAAA8G,OAAA,GAAoCA,QAAAC,EAAA/G,EAAA8G,OAAA,CA0Qe7G,EA1Qf,GAAsED,KAAAgB,IAAAhB,EAAAsI,OAAA,EAAAtI,OAAAA,EAAAsI,OAAA,GAAgEA,QAAAtI,EAAAsI,OAAA,GAAwBtI,KAAAgB,IAAAhB,EAAAuI,OAAA,EAClMvI,OAAAA,EAAAuI,OAAA,GAAoCA,QAAAC,EAAAxI,EAAAuI,OAAA,CAyQetI,EAzQf,GAAgED,KAAAgB,IAAAhB,EAAAyI,SAAA,EAAAzI,OAAAA,EAAAyI,SAAA,GAAoEA,UAAAzI,EAAAyI,SAAA,GA+PrH/H,CAAA,EACnD,EAAK,GA1O8B,GAmPgBA,CAAA,EACnD,EAAK,GACL,EACA8F,EAAA,SAAAxG,CAAA,CAAAC,CAAA,EACA,OAAA8E,OAAAyC,OAAA,CAAAxH,GAAAyH,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CAhLnD5H,EACA0I,MAAA,UAAAC,CAAA,EAA+B,OAAAA,MAAAA,CAAA,GAC/BC,GAAA,UAAAC,CAAA,SACA,OAAAA,EACA,KAEAA,CACA,GAyKmDnI,CAAA,EACnD,EAAK,GACL,EAsEAqH,EAAA,SAAA/H,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAAsG,OAAA,EAAAtG,OAAAA,EAAAsG,OAAA,GAA8DA,QAAAtG,EAAAsG,OAAA,GAAwBtG,KAAAgB,IAAAhB,EAAAuG,UAAA,EACtMvG,OAAAA,EAAAuG,UAAA,GACAA,WAAAC,EAAAxG,EAAAuG,UAAA,CAAAtG,EACA,GAAKD,KAAAgB,IAAAhB,EAAAyG,WAAA,EAAAzG,OAAAA,EAAAyG,WAAA,GAAwEA,YAAAzG,EAAAyG,WAAA,GAAgCzG,KAAAgB,IAAAhB,EAAA0G,WAAA,EAC7G1G,OAAAA,EAAA0G,WAAA,GACAA,YAAApB,EAAAtF,EAAA0G,WAAA,CAAAzG,EACA,GAAKD,KAAAgB,IAAAhB,EAAA2G,aAAA,EAAA3G,OAAAA,EAAA2G,aAAA,GAA4EA,cAAA3G,EAAA2G,aAAA,GAAoC3G,KAAAgB,IAAAhB,EAAA4G,cAAA,EACrH5G,OAAAA,EAAA4G,cAAA,GAA2CA,eAAA5G,EAAA4G,cAAA,GAAsC5G,KAAAgB,IAAAhB,EAAA6G,QAAA,EACjF7G,OAAAA,EAAA6G,QAAA,GAAqCA,SAAAd,EAAA/F,EAAA6G,QAAA,CAAA5G,EAAA,GAA2ED,KAAAgB,IAAAhB,EAAA8G,OAAA,EAChH9G,OAAAA,EAAA8G,OAAA,GAAoCA,QAAAC,EAAA/G,EAAA8G,OAAA,CAAA7G,EAAA,GAAsED,KAAAgB,IAAAhB,EAAAgH,MAAA,EAAAhH,OAAAA,EAAAgH,MAAA,GAA8DA,OAAAhH,EAAAgH,MAAA,GAAsBhH,KAAAgB,IAAAhB,EAAAiH,SAAA,EAAAjH,OAAAA,EAAAiH,SAAA,GAAoEA,UAAAjH,EAAAiH,SAAA,GAA4BjH,KAAAgB,IAAAhB,EAAAkH,IAAA,EAC9RlH,OAAAA,EAAAkH,IAAA,GAAiCA,KAAAC,EAAAnH,EAAAkH,IAAA,CAAAjH,EAAA,EACjC,EA2GAuI,EAAA,SAAAxI,CAAA,CAAAC,CAAA,EACA,MAAW,GAAAC,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG9D,KAAAgB,IAAAhB,EAAA8I,QAAA,EAAA9I,OAAAA,EAAA8I,QAAA,GAAgEA,SAAA9I,EAAA8I,QAAA,GAA0B9I,KAAAgB,IAAAhB,EAAA+I,EAAA,EAAA/I,OAAAA,EAAA+I,EAAA,GAAsDA,GAAA/I,EAAA+I,EAAA,GAAc/I,KAAAgB,IAAAhB,EAAAgJ,cAAA,EAC/MhJ,OAAAA,EAAAgJ,cAAA,GAA2CA,eAAAhJ,EAAAgJ,cAAA,GAAsChJ,KAAAgB,IAAAhB,EAAAiJ,aAAA,EAAAjJ,OAAAA,EAAAiJ,aAAA,GAA4EA,cAAAjJ,EAAAiJ,aAAA,EAC7J,EAmzBAnG,EAAA,SAAAT,CAAA,CAAApC,CAAA,EACA,OACAiJ,QAAA7G,KAAArB,IAAAqB,EAAA6G,OAAA,EAAA7G,OAAAA,EAAA6G,OAAA,CACAC,EAAA9G,EAAA6G,OAAA,CAAAjJ,GACAe,KAAAA,CACA,CACA,EA0IAoI,EAAA,SAAA/G,CAAA,CAAApC,CAAA,MAzPAoC,EA0PA,OACAgH,qBAAAhH,KAAArB,IAAAqB,EAAAgH,oBAAA,EAAAhH,OAAAA,EAAAgH,oBAAA,CA1PA,CACAzE,QAAAvC,KAAArB,IAAAqB,CAFAA,EA4PAA,EAAAgH,oBAAA,EA1PAzE,OAAA,EAAAvC,OAAAA,EAAAuC,OAAA,CAAAvC,EAAAuC,OAAA,CAAA5D,KAAAA,EACAsI,WAAAjH,KAAArB,IAAAqB,EAAAiH,UAAA,EAAAjH,OAAAA,EAAAiH,UAAA,CAAAjH,EAAAiH,UAAA,CAAAtI,KAAAA,CACA,EAyPAA,KAAAA,EACAuI,mBAAAlH,KAAArB,IAAAqB,EAAAkH,kBAAA,EAAAlH,OAAAA,EAAAkH,kBAAA,CACAC,EAAAnH,EAAAkH,kBAAA,CAAAtJ,GACAe,KAAAA,CACA,CACA,EAkaAwI,EAAA,SAAAnH,CAAA,CAAApC,CAAA,EACA,OAAA8E,OAAAyC,OAAA,CAAAnF,GAAAoF,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CAvkBnD,CACAhD,QAAAvC,KAAArB,IAAAqB,EAAAuC,OAAA,EAAAvC,OAAAA,EAAAuC,OAAA,CAAAvC,EAAAuC,OAAA,CAAA5D,KAAAA,EACAsI,WAAAjH,KAAArB,IAAAqB,EAAAiH,UAAA,EAAAjH,OAAAA,EAAAiH,UAAA,CAAAjH,EAAAiH,UAAA,CAAAtI,KAAAA,CACA,EAokBmDN,CAAA,EACnD,EAAK,GACL,EACAyI,EAAA,SAAA9G,CAAA,CAAApC,CAAA,EACA,OAAA8E,OAAAyC,OAAA,CAAAnF,GAAAoF,MAAA,UAAAC,CAAA,CAAAlH,CAAA,EAEA,IADAE,EACAI,EAAiB,GAAAZ,EAAAyH,EAAA,EAAMnH,EAAA,GAAAoH,EAAA9G,CAAA,IAAA+G,EAAA/G,CAAA,WACvB,OAAA+G,EACAH,EAEe,GAAAxH,EAAA4D,EAAA,EAAS,GAAA5D,EAAA4D,EAAA,EAAQ,GAAG4D,GAAAhH,CAAAA,CAAAA,EAAA,GAAgB,CAAAkH,EAAA,CAAAwB,EAAAvB,EAAA5H,GAAAS,CAAA,EACnD,EAAK,GACL,EA2DA0E,EAAA,SAAA/C,CAAA,CAAApC,CAAA,EACA,OACA2E,QAAAvC,KAAArB,IAAAqB,EAAAuC,OAAA,EAAAvC,OAAAA,EAAAuC,OAAA,CAAAvC,EAAAuC,OAAA,CAAA5D,KAAAA,EACAqE,UAAAhD,KAAArB,IAAAqB,EAAAgD,SAAA,EAAAhD,OAAAA,EAAAgD,SAAA,CAAAhD,EAAAgD,SAAA,CAAArE,KAAAA,CACA,CACA,EA+mBA2B,EAAA,SAAAN,CAAA,EACA,IAAA7B,EACA,OACAiJ,eAAApH,EAAAG,UAAA,CACAkH,UAAA,OAAAlJ,CAAAA,EAAA6B,EAAAjC,OAAA,uBAAAI,KAAA,IAAAA,EAAAA,EAAA6B,EAAAjC,OAAA,sBACAuJ,kBAAAtH,EAAAjC,OAAA,eACAwJ,KAAAvH,EAAAjC,OAAA,gBAEA,EAUAyJ,EAAA,SAAAC,CAAA,CAAA7J,CAAA,MARA6J,EASA,MAAAC,CAPA,CADA,UADAD,EASAA,IARiCA,CAAAA,EAAA,IAAAE,UAAA,EACjCF,aAAAE,YACAjH,QAAAC,OAAA,CAAA8G,GAEA7J,EAAAgK,eAAA,CAAAH,IAAA/G,QAAAC,OAAA,KAAAgH,WADA,EAKAE,IAAA,UAAA3J,CAAA,EAAmE,OAAAN,EAAAkK,WAAA,CAAA5J,EAAA,EACnE,EAQAsC,EAAA,SAAAiH,CAAA,CAAA7J,CAAA,EACA,OAAA4J,EAAAC,EAAA7J,GAAAiK,IAAA,UAAAE,CAAA,SACA,EAAAlJ,MAAA,CACAM,KAAA6I,KAAA,CAAAD,GAEA,EACA,EACA,EAIAnG,EAAA,SAAA5B,CAAA,CAAAE,CAAA,EAEA,IAAA+H,EAAA,SAAAC,CAAA,EACA,IAAAC,EAAAD,EAOA,OANAC,EAAAC,OAAA,UACAD,CAAAA,EAAAA,EAAAE,KAAA,UAEAF,EAAAC,OAAA,UACAD,CAAAA,EAAAA,EAAAE,KAAA,UAEAF,CACA,EACAG,EAX2C5F,OAAA6F,IAAA,CAW3CvI,EAAAjC,OAAA,EAX2CyK,IAAA,UAAAC,CAAA,EAA+C,MAAAA,qBAAAA,EAAAC,WAAA,YAY1F,KAAA/J,IAAA2J,EACAL,EAAAjI,EAAAjC,OAAA,CAAAuK,EAAA,EAEApI,KAAAvB,IAAAuB,EAAAmC,IAAA,CACA4F,EAAA/H,EAAAmC,IAAA,EAEAnC,KAAAvB,IAAAuB,EAAA,OACA+H,EAAA/H,EAAA,QAEA,EACA","sources":["webpack://_N_E/./node_modules/@aws-sdk/client-pinpoint/dist/es/protocols/Aws_restJson1.js"],"sourcesContent":["import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { extendedEncodeURIComponent as __extendedEncodeURIComponent, } from \"@aws-sdk/smithy-client\";\nexport var serializeAws_restJson1CreateAppCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps\";\n                if (input.CreateApplicationRequest !== undefined) {\n                    body = serializeAws_restJson1CreateApplicationRequest(input.CreateApplicationRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateCampaignCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.WriteCampaignRequest !== undefined) {\n                    body = serializeAws_restJson1WriteCampaignRequest(input.WriteCampaignRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateEmailTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/email\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                if (input.EmailTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1EmailTemplateRequest(input.EmailTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateExportJobCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/jobs/export\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.ExportJobRequest !== undefined) {\n                    body = serializeAws_restJson1ExportJobRequest(input.ExportJobRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateImportJobCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/jobs/import\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.ImportJobRequest !== undefined) {\n                    body = serializeAws_restJson1ImportJobRequest(input.ImportJobRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateJourneyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.WriteJourneyRequest !== undefined) {\n                    body = serializeAws_restJson1WriteJourneyRequest(input.WriteJourneyRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreatePushTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/push\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                if (input.PushNotificationTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1PushNotificationTemplateRequest(input.PushNotificationTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateRecommenderConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/recommenders\";\n                if (input.CreateRecommenderConfiguration !== undefined) {\n                    body = serializeAws_restJson1CreateRecommenderConfigurationShape(input.CreateRecommenderConfiguration, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateSegmentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.WriteSegmentRequest !== undefined) {\n                    body = serializeAws_restJson1WriteSegmentRequest(input.WriteSegmentRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateSmsTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/sms\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                if (input.SMSTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1SMSTemplateRequest(input.SMSTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1CreateVoiceTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/voice\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                if (input.VoiceTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1VoiceTemplateRequest(input.VoiceTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteAdmChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/adm\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteApnsChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteApnsSandboxChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_sandbox\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteApnsVoipChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_voip\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteApnsVoipSandboxChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_voip_sandbox\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteAppCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteBaiduChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/baidu\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteCampaignCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteEmailChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/email\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteEmailTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/email\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteEndpointCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/endpoints/{EndpointId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.EndpointId !== undefined) {\n                    labelValue = input.EndpointId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: EndpointId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{EndpointId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: EndpointId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteEventStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/eventstream\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteGcmChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/gcm\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteJourneyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeletePushTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/push\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteRecommenderConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/recommenders/{RecommenderId}\";\n                if (input.RecommenderId !== undefined) {\n                    labelValue = input.RecommenderId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: RecommenderId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{RecommenderId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: RecommenderId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteSegmentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteSmsChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/sms\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteSmsTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/sms\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteUserEndpointsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/users/{UserId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.UserId !== undefined) {\n                    labelValue = input.UserId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: UserId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{UserId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: UserId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteVoiceChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/voice\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1DeleteVoiceTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/voice\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetAdmChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/adm\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetApnsChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetApnsSandboxChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_sandbox\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetApnsVoipChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_voip\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetApnsVoipSandboxChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_voip_sandbox\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetAppCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetApplicationDateRangeKpiCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/kpis/daterange/{KpiName}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.KpiName !== undefined) {\n                    labelValue = input.KpiName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: KpiName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{KpiName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: KpiName.\");\n                }\n                query = __assign(__assign(__assign(__assign({}, (input.EndTime !== undefined && { \"end-time\": (input.EndTime.toISOString().split(\".\")[0] + \"Z\").toString() })), (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.StartTime !== undefined && {\n                    \"start-time\": (input.StartTime.toISOString().split(\".\")[0] + \"Z\").toString(),\n                }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetApplicationSettingsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/settings\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetAppsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps\";\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetBaiduChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/baidu\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetCampaignCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetCampaignActivitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}/activities\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetCampaignDateRangeKpiCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}/kpis/daterange/{KpiName}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                if (input.KpiName !== undefined) {\n                    labelValue = input.KpiName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: KpiName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{KpiName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: KpiName.\");\n                }\n                query = __assign(__assign(__assign(__assign({}, (input.EndTime !== undefined && { \"end-time\": (input.EndTime.toISOString().split(\".\")[0] + \"Z\").toString() })), (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.StartTime !== undefined && {\n                    \"start-time\": (input.StartTime.toISOString().split(\".\")[0] + \"Z\").toString(),\n                }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetCampaignsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetCampaignVersionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}/versions/{Version}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                if (input.Version !== undefined) {\n                    labelValue = input.Version;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: Version.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{Version}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: Version.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetCampaignVersionsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}/versions\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetChannelsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetEmailChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/email\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetEmailTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/email\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetEndpointCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/endpoints/{EndpointId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.EndpointId !== undefined) {\n                    labelValue = input.EndpointId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: EndpointId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{EndpointId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: EndpointId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetEventStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/eventstream\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetExportJobCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/jobs/export/{JobId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JobId !== undefined) {\n                    labelValue = input.JobId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JobId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JobId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JobId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetExportJobsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/jobs/export\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetGcmChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/gcm\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetImportJobCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/jobs/import/{JobId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JobId !== undefined) {\n                    labelValue = input.JobId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JobId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JobId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JobId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetImportJobsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/jobs/import\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetJourneyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetJourneyDateRangeKpiCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}/kpis/daterange/{KpiName}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                if (input.KpiName !== undefined) {\n                    labelValue = input.KpiName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: KpiName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{KpiName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: KpiName.\");\n                }\n                query = __assign(__assign(__assign(__assign({}, (input.EndTime !== undefined && { \"end-time\": (input.EndTime.toISOString().split(\".\")[0] + \"Z\").toString() })), (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.StartTime !== undefined && {\n                    \"start-time\": (input.StartTime.toISOString().split(\".\")[0] + \"Z\").toString(),\n                }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetJourneyExecutionActivityMetricsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}/activities/{JourneyActivityId}/execution-metrics\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyActivityId !== undefined) {\n                    labelValue = input.JourneyActivityId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyActivityId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyActivityId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyActivityId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                query = __assign(__assign({}, (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetJourneyExecutionMetricsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}/execution-metrics\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                query = __assign(__assign({}, (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetPushTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/push\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetRecommenderConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/recommenders/{RecommenderId}\";\n                if (input.RecommenderId !== undefined) {\n                    labelValue = input.RecommenderId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: RecommenderId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{RecommenderId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: RecommenderId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetRecommenderConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/recommenders\";\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSegmentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSegmentExportJobsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}/jobs/export\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSegmentImportJobsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}/jobs/import\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSegmentsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSegmentVersionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}/versions/{Version}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                if (input.Version !== undefined) {\n                    labelValue = input.Version;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: Version.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{Version}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: Version.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSegmentVersionsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}/versions\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSmsChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/sms\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetSmsTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/sms\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetUserEndpointsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/users/{UserId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.UserId !== undefined) {\n                    labelValue = input.UserId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: UserId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{UserId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: UserId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetVoiceChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/voice\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1GetVoiceTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/voice\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign({}, (input.Version !== undefined && { version: input.Version }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1ListJourneysCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                query = __assign(__assign({}, (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Token !== undefined && { token: input.Token }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1ListTagsForResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/tags/{ResourceArn}\";\n                if (input.ResourceArn !== undefined) {\n                    labelValue = input.ResourceArn;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ResourceArn.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ResourceArn}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ResourceArn.\");\n                }\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1ListTemplatesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates\";\n                query = __assign(__assign(__assign(__assign({}, (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.TemplateType !== undefined && { \"template-type\": input.TemplateType }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1ListTemplateVersionsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/templates/{TemplateName}/{TemplateType}/versions\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                if (input.TemplateType !== undefined) {\n                    labelValue = input.TemplateType;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateType.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateType}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateType.\");\n                }\n                query = __assign(__assign({}, (input.NextToken !== undefined && { \"next-token\": input.NextToken })), (input.PageSize !== undefined && { \"page-size\": input.PageSize }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"GET\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1PhoneNumberValidateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/phone/number/validate\";\n                if (input.NumberValidateRequest !== undefined) {\n                    body = serializeAws_restJson1NumberValidateRequest(input.NumberValidateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1PutEventsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/events\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.EventsRequest !== undefined) {\n                    body = serializeAws_restJson1EventsRequest(input.EventsRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1PutEventStreamCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/eventstream\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.WriteEventStream !== undefined) {\n                    body = serializeAws_restJson1WriteEventStream(input.WriteEventStream, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1RemoveAttributesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/attributes/{AttributeType}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.AttributeType !== undefined) {\n                    labelValue = input.AttributeType;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: AttributeType.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{AttributeType}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: AttributeType.\");\n                }\n                if (input.UpdateAttributesRequest !== undefined) {\n                    body = serializeAws_restJson1UpdateAttributesRequest(input.UpdateAttributesRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1SendMessagesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/messages\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.MessageRequest !== undefined) {\n                    body = serializeAws_restJson1MessageRequest(input.MessageRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1SendUsersMessagesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/users-messages\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SendUsersMessageRequest !== undefined) {\n                    body = serializeAws_restJson1SendUsersMessageRequest(input.SendUsersMessageRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1TagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/tags/{ResourceArn}\";\n                if (input.ResourceArn !== undefined) {\n                    labelValue = input.ResourceArn;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ResourceArn.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ResourceArn}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ResourceArn.\");\n                }\n                if (input.TagsModel !== undefined) {\n                    body = serializeAws_restJson1TagsModel(input.TagsModel, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"POST\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UntagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {};\n                resolvedPath = \"/v1/tags/{ResourceArn}\";\n                if (input.ResourceArn !== undefined) {\n                    labelValue = input.ResourceArn;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ResourceArn.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ResourceArn}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ResourceArn.\");\n                }\n                query = __assign({}, (input.TagKeys !== undefined && { tagKeys: (input.TagKeys || []).map(function (_entry) { return _entry; }) }));\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"DELETE\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateAdmChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/adm\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.ADMChannelRequest !== undefined) {\n                    body = serializeAws_restJson1ADMChannelRequest(input.ADMChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateApnsChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.APNSChannelRequest !== undefined) {\n                    body = serializeAws_restJson1APNSChannelRequest(input.APNSChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateApnsSandboxChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_sandbox\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.APNSSandboxChannelRequest !== undefined) {\n                    body = serializeAws_restJson1APNSSandboxChannelRequest(input.APNSSandboxChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateApnsVoipChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_voip\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.APNSVoipChannelRequest !== undefined) {\n                    body = serializeAws_restJson1APNSVoipChannelRequest(input.APNSVoipChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateApnsVoipSandboxChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/apns_voip_sandbox\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.APNSVoipSandboxChannelRequest !== undefined) {\n                    body = serializeAws_restJson1APNSVoipSandboxChannelRequest(input.APNSVoipSandboxChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateApplicationSettingsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/settings\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.WriteApplicationSettingsRequest !== undefined) {\n                    body = serializeAws_restJson1WriteApplicationSettingsRequest(input.WriteApplicationSettingsRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateBaiduChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/baidu\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.BaiduChannelRequest !== undefined) {\n                    body = serializeAws_restJson1BaiduChannelRequest(input.BaiduChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateCampaignCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/campaigns/{CampaignId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.CampaignId !== undefined) {\n                    labelValue = input.CampaignId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: CampaignId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{CampaignId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: CampaignId.\");\n                }\n                if (input.WriteCampaignRequest !== undefined) {\n                    body = serializeAws_restJson1WriteCampaignRequest(input.WriteCampaignRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateEmailChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/email\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.EmailChannelRequest !== undefined) {\n                    body = serializeAws_restJson1EmailChannelRequest(input.EmailChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateEmailTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/email\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign(__assign({}, (input.CreateNewVersion !== undefined && { \"create-new-version\": input.CreateNewVersion.toString() })), (input.Version !== undefined && { version: input.Version }));\n                if (input.EmailTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1EmailTemplateRequest(input.EmailTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateEndpointCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/endpoints/{EndpointId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.EndpointId !== undefined) {\n                    labelValue = input.EndpointId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: EndpointId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{EndpointId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: EndpointId.\");\n                }\n                if (input.EndpointRequest !== undefined) {\n                    body = serializeAws_restJson1EndpointRequest(input.EndpointRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateEndpointsBatchCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/endpoints\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.EndpointBatchRequest !== undefined) {\n                    body = serializeAws_restJson1EndpointBatchRequest(input.EndpointBatchRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateGcmChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/gcm\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.GCMChannelRequest !== undefined) {\n                    body = serializeAws_restJson1GCMChannelRequest(input.GCMChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateJourneyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                if (input.WriteJourneyRequest !== undefined) {\n                    body = serializeAws_restJson1WriteJourneyRequest(input.WriteJourneyRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateJourneyStateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/journeys/{JourneyId}/state\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.JourneyId !== undefined) {\n                    labelValue = input.JourneyId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: JourneyId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{JourneyId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: JourneyId.\");\n                }\n                if (input.JourneyStateRequest !== undefined) {\n                    body = serializeAws_restJson1JourneyStateRequest(input.JourneyStateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdatePushTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/push\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign(__assign({}, (input.CreateNewVersion !== undefined && { \"create-new-version\": input.CreateNewVersion.toString() })), (input.Version !== undefined && { version: input.Version }));\n                if (input.PushNotificationTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1PushNotificationTemplateRequest(input.PushNotificationTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateRecommenderConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/recommenders/{RecommenderId}\";\n                if (input.RecommenderId !== undefined) {\n                    labelValue = input.RecommenderId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: RecommenderId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{RecommenderId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: RecommenderId.\");\n                }\n                if (input.UpdateRecommenderConfiguration !== undefined) {\n                    body = serializeAws_restJson1UpdateRecommenderConfigurationShape(input.UpdateRecommenderConfiguration, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateSegmentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/segments/{SegmentId}\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SegmentId !== undefined) {\n                    labelValue = input.SegmentId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: SegmentId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{SegmentId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: SegmentId.\");\n                }\n                if (input.WriteSegmentRequest !== undefined) {\n                    body = serializeAws_restJson1WriteSegmentRequest(input.WriteSegmentRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateSmsChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/sms\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.SMSChannelRequest !== undefined) {\n                    body = serializeAws_restJson1SMSChannelRequest(input.SMSChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateSmsTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/sms\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign(__assign({}, (input.CreateNewVersion !== undefined && { \"create-new-version\": input.CreateNewVersion.toString() })), (input.Version !== undefined && { version: input.Version }));\n                if (input.SMSTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1SMSTemplateRequest(input.SMSTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateTemplateActiveVersionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/{TemplateType}/active-version\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                if (input.TemplateType !== undefined) {\n                    labelValue = input.TemplateType;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateType.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateType}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateType.\");\n                }\n                if (input.TemplateActiveVersionRequest !== undefined) {\n                    body = serializeAws_restJson1TemplateActiveVersionRequest(input.TemplateActiveVersionRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateVoiceChannelCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/apps/{ApplicationId}/channels/voice\";\n                if (input.ApplicationId !== undefined) {\n                    labelValue = input.ApplicationId;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: ApplicationId.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{ApplicationId}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: ApplicationId.\");\n                }\n                if (input.VoiceChannelRequest !== undefined) {\n                    body = serializeAws_restJson1VoiceChannelRequest(input.VoiceChannelRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var serializeAws_restJson1UpdateVoiceTemplateCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                headers = {\n                    \"content-type\": \"application/json\",\n                };\n                resolvedPath = \"/v1/templates/{TemplateName}/voice\";\n                if (input.TemplateName !== undefined) {\n                    labelValue = input.TemplateName;\n                    if (labelValue.length <= 0) {\n                        throw new Error(\"Empty value provided for input HTTP label: TemplateName.\");\n                    }\n                    resolvedPath = resolvedPath.replace(\"{TemplateName}\", __extendedEncodeURIComponent(labelValue));\n                }\n                else {\n                    throw new Error(\"No value provided for input HTTP label: TemplateName.\");\n                }\n                query = __assign(__assign({}, (input.CreateNewVersion !== undefined && { \"create-new-version\": input.CreateNewVersion.toString() })), (input.Version !== undefined && { version: input.Version }));\n                if (input.VoiceTemplateRequest !== undefined) {\n                    body = serializeAws_restJson1VoiceTemplateRequest(input.VoiceTemplateRequest, context);\n                }\n                if (body === undefined) {\n                    body = {};\n                }\n                body = JSON.stringify(body);\n                return [4 /*yield*/, context.endpoint()];\n            case 1:\n                _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n                return [2 /*return*/, new __HttpRequest({\n                        protocol: protocol,\n                        hostname: hostname,\n                        port: port,\n                        method: \"PUT\",\n                        headers: headers,\n                        path: resolvedPath,\n                        query: query,\n                        body: body,\n                    })];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateAppCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateAppCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationResponse = deserializeAws_restJson1ApplicationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateAppCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateCampaignCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateCampaignCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignResponse = deserializeAws_restJson1CampaignResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateCampaignCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateEmailTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateEmailTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CreateTemplateMessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CreateTemplateMessageBody = deserializeAws_restJson1CreateTemplateMessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateEmailTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n    var _h;\n    return __generator(this, function (_j) {\n        switch (_j.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _h = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 10];\n                }\n                return [3 /*break*/, 12];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 12:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _j.label = 13;\n            case 13:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateExportJobCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateExportJobCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ExportJobResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ExportJobResponse = deserializeAws_restJson1ExportJobResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateExportJobCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateImportJobCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateImportJobCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ImportJobResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ImportJobResponse = deserializeAws_restJson1ImportJobResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateImportJobCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateJourneyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateJourneyCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyResponse = deserializeAws_restJson1JourneyResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateJourneyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreatePushTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreatePushTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CreateTemplateMessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CreateTemplateMessageBody = deserializeAws_restJson1CreateTemplateMessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreatePushTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n    var _h;\n    return __generator(this, function (_j) {\n        switch (_j.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _h = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 10];\n                }\n                return [3 /*break*/, 12];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 12:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _j.label = 13;\n            case 13:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateRecommenderConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateRecommenderConfigurationCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    RecommenderConfigurationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.RecommenderConfigurationResponse = deserializeAws_restJson1RecommenderConfigurationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateRecommenderConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateSegmentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateSegmentCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentResponse = deserializeAws_restJson1SegmentResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateSegmentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateSmsTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateSmsTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CreateTemplateMessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CreateTemplateMessageBody = deserializeAws_restJson1CreateTemplateMessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateSmsTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n    var _h;\n    return __generator(this, function (_j) {\n        switch (_j.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _h = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 10];\n                }\n                return [3 /*break*/, 12];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 12:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _j.label = 13;\n            case 13:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1CreateVoiceTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 201 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1CreateVoiceTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CreateTemplateMessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CreateTemplateMessageBody = deserializeAws_restJson1CreateTemplateMessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1CreateVoiceTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n    var _h;\n    return __generator(this, function (_j) {\n        switch (_j.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _h = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 10];\n                }\n                return [3 /*break*/, 12];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 12:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _j.label = 13;\n            case 13:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteAdmChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteAdmChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ADMChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ADMChannelResponse = deserializeAws_restJson1ADMChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteAdmChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteApnsChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteApnsChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSChannelResponse = deserializeAws_restJson1APNSChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteApnsChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteApnsSandboxChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteApnsSandboxChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSSandboxChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSSandboxChannelResponse = deserializeAws_restJson1APNSSandboxChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteApnsSandboxChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteApnsVoipChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteApnsVoipChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSVoipChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSVoipChannelResponse = deserializeAws_restJson1APNSVoipChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteApnsVoipChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteApnsVoipSandboxChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteApnsVoipSandboxChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSVoipSandboxChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSVoipSandboxChannelResponse = deserializeAws_restJson1APNSVoipSandboxChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteApnsVoipSandboxChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteAppCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteAppCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationResponse = deserializeAws_restJson1ApplicationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteAppCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteBaiduChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteBaiduChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    BaiduChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.BaiduChannelResponse = deserializeAws_restJson1BaiduChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteBaiduChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteCampaignCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteCampaignCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignResponse = deserializeAws_restJson1CampaignResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteCampaignCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteEmailChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteEmailChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EmailChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EmailChannelResponse = deserializeAws_restJson1EmailChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteEmailChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteEmailTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteEmailTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteEmailTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteEndpointCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteEndpointCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EndpointResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EndpointResponse = deserializeAws_restJson1EndpointResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteEndpointCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteEventStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteEventStreamCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EventStream: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EventStream = deserializeAws_restJson1EventStream(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteEventStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteGcmChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteGcmChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    GCMChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.GCMChannelResponse = deserializeAws_restJson1GCMChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteGcmChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteJourneyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteJourneyCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyResponse = deserializeAws_restJson1JourneyResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteJourneyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeletePushTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeletePushTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeletePushTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteRecommenderConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteRecommenderConfigurationCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    RecommenderConfigurationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.RecommenderConfigurationResponse = deserializeAws_restJson1RecommenderConfigurationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteRecommenderConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteSegmentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteSegmentCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentResponse = deserializeAws_restJson1SegmentResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteSegmentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteSmsChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteSmsChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SMSChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SMSChannelResponse = deserializeAws_restJson1SMSChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteSmsChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteSmsTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteSmsTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteSmsTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteUserEndpointsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteUserEndpointsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EndpointsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EndpointsResponse = deserializeAws_restJson1EndpointsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteUserEndpointsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteVoiceChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteVoiceChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    VoiceChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.VoiceChannelResponse = deserializeAws_restJson1VoiceChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteVoiceChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1DeleteVoiceTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1DeleteVoiceTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1DeleteVoiceTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetAdmChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetAdmChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ADMChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ADMChannelResponse = deserializeAws_restJson1ADMChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetAdmChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetApnsChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetApnsChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSChannelResponse = deserializeAws_restJson1APNSChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetApnsChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetApnsSandboxChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetApnsSandboxChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSSandboxChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSSandboxChannelResponse = deserializeAws_restJson1APNSSandboxChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetApnsSandboxChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetApnsVoipChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetApnsVoipChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSVoipChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSVoipChannelResponse = deserializeAws_restJson1APNSVoipChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetApnsVoipChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetApnsVoipSandboxChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetApnsVoipSandboxChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSVoipSandboxChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSVoipSandboxChannelResponse = deserializeAws_restJson1APNSVoipSandboxChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetApnsVoipSandboxChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetAppCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetAppCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationResponse = deserializeAws_restJson1ApplicationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetAppCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetApplicationDateRangeKpiCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetApplicationDateRangeKpiCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationDateRangeKpiResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationDateRangeKpiResponse = deserializeAws_restJson1ApplicationDateRangeKpiResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetApplicationDateRangeKpiCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetApplicationSettingsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetApplicationSettingsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationSettingsResource: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationSettingsResource = deserializeAws_restJson1ApplicationSettingsResource(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetApplicationSettingsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetAppsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetAppsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationsResponse = deserializeAws_restJson1ApplicationsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetAppsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetBaiduChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetBaiduChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    BaiduChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.BaiduChannelResponse = deserializeAws_restJson1BaiduChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetBaiduChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetCampaignCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetCampaignCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignResponse = deserializeAws_restJson1CampaignResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetCampaignCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetCampaignActivitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetCampaignActivitiesCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ActivitiesResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ActivitiesResponse = deserializeAws_restJson1ActivitiesResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetCampaignActivitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetCampaignDateRangeKpiCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetCampaignDateRangeKpiCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignDateRangeKpiResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignDateRangeKpiResponse = deserializeAws_restJson1CampaignDateRangeKpiResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetCampaignDateRangeKpiCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetCampaignsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetCampaignsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignsResponse = deserializeAws_restJson1CampaignsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetCampaignsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetCampaignVersionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetCampaignVersionCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignResponse = deserializeAws_restJson1CampaignResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetCampaignVersionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetCampaignVersionsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetCampaignVersionsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignsResponse = deserializeAws_restJson1CampaignsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetCampaignVersionsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetChannelsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetChannelsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ChannelsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ChannelsResponse = deserializeAws_restJson1ChannelsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetChannelsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetEmailChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetEmailChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EmailChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EmailChannelResponse = deserializeAws_restJson1EmailChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetEmailChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetEmailTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetEmailTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EmailTemplateResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EmailTemplateResponse = deserializeAws_restJson1EmailTemplateResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetEmailTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetEndpointCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetEndpointCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EndpointResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EndpointResponse = deserializeAws_restJson1EndpointResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetEndpointCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetEventStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetEventStreamCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EventStream: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EventStream = deserializeAws_restJson1EventStream(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetEventStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetExportJobCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetExportJobCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ExportJobResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ExportJobResponse = deserializeAws_restJson1ExportJobResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetExportJobCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetExportJobsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetExportJobsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ExportJobsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ExportJobsResponse = deserializeAws_restJson1ExportJobsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetExportJobsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetGcmChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetGcmChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    GCMChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.GCMChannelResponse = deserializeAws_restJson1GCMChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetGcmChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetImportJobCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetImportJobCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ImportJobResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ImportJobResponse = deserializeAws_restJson1ImportJobResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetImportJobCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetImportJobsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetImportJobsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ImportJobsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ImportJobsResponse = deserializeAws_restJson1ImportJobsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetImportJobsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetJourneyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetJourneyCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyResponse = deserializeAws_restJson1JourneyResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetJourneyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetJourneyDateRangeKpiCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetJourneyDateRangeKpiCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyDateRangeKpiResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyDateRangeKpiResponse = deserializeAws_restJson1JourneyDateRangeKpiResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetJourneyDateRangeKpiCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetJourneyExecutionActivityMetricsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetJourneyExecutionActivityMetricsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyExecutionActivityMetricsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyExecutionActivityMetricsResponse = deserializeAws_restJson1JourneyExecutionActivityMetricsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetJourneyExecutionActivityMetricsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetJourneyExecutionMetricsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetJourneyExecutionMetricsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyExecutionMetricsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyExecutionMetricsResponse = deserializeAws_restJson1JourneyExecutionMetricsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetJourneyExecutionMetricsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetPushTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetPushTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    PushNotificationTemplateResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.PushNotificationTemplateResponse = deserializeAws_restJson1PushNotificationTemplateResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetPushTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetRecommenderConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetRecommenderConfigurationCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    RecommenderConfigurationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.RecommenderConfigurationResponse = deserializeAws_restJson1RecommenderConfigurationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetRecommenderConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetRecommenderConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetRecommenderConfigurationsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ListRecommenderConfigurationsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ListRecommenderConfigurationsResponse = deserializeAws_restJson1ListRecommenderConfigurationsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetRecommenderConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSegmentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSegmentCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentResponse = deserializeAws_restJson1SegmentResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSegmentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSegmentExportJobsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSegmentExportJobsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ExportJobsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ExportJobsResponse = deserializeAws_restJson1ExportJobsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSegmentExportJobsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSegmentImportJobsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSegmentImportJobsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ImportJobsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ImportJobsResponse = deserializeAws_restJson1ImportJobsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSegmentImportJobsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSegmentsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSegmentsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentsResponse = deserializeAws_restJson1SegmentsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSegmentsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSegmentVersionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSegmentVersionCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentResponse = deserializeAws_restJson1SegmentResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSegmentVersionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSegmentVersionsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSegmentVersionsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentsResponse = deserializeAws_restJson1SegmentsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSegmentVersionsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSmsChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSmsChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SMSChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SMSChannelResponse = deserializeAws_restJson1SMSChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSmsChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetSmsTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetSmsTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SMSTemplateResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SMSTemplateResponse = deserializeAws_restJson1SMSTemplateResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetSmsTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetUserEndpointsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetUserEndpointsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EndpointsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EndpointsResponse = deserializeAws_restJson1EndpointsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetUserEndpointsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetVoiceChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetVoiceChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    VoiceChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.VoiceChannelResponse = deserializeAws_restJson1VoiceChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetVoiceChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1GetVoiceTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1GetVoiceTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    VoiceTemplateResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.VoiceTemplateResponse = deserializeAws_restJson1VoiceTemplateResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1GetVoiceTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1ListJourneysCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1ListJourneysCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneysResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneysResponse = deserializeAws_restJson1JourneysResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1ListJourneysCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1ListTagsForResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1ListTagsForResourceCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    TagsModel: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.TagsModel = deserializeAws_restJson1TagsModel(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1ListTagsForResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, parsedBody, message;\n    var _b;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _b = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                switch (errorCode) {\n                    default:\n                        parsedBody = parsedOutput.body;\n                        errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                        response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                }\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1ListTemplatesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1ListTemplatesCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    TemplatesResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.TemplatesResponse = deserializeAws_restJson1TemplatesResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1ListTemplatesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n    var _h;\n    return __generator(this, function (_j) {\n        switch (_j.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _h = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 10];\n                }\n                return [3 /*break*/, 12];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 13];\n            case 12:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _j.label = 13;\n            case 13:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1ListTemplateVersionsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1ListTemplateVersionsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    TemplateVersionsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.TemplateVersionsResponse = deserializeAws_restJson1TemplateVersionsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1ListTemplateVersionsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1PhoneNumberValidateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1PhoneNumberValidateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    NumberValidateResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.NumberValidateResponse = deserializeAws_restJson1NumberValidateResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1PhoneNumberValidateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1PutEventsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1PutEventsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EventsResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EventsResponse = deserializeAws_restJson1EventsResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1PutEventsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1PutEventStreamCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1PutEventStreamCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EventStream: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EventStream = deserializeAws_restJson1EventStream(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1PutEventStreamCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1RemoveAttributesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1RemoveAttributesCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    AttributesResource: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.AttributesResource = deserializeAws_restJson1AttributesResource(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1RemoveAttributesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1SendMessagesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1SendMessagesCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageResponse = deserializeAws_restJson1MessageResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1SendMessagesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1SendUsersMessagesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1SendUsersMessagesCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SendUsersMessageResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SendUsersMessageResponse = deserializeAws_restJson1SendUsersMessageResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1SendUsersMessagesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1TagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 204 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1TagResourceCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                };\n                return [4 /*yield*/, collectBody(output.body, context)];\n            case 1:\n                _a.sent();\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1TagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, parsedBody, message;\n    var _b;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _b = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                switch (errorCode) {\n                    default:\n                        parsedBody = parsedOutput.body;\n                        errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                        response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                }\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UntagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 204 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UntagResourceCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                };\n                return [4 /*yield*/, collectBody(output.body, context)];\n            case 1:\n                _a.sent();\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UntagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, parsedBody, message;\n    var _b;\n    return __generator(this, function (_c) {\n        switch (_c.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _b = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                switch (errorCode) {\n                    default:\n                        parsedBody = parsedOutput.body;\n                        errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                        response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                }\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateAdmChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateAdmChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ADMChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ADMChannelResponse = deserializeAws_restJson1ADMChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateAdmChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateApnsChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateApnsChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSChannelResponse = deserializeAws_restJson1APNSChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateApnsChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateApnsSandboxChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateApnsSandboxChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSSandboxChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSSandboxChannelResponse = deserializeAws_restJson1APNSSandboxChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateApnsSandboxChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateApnsVoipChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateApnsVoipChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSVoipChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSVoipChannelResponse = deserializeAws_restJson1APNSVoipChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateApnsVoipChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateApnsVoipSandboxChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateApnsVoipSandboxChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    APNSVoipSandboxChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.APNSVoipSandboxChannelResponse = deserializeAws_restJson1APNSVoipSandboxChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateApnsVoipSandboxChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateApplicationSettingsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateApplicationSettingsCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    ApplicationSettingsResource: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.ApplicationSettingsResource = deserializeAws_restJson1ApplicationSettingsResource(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateApplicationSettingsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateBaiduChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateBaiduChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    BaiduChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.BaiduChannelResponse = deserializeAws_restJson1BaiduChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateBaiduChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateCampaignCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateCampaignCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    CampaignResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.CampaignResponse = deserializeAws_restJson1CampaignResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateCampaignCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateEmailChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateEmailChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    EmailChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.EmailChannelResponse = deserializeAws_restJson1EmailChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateEmailChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateEmailTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateEmailTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateEmailTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateEndpointCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateEndpointCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateEndpointCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateEndpointsBatchCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateEndpointsBatchCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateEndpointsBatchCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateGcmChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateGcmChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    GCMChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.GCMChannelResponse = deserializeAws_restJson1GCMChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateGcmChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateJourneyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateJourneyCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyResponse = deserializeAws_restJson1JourneyResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateJourneyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n    var _l;\n    return __generator(this, function (_m) {\n        switch (_m.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _l = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ConflictException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ConflictException\": return [3 /*break*/, 4];\n                    case \"ForbiddenException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 6];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 8];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 10];\n                    case \"NotFoundException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 12];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 14];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 16];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 16];\n                }\n                return [3 /*break*/, 18];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ConflictExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 16:\n                _k = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 17:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 19];\n            case 18:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _m.label = 19;\n            case 19:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateJourneyStateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateJourneyStateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    JourneyResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.JourneyResponse = deserializeAws_restJson1JourneyResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateJourneyStateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdatePushTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdatePushTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdatePushTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateRecommenderConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateRecommenderConfigurationCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    RecommenderConfigurationResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.RecommenderConfigurationResponse = deserializeAws_restJson1RecommenderConfigurationResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateRecommenderConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateSegmentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateSegmentCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SegmentResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SegmentResponse = deserializeAws_restJson1SegmentResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateSegmentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateSmsChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateSmsChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    SMSChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.SMSChannelResponse = deserializeAws_restJson1SMSChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateSmsChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateSmsTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateSmsTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateSmsTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateTemplateActiveVersionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateTemplateActiveVersionCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateTemplateActiveVersionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateVoiceChannelCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 200 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateVoiceChannelCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    VoiceChannelResponse: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.VoiceChannelResponse = deserializeAws_restJson1VoiceChannelResponse(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateVoiceChannelCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nexport var deserializeAws_restJson1UpdateVoiceTemplateCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        switch (_a.label) {\n            case 0:\n                if (output.statusCode !== 202 && output.statusCode >= 300) {\n                    return [2 /*return*/, deserializeAws_restJson1UpdateVoiceTemplateCommandError(output, context)];\n                }\n                contents = {\n                    $metadata: deserializeMetadata(output),\n                    MessageBody: undefined,\n                };\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                data = _a.sent();\n                contents.MessageBody = deserializeAws_restJson1MessageBody(data, context);\n                return [2 /*return*/, Promise.resolve(contents)];\n        }\n    });\n}); };\nvar deserializeAws_restJson1UpdateVoiceTemplateCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n    var _k;\n    return __generator(this, function (_l) {\n        switch (_l.label) {\n            case 0:\n                _a = [__assign({}, output)];\n                _k = {};\n                return [4 /*yield*/, parseBody(output.body, context)];\n            case 1:\n                parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n                errorCode = \"UnknownError\";\n                errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n                _b = errorCode;\n                switch (_b) {\n                    case \"BadRequestException\": return [3 /*break*/, 2];\n                    case \"com.amazonaws.pinpoint#BadRequestException\": return [3 /*break*/, 2];\n                    case \"ForbiddenException\": return [3 /*break*/, 4];\n                    case \"com.amazonaws.pinpoint#ForbiddenException\": return [3 /*break*/, 4];\n                    case \"InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"com.amazonaws.pinpoint#InternalServerErrorException\": return [3 /*break*/, 6];\n                    case \"MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"com.amazonaws.pinpoint#MethodNotAllowedException\": return [3 /*break*/, 8];\n                    case \"NotFoundException\": return [3 /*break*/, 10];\n                    case \"com.amazonaws.pinpoint#NotFoundException\": return [3 /*break*/, 10];\n                    case \"PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"com.amazonaws.pinpoint#PayloadTooLargeException\": return [3 /*break*/, 12];\n                    case \"TooManyRequestsException\": return [3 /*break*/, 14];\n                    case \"com.amazonaws.pinpoint#TooManyRequestsException\": return [3 /*break*/, 14];\n                }\n                return [3 /*break*/, 16];\n            case 2:\n                _c = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1BadRequestExceptionResponse(parsedOutput, context)];\n            case 3:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 4:\n                _d = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1ForbiddenExceptionResponse(parsedOutput, context)];\n            case 5:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 6:\n                _e = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1InternalServerErrorExceptionResponse(parsedOutput, context)];\n            case 7:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 8:\n                _f = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1MethodNotAllowedExceptionResponse(parsedOutput, context)];\n            case 9:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 10:\n                _g = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1NotFoundExceptionResponse(parsedOutput, context)];\n            case 11:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 12:\n                _h = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1PayloadTooLargeExceptionResponse(parsedOutput, context)];\n            case 13:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 14:\n                _j = [{}];\n                return [4 /*yield*/, deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context)];\n            case 15:\n                response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n                return [3 /*break*/, 17];\n            case 16:\n                parsedBody = parsedOutput.body;\n                errorCode = parsedBody.code || parsedBody.Code || errorCode;\n                response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n                _l.label = 17;\n            case 17:\n                message = response.message || response.Message || errorCode;\n                response.message = message;\n                delete response.Message;\n                return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n        }\n    });\n}); };\nvar deserializeAws_restJson1BadRequestExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"BadRequestException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1ConflictExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"ConflictException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1ForbiddenExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"ForbiddenException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1InternalServerErrorExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"InternalServerErrorException\",\n            $fault: \"server\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1MethodNotAllowedExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"MethodNotAllowedException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1NotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"NotFoundException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1PayloadTooLargeExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"PayloadTooLargeException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar deserializeAws_restJson1TooManyRequestsExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n    var contents, data;\n    return __generator(this, function (_a) {\n        contents = {\n            name: \"TooManyRequestsException\",\n            $fault: \"client\",\n            $metadata: deserializeMetadata(parsedOutput),\n            Message: undefined,\n            RequestID: undefined,\n        };\n        data = parsedOutput.body;\n        if (data.Message !== undefined && data.Message !== null) {\n            contents.Message = data.Message;\n        }\n        if (data.RequestID !== undefined && data.RequestID !== null) {\n            contents.RequestID = data.RequestID;\n        }\n        return [2 /*return*/, contents];\n    });\n}); };\nvar serializeAws_restJson1Activity = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CUSTOM !== undefined &&\n        input.CUSTOM !== null && { CUSTOM: serializeAws_restJson1CustomMessageActivity(input.CUSTOM, context) })), (input.ConditionalSplit !== undefined &&\n        input.ConditionalSplit !== null && {\n        ConditionalSplit: serializeAws_restJson1ConditionalSplitActivity(input.ConditionalSplit, context),\n    })), (input.Description !== undefined && input.Description !== null && { Description: input.Description })), (input.EMAIL !== undefined &&\n        input.EMAIL !== null && { EMAIL: serializeAws_restJson1EmailMessageActivity(input.EMAIL, context) })), (input.Holdout !== undefined &&\n        input.Holdout !== null && { Holdout: serializeAws_restJson1HoldoutActivity(input.Holdout, context) })), (input.MultiCondition !== undefined &&\n        input.MultiCondition !== null && {\n        MultiCondition: serializeAws_restJson1MultiConditionalSplitActivity(input.MultiCondition, context),\n    })), (input.PUSH !== undefined &&\n        input.PUSH !== null && { PUSH: serializeAws_restJson1PushMessageActivity(input.PUSH, context) })), (input.RandomSplit !== undefined &&\n        input.RandomSplit !== null && {\n        RandomSplit: serializeAws_restJson1RandomSplitActivity(input.RandomSplit, context),\n    })), (input.SMS !== undefined &&\n        input.SMS !== null && { SMS: serializeAws_restJson1SMSMessageActivity(input.SMS, context) })), (input.Wait !== undefined &&\n        input.Wait !== null && { Wait: serializeAws_restJson1WaitActivity(input.Wait, context) }));\n};\nvar serializeAws_restJson1AddressConfiguration = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.BodyOverride !== undefined && input.BodyOverride !== null && { BodyOverride: input.BodyOverride })), (input.ChannelType !== undefined && input.ChannelType !== null && { ChannelType: input.ChannelType })), (input.Context !== undefined &&\n        input.Context !== null && { Context: serializeAws_restJson1MapOf__string(input.Context, context) })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.TitleOverride !== undefined && input.TitleOverride !== null && { TitleOverride: input.TitleOverride }));\n};\nvar serializeAws_restJson1ADMChannelRequest = function (input, context) {\n    return __assign(__assign(__assign({}, (input.ClientId !== undefined && input.ClientId !== null && { ClientId: input.ClientId })), (input.ClientSecret !== undefined && input.ClientSecret !== null && { ClientSecret: input.ClientSecret })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled }));\n};\nvar serializeAws_restJson1ADMMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.ConsolidationKey !== undefined &&\n        input.ConsolidationKey !== null && { ConsolidationKey: input.ConsolidationKey })), (input.Data !== undefined &&\n        input.Data !== null && { Data: serializeAws_restJson1MapOf__string(input.Data, context) })), (input.ExpiresAfter !== undefined && input.ExpiresAfter !== null && { ExpiresAfter: input.ExpiresAfter })), (input.IconReference !== undefined && input.IconReference !== null && { IconReference: input.IconReference })), (input.ImageIconUrl !== undefined && input.ImageIconUrl !== null && { ImageIconUrl: input.ImageIconUrl })), (input.ImageUrl !== undefined && input.ImageUrl !== null && { ImageUrl: input.ImageUrl })), (input.MD5 !== undefined && input.MD5 !== null && { MD5: input.MD5 })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.SilentPush !== undefined && input.SilentPush !== null && { SilentPush: input.SilentPush })), (input.SmallImageIconUrl !== undefined &&\n        input.SmallImageIconUrl !== null && { SmallImageIconUrl: input.SmallImageIconUrl })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1AndroidPushNotificationTemplate = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.ImageIconUrl !== undefined && input.ImageIconUrl !== null && { ImageIconUrl: input.ImageIconUrl })), (input.ImageUrl !== undefined && input.ImageUrl !== null && { ImageUrl: input.ImageUrl })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.SmallImageIconUrl !== undefined &&\n        input.SmallImageIconUrl !== null && { SmallImageIconUrl: input.SmallImageIconUrl })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1APNSChannelRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BundleId !== undefined && input.BundleId !== null && { BundleId: input.BundleId })), (input.Certificate !== undefined && input.Certificate !== null && { Certificate: input.Certificate })), (input.DefaultAuthenticationMethod !== undefined &&\n        input.DefaultAuthenticationMethod !== null && { DefaultAuthenticationMethod: input.DefaultAuthenticationMethod })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.PrivateKey !== undefined && input.PrivateKey !== null && { PrivateKey: input.PrivateKey })), (input.TeamId !== undefined && input.TeamId !== null && { TeamId: input.TeamId })), (input.TokenKey !== undefined && input.TokenKey !== null && { TokenKey: input.TokenKey })), (input.TokenKeyId !== undefined && input.TokenKeyId !== null && { TokenKeyId: input.TokenKeyId }));\n};\nvar serializeAws_restJson1APNSMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.APNSPushType !== undefined && input.APNSPushType !== null && { APNSPushType: input.APNSPushType })), (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Badge !== undefined && input.Badge !== null && { Badge: input.Badge })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.Category !== undefined && input.Category !== null && { Category: input.Category })), (input.CollapseId !== undefined && input.CollapseId !== null && { CollapseId: input.CollapseId })), (input.Data !== undefined &&\n        input.Data !== null && { Data: serializeAws_restJson1MapOf__string(input.Data, context) })), (input.MediaUrl !== undefined && input.MediaUrl !== null && { MediaUrl: input.MediaUrl })), (input.PreferredAuthenticationMethod !== undefined &&\n        input.PreferredAuthenticationMethod !== null && {\n        PreferredAuthenticationMethod: input.PreferredAuthenticationMethod,\n    })), (input.Priority !== undefined && input.Priority !== null && { Priority: input.Priority })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.SilentPush !== undefined && input.SilentPush !== null && { SilentPush: input.SilentPush })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.ThreadId !== undefined && input.ThreadId !== null && { ThreadId: input.ThreadId })), (input.TimeToLive !== undefined && input.TimeToLive !== null && { TimeToLive: input.TimeToLive })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1APNSPushNotificationTemplate = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.MediaUrl !== undefined && input.MediaUrl !== null && { MediaUrl: input.MediaUrl })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1APNSSandboxChannelRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BundleId !== undefined && input.BundleId !== null && { BundleId: input.BundleId })), (input.Certificate !== undefined && input.Certificate !== null && { Certificate: input.Certificate })), (input.DefaultAuthenticationMethod !== undefined &&\n        input.DefaultAuthenticationMethod !== null && { DefaultAuthenticationMethod: input.DefaultAuthenticationMethod })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.PrivateKey !== undefined && input.PrivateKey !== null && { PrivateKey: input.PrivateKey })), (input.TeamId !== undefined && input.TeamId !== null && { TeamId: input.TeamId })), (input.TokenKey !== undefined && input.TokenKey !== null && { TokenKey: input.TokenKey })), (input.TokenKeyId !== undefined && input.TokenKeyId !== null && { TokenKeyId: input.TokenKeyId }));\n};\nvar serializeAws_restJson1APNSVoipChannelRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BundleId !== undefined && input.BundleId !== null && { BundleId: input.BundleId })), (input.Certificate !== undefined && input.Certificate !== null && { Certificate: input.Certificate })), (input.DefaultAuthenticationMethod !== undefined &&\n        input.DefaultAuthenticationMethod !== null && { DefaultAuthenticationMethod: input.DefaultAuthenticationMethod })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.PrivateKey !== undefined && input.PrivateKey !== null && { PrivateKey: input.PrivateKey })), (input.TeamId !== undefined && input.TeamId !== null && { TeamId: input.TeamId })), (input.TokenKey !== undefined && input.TokenKey !== null && { TokenKey: input.TokenKey })), (input.TokenKeyId !== undefined && input.TokenKeyId !== null && { TokenKeyId: input.TokenKeyId }));\n};\nvar serializeAws_restJson1APNSVoipSandboxChannelRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.BundleId !== undefined && input.BundleId !== null && { BundleId: input.BundleId })), (input.Certificate !== undefined && input.Certificate !== null && { Certificate: input.Certificate })), (input.DefaultAuthenticationMethod !== undefined &&\n        input.DefaultAuthenticationMethod !== null && { DefaultAuthenticationMethod: input.DefaultAuthenticationMethod })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.PrivateKey !== undefined && input.PrivateKey !== null && { PrivateKey: input.PrivateKey })), (input.TeamId !== undefined && input.TeamId !== null && { TeamId: input.TeamId })), (input.TokenKey !== undefined && input.TokenKey !== null && { TokenKey: input.TokenKey })), (input.TokenKeyId !== undefined && input.TokenKeyId !== null && { TokenKeyId: input.TokenKeyId }));\n};\nvar serializeAws_restJson1AttributeDimension = function (input, context) {\n    return __assign(__assign({}, (input.AttributeType !== undefined && input.AttributeType !== null && { AttributeType: input.AttributeType })), (input.Values !== undefined &&\n        input.Values !== null && { Values: serializeAws_restJson1ListOf__string(input.Values, context) }));\n};\nvar serializeAws_restJson1BaiduChannelRequest = function (input, context) {\n    return __assign(__assign(__assign({}, (input.ApiKey !== undefined && input.ApiKey !== null && { ApiKey: input.ApiKey })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.SecretKey !== undefined && input.SecretKey !== null && { SecretKey: input.SecretKey }));\n};\nvar serializeAws_restJson1BaiduMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.Data !== undefined &&\n        input.Data !== null && { Data: serializeAws_restJson1MapOf__string(input.Data, context) })), (input.IconReference !== undefined && input.IconReference !== null && { IconReference: input.IconReference })), (input.ImageIconUrl !== undefined && input.ImageIconUrl !== null && { ImageIconUrl: input.ImageIconUrl })), (input.ImageUrl !== undefined && input.ImageUrl !== null && { ImageUrl: input.ImageUrl })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.SilentPush !== undefined && input.SilentPush !== null && { SilentPush: input.SilentPush })), (input.SmallImageIconUrl !== undefined &&\n        input.SmallImageIconUrl !== null && { SmallImageIconUrl: input.SmallImageIconUrl })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.TimeToLive !== undefined && input.TimeToLive !== null && { TimeToLive: input.TimeToLive })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1CampaignCustomMessage = function (input, context) {\n    return __assign({}, (input.Data !== undefined && input.Data !== null && { Data: input.Data }));\n};\nvar serializeAws_restJson1CampaignEmailMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.FromAddress !== undefined && input.FromAddress !== null && { FromAddress: input.FromAddress })), (input.HtmlBody !== undefined && input.HtmlBody !== null && { HtmlBody: input.HtmlBody })), (input.Title !== undefined && input.Title !== null && { Title: input.Title }));\n};\nvar serializeAws_restJson1CampaignEventFilter = function (input, context) {\n    return __assign(__assign({}, (input.Dimensions !== undefined &&\n        input.Dimensions !== null && { Dimensions: serializeAws_restJson1EventDimensions(input.Dimensions, context) })), (input.FilterType !== undefined && input.FilterType !== null && { FilterType: input.FilterType }));\n};\nvar serializeAws_restJson1CampaignHook = function (input, context) {\n    return __assign(__assign(__assign({}, (input.LambdaFunctionName !== undefined &&\n        input.LambdaFunctionName !== null && { LambdaFunctionName: input.LambdaFunctionName })), (input.Mode !== undefined && input.Mode !== null && { Mode: input.Mode })), (input.WebUrl !== undefined && input.WebUrl !== null && { WebUrl: input.WebUrl }));\n};\nvar serializeAws_restJson1CampaignLimits = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.Daily !== undefined && input.Daily !== null && { Daily: input.Daily })), (input.MaximumDuration !== undefined &&\n        input.MaximumDuration !== null && { MaximumDuration: input.MaximumDuration })), (input.MessagesPerSecond !== undefined &&\n        input.MessagesPerSecond !== null && { MessagesPerSecond: input.MessagesPerSecond })), (input.Total !== undefined && input.Total !== null && { Total: input.Total }));\n};\nvar serializeAws_restJson1CampaignSmsMessage = function (input, context) {\n    return __assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.MessageType !== undefined && input.MessageType !== null && { MessageType: input.MessageType })), (input.SenderId !== undefined && input.SenderId !== null && { SenderId: input.SenderId }));\n};\nvar serializeAws_restJson1Condition = function (input, context) {\n    return __assign(__assign({}, (input.Conditions !== undefined &&\n        input.Conditions !== null && {\n        Conditions: serializeAws_restJson1ListOfSimpleCondition(input.Conditions, context),\n    })), (input.Operator !== undefined && input.Operator !== null && { Operator: input.Operator }));\n};\nvar serializeAws_restJson1ConditionalSplitActivity = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.Condition !== undefined &&\n        input.Condition !== null && { Condition: serializeAws_restJson1Condition(input.Condition, context) })), (input.EvaluationWaitTime !== undefined &&\n        input.EvaluationWaitTime !== null && {\n        EvaluationWaitTime: serializeAws_restJson1WaitTime(input.EvaluationWaitTime, context),\n    })), (input.FalseActivity !== undefined && input.FalseActivity !== null && { FalseActivity: input.FalseActivity })), (input.TrueActivity !== undefined && input.TrueActivity !== null && { TrueActivity: input.TrueActivity }));\n};\nvar serializeAws_restJson1CreateApplicationRequest = function (input, context) {\n    return __assign(__assign({}, (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1CreateRecommenderConfigurationShape = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Attributes !== undefined &&\n        input.Attributes !== null && { Attributes: serializeAws_restJson1MapOf__string(input.Attributes, context) })), (input.Description !== undefined && input.Description !== null && { Description: input.Description })), (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.RecommendationProviderIdType !== undefined &&\n        input.RecommendationProviderIdType !== null && {\n        RecommendationProviderIdType: input.RecommendationProviderIdType,\n    })), (input.RecommendationProviderRoleArn !== undefined &&\n        input.RecommendationProviderRoleArn !== null && {\n        RecommendationProviderRoleArn: input.RecommendationProviderRoleArn,\n    })), (input.RecommendationProviderUri !== undefined &&\n        input.RecommendationProviderUri !== null && { RecommendationProviderUri: input.RecommendationProviderUri })), (input.RecommendationTransformerUri !== undefined &&\n        input.RecommendationTransformerUri !== null && {\n        RecommendationTransformerUri: input.RecommendationTransformerUri,\n    })), (input.RecommendationsDisplayName !== undefined &&\n        input.RecommendationsDisplayName !== null && { RecommendationsDisplayName: input.RecommendationsDisplayName })), (input.RecommendationsPerMessage !== undefined &&\n        input.RecommendationsPerMessage !== null && { RecommendationsPerMessage: input.RecommendationsPerMessage }));\n};\nvar serializeAws_restJson1CustomDeliveryConfiguration = function (input, context) {\n    return __assign(__assign({}, (input.DeliveryUri !== undefined && input.DeliveryUri !== null && { DeliveryUri: input.DeliveryUri })), (input.EndpointTypes !== undefined &&\n        input.EndpointTypes !== null && {\n        EndpointTypes: serializeAws_restJson1ListOf__EndpointTypesElement(input.EndpointTypes, context),\n    }));\n};\nvar serializeAws_restJson1CustomMessageActivity = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.DeliveryUri !== undefined && input.DeliveryUri !== null && { DeliveryUri: input.DeliveryUri })), (input.EndpointTypes !== undefined &&\n        input.EndpointTypes !== null && {\n        EndpointTypes: serializeAws_restJson1ListOf__EndpointTypesElement(input.EndpointTypes, context),\n    })), (input.MessageConfig !== undefined &&\n        input.MessageConfig !== null && {\n        MessageConfig: serializeAws_restJson1JourneyCustomMessage(input.MessageConfig, context),\n    })), (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.TemplateName !== undefined && input.TemplateName !== null && { TemplateName: input.TemplateName })), (input.TemplateVersion !== undefined &&\n        input.TemplateVersion !== null && { TemplateVersion: input.TemplateVersion }));\n};\nvar serializeAws_restJson1DefaultMessage = function (input, context) {\n    return __assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    }));\n};\nvar serializeAws_restJson1DefaultPushNotificationMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.Data !== undefined &&\n        input.Data !== null && { Data: serializeAws_restJson1MapOf__string(input.Data, context) })), (input.SilentPush !== undefined && input.SilentPush !== null && { SilentPush: input.SilentPush })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1DefaultPushNotificationTemplate = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1DirectMessageConfiguration = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.ADMMessage !== undefined &&\n        input.ADMMessage !== null && { ADMMessage: serializeAws_restJson1ADMMessage(input.ADMMessage, context) })), (input.APNSMessage !== undefined &&\n        input.APNSMessage !== null && { APNSMessage: serializeAws_restJson1APNSMessage(input.APNSMessage, context) })), (input.BaiduMessage !== undefined &&\n        input.BaiduMessage !== null && { BaiduMessage: serializeAws_restJson1BaiduMessage(input.BaiduMessage, context) })), (input.DefaultMessage !== undefined &&\n        input.DefaultMessage !== null && {\n        DefaultMessage: serializeAws_restJson1DefaultMessage(input.DefaultMessage, context),\n    })), (input.DefaultPushNotificationMessage !== undefined &&\n        input.DefaultPushNotificationMessage !== null && {\n        DefaultPushNotificationMessage: serializeAws_restJson1DefaultPushNotificationMessage(input.DefaultPushNotificationMessage, context),\n    })), (input.EmailMessage !== undefined &&\n        input.EmailMessage !== null && { EmailMessage: serializeAws_restJson1EmailMessage(input.EmailMessage, context) })), (input.GCMMessage !== undefined &&\n        input.GCMMessage !== null && { GCMMessage: serializeAws_restJson1GCMMessage(input.GCMMessage, context) })), (input.SMSMessage !== undefined &&\n        input.SMSMessage !== null && { SMSMessage: serializeAws_restJson1SMSMessage(input.SMSMessage, context) })), (input.VoiceMessage !== undefined &&\n        input.VoiceMessage !== null && { VoiceMessage: serializeAws_restJson1VoiceMessage(input.VoiceMessage, context) }));\n};\nvar serializeAws_restJson1EmailChannelRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.ConfigurationSet !== undefined &&\n        input.ConfigurationSet !== null && { ConfigurationSet: input.ConfigurationSet })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.FromAddress !== undefined && input.FromAddress !== null && { FromAddress: input.FromAddress })), (input.Identity !== undefined && input.Identity !== null && { Identity: input.Identity })), (input.RoleArn !== undefined && input.RoleArn !== null && { RoleArn: input.RoleArn }));\n};\nvar serializeAws_restJson1EmailMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.FeedbackForwardingAddress !== undefined &&\n        input.FeedbackForwardingAddress !== null && { FeedbackForwardingAddress: input.FeedbackForwardingAddress })), (input.FromAddress !== undefined && input.FromAddress !== null && { FromAddress: input.FromAddress })), (input.RawEmail !== undefined &&\n        input.RawEmail !== null && { RawEmail: serializeAws_restJson1RawEmail(input.RawEmail, context) })), (input.ReplyToAddresses !== undefined &&\n        input.ReplyToAddresses !== null && {\n        ReplyToAddresses: serializeAws_restJson1ListOf__string(input.ReplyToAddresses, context),\n    })), (input.SimpleEmail !== undefined &&\n        input.SimpleEmail !== null && { SimpleEmail: serializeAws_restJson1SimpleEmail(input.SimpleEmail, context) })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    }));\n};\nvar serializeAws_restJson1EmailMessageActivity = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.MessageConfig !== undefined &&\n        input.MessageConfig !== null && {\n        MessageConfig: serializeAws_restJson1JourneyEmailMessage(input.MessageConfig, context),\n    })), (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.TemplateName !== undefined && input.TemplateName !== null && { TemplateName: input.TemplateName })), (input.TemplateVersion !== undefined &&\n        input.TemplateVersion !== null && { TemplateVersion: input.TemplateVersion }));\n};\nvar serializeAws_restJson1EmailTemplateRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.DefaultSubstitutions !== undefined &&\n        input.DefaultSubstitutions !== null && { DefaultSubstitutions: input.DefaultSubstitutions })), (input.HtmlPart !== undefined && input.HtmlPart !== null && { HtmlPart: input.HtmlPart })), (input.RecommenderId !== undefined && input.RecommenderId !== null && { RecommenderId: input.RecommenderId })), (input.Subject !== undefined && input.Subject !== null && { Subject: input.Subject })), (input.TemplateDescription !== undefined &&\n        input.TemplateDescription !== null && { TemplateDescription: input.TemplateDescription })), (input.TextPart !== undefined && input.TextPart !== null && { TextPart: input.TextPart })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1EndpointBatchItem = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Address !== undefined && input.Address !== null && { Address: input.Address })), (input.Attributes !== undefined &&\n        input.Attributes !== null && {\n        Attributes: serializeAws_restJson1MapOfListOf__string(input.Attributes, context),\n    })), (input.ChannelType !== undefined && input.ChannelType !== null && { ChannelType: input.ChannelType })), (input.Demographic !== undefined &&\n        input.Demographic !== null && {\n        Demographic: serializeAws_restJson1EndpointDemographic(input.Demographic, context),\n    })), (input.EffectiveDate !== undefined && input.EffectiveDate !== null && { EffectiveDate: input.EffectiveDate })), (input.EndpointStatus !== undefined &&\n        input.EndpointStatus !== null && { EndpointStatus: input.EndpointStatus })), (input.Id !== undefined && input.Id !== null && { Id: input.Id })), (input.Location !== undefined &&\n        input.Location !== null && { Location: serializeAws_restJson1EndpointLocation(input.Location, context) })), (input.Metrics !== undefined &&\n        input.Metrics !== null && { Metrics: serializeAws_restJson1MapOf__double(input.Metrics, context) })), (input.OptOut !== undefined && input.OptOut !== null && { OptOut: input.OptOut })), (input.RequestId !== undefined && input.RequestId !== null && { RequestId: input.RequestId })), (input.User !== undefined &&\n        input.User !== null && { User: serializeAws_restJson1EndpointUser(input.User, context) }));\n};\nvar serializeAws_restJson1EndpointBatchRequest = function (input, context) {\n    return __assign({}, (input.Item !== undefined &&\n        input.Item !== null && { Item: serializeAws_restJson1ListOfEndpointBatchItem(input.Item, context) }));\n};\nvar serializeAws_restJson1EndpointDemographic = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AppVersion !== undefined && input.AppVersion !== null && { AppVersion: input.AppVersion })), (input.Locale !== undefined && input.Locale !== null && { Locale: input.Locale })), (input.Make !== undefined && input.Make !== null && { Make: input.Make })), (input.Model !== undefined && input.Model !== null && { Model: input.Model })), (input.ModelVersion !== undefined && input.ModelVersion !== null && { ModelVersion: input.ModelVersion })), (input.Platform !== undefined && input.Platform !== null && { Platform: input.Platform })), (input.PlatformVersion !== undefined &&\n        input.PlatformVersion !== null && { PlatformVersion: input.PlatformVersion })), (input.Timezone !== undefined && input.Timezone !== null && { Timezone: input.Timezone }));\n};\nvar serializeAws_restJson1EndpointLocation = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.City !== undefined && input.City !== null && { City: input.City })), (input.Country !== undefined && input.Country !== null && { Country: input.Country })), (input.Latitude !== undefined && input.Latitude !== null && { Latitude: input.Latitude })), (input.Longitude !== undefined && input.Longitude !== null && { Longitude: input.Longitude })), (input.PostalCode !== undefined && input.PostalCode !== null && { PostalCode: input.PostalCode })), (input.Region !== undefined && input.Region !== null && { Region: input.Region }));\n};\nvar serializeAws_restJson1EndpointRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Address !== undefined && input.Address !== null && { Address: input.Address })), (input.Attributes !== undefined &&\n        input.Attributes !== null && {\n        Attributes: serializeAws_restJson1MapOfListOf__string(input.Attributes, context),\n    })), (input.ChannelType !== undefined && input.ChannelType !== null && { ChannelType: input.ChannelType })), (input.Demographic !== undefined &&\n        input.Demographic !== null && {\n        Demographic: serializeAws_restJson1EndpointDemographic(input.Demographic, context),\n    })), (input.EffectiveDate !== undefined && input.EffectiveDate !== null && { EffectiveDate: input.EffectiveDate })), (input.EndpointStatus !== undefined &&\n        input.EndpointStatus !== null && { EndpointStatus: input.EndpointStatus })), (input.Location !== undefined &&\n        input.Location !== null && { Location: serializeAws_restJson1EndpointLocation(input.Location, context) })), (input.Metrics !== undefined &&\n        input.Metrics !== null && { Metrics: serializeAws_restJson1MapOf__double(input.Metrics, context) })), (input.OptOut !== undefined && input.OptOut !== null && { OptOut: input.OptOut })), (input.RequestId !== undefined && input.RequestId !== null && { RequestId: input.RequestId })), (input.User !== undefined &&\n        input.User !== null && { User: serializeAws_restJson1EndpointUser(input.User, context) }));\n};\nvar serializeAws_restJson1EndpointSendConfiguration = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.BodyOverride !== undefined && input.BodyOverride !== null && { BodyOverride: input.BodyOverride })), (input.Context !== undefined &&\n        input.Context !== null && { Context: serializeAws_restJson1MapOf__string(input.Context, context) })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.TitleOverride !== undefined && input.TitleOverride !== null && { TitleOverride: input.TitleOverride }));\n};\nvar serializeAws_restJson1EndpointUser = function (input, context) {\n    return __assign(__assign({}, (input.UserAttributes !== undefined &&\n        input.UserAttributes !== null && {\n        UserAttributes: serializeAws_restJson1MapOfListOf__string(input.UserAttributes, context),\n    })), (input.UserId !== undefined && input.UserId !== null && { UserId: input.UserId }));\n};\nvar serializeAws_restJson1Event = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AppPackageName !== undefined &&\n        input.AppPackageName !== null && { AppPackageName: input.AppPackageName })), (input.AppTitle !== undefined && input.AppTitle !== null && { AppTitle: input.AppTitle })), (input.AppVersionCode !== undefined &&\n        input.AppVersionCode !== null && { AppVersionCode: input.AppVersionCode })), (input.Attributes !== undefined &&\n        input.Attributes !== null && { Attributes: serializeAws_restJson1MapOf__string(input.Attributes, context) })), (input.ClientSdkVersion !== undefined &&\n        input.ClientSdkVersion !== null && { ClientSdkVersion: input.ClientSdkVersion })), (input.EventType !== undefined && input.EventType !== null && { EventType: input.EventType })), (input.Metrics !== undefined &&\n        input.Metrics !== null && { Metrics: serializeAws_restJson1MapOf__double(input.Metrics, context) })), (input.SdkName !== undefined && input.SdkName !== null && { SdkName: input.SdkName })), (input.Session !== undefined &&\n        input.Session !== null && { Session: serializeAws_restJson1Session(input.Session, context) })), (input.Timestamp !== undefined && input.Timestamp !== null && { Timestamp: input.Timestamp }));\n};\nvar serializeAws_restJson1EventCondition = function (input, context) {\n    return __assign(__assign({}, (input.Dimensions !== undefined &&\n        input.Dimensions !== null && { Dimensions: serializeAws_restJson1EventDimensions(input.Dimensions, context) })), (input.MessageActivity !== undefined &&\n        input.MessageActivity !== null && { MessageActivity: input.MessageActivity }));\n};\nvar serializeAws_restJson1EventDimensions = function (input, context) {\n    return __assign(__assign(__assign({}, (input.Attributes !== undefined &&\n        input.Attributes !== null && {\n        Attributes: serializeAws_restJson1MapOfAttributeDimension(input.Attributes, context),\n    })), (input.EventType !== undefined &&\n        input.EventType !== null && { EventType: serializeAws_restJson1SetDimension(input.EventType, context) })), (input.Metrics !== undefined &&\n        input.Metrics !== null && { Metrics: serializeAws_restJson1MapOfMetricDimension(input.Metrics, context) }));\n};\nvar serializeAws_restJson1EventFilter = function (input, context) {\n    return __assign(__assign({}, (input.Dimensions !== undefined &&\n        input.Dimensions !== null && { Dimensions: serializeAws_restJson1EventDimensions(input.Dimensions, context) })), (input.FilterType !== undefined && input.FilterType !== null && { FilterType: input.FilterType }));\n};\nvar serializeAws_restJson1EventsBatch = function (input, context) {\n    return __assign(__assign({}, (input.Endpoint !== undefined &&\n        input.Endpoint !== null && { Endpoint: serializeAws_restJson1PublicEndpoint(input.Endpoint, context) })), (input.Events !== undefined &&\n        input.Events !== null && { Events: serializeAws_restJson1MapOfEvent(input.Events, context) }));\n};\nvar serializeAws_restJson1EventsRequest = function (input, context) {\n    return __assign({}, (input.BatchItem !== undefined &&\n        input.BatchItem !== null && { BatchItem: serializeAws_restJson1MapOfEventsBatch(input.BatchItem, context) }));\n};\nvar serializeAws_restJson1EventStartCondition = function (input, context) {\n    return __assign(__assign({}, (input.EventFilter !== undefined &&\n        input.EventFilter !== null && { EventFilter: serializeAws_restJson1EventFilter(input.EventFilter, context) })), (input.SegmentId !== undefined && input.SegmentId !== null && { SegmentId: input.SegmentId }));\n};\nvar serializeAws_restJson1ExportJobRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.RoleArn !== undefined && input.RoleArn !== null && { RoleArn: input.RoleArn })), (input.S3UrlPrefix !== undefined && input.S3UrlPrefix !== null && { S3UrlPrefix: input.S3UrlPrefix })), (input.SegmentId !== undefined && input.SegmentId !== null && { SegmentId: input.SegmentId })), (input.SegmentVersion !== undefined &&\n        input.SegmentVersion !== null && { SegmentVersion: input.SegmentVersion }));\n};\nvar serializeAws_restJson1GCMChannelRequest = function (input, context) {\n    return __assign(__assign({}, (input.ApiKey !== undefined && input.ApiKey !== null && { ApiKey: input.ApiKey })), (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled }));\n};\nvar serializeAws_restJson1GCMMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.CollapseKey !== undefined && input.CollapseKey !== null && { CollapseKey: input.CollapseKey })), (input.Data !== undefined &&\n        input.Data !== null && { Data: serializeAws_restJson1MapOf__string(input.Data, context) })), (input.IconReference !== undefined && input.IconReference !== null && { IconReference: input.IconReference })), (input.ImageIconUrl !== undefined && input.ImageIconUrl !== null && { ImageIconUrl: input.ImageIconUrl })), (input.ImageUrl !== undefined && input.ImageUrl !== null && { ImageUrl: input.ImageUrl })), (input.Priority !== undefined && input.Priority !== null && { Priority: input.Priority })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.RestrictedPackageName !== undefined &&\n        input.RestrictedPackageName !== null && { RestrictedPackageName: input.RestrictedPackageName })), (input.SilentPush !== undefined && input.SilentPush !== null && { SilentPush: input.SilentPush })), (input.SmallImageIconUrl !== undefined &&\n        input.SmallImageIconUrl !== null && { SmallImageIconUrl: input.SmallImageIconUrl })), (input.Sound !== undefined && input.Sound !== null && { Sound: input.Sound })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.TimeToLive !== undefined && input.TimeToLive !== null && { TimeToLive: input.TimeToLive })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1GPSCoordinates = function (input, context) {\n    return __assign(__assign({}, (input.Latitude !== undefined && input.Latitude !== null && { Latitude: input.Latitude })), (input.Longitude !== undefined && input.Longitude !== null && { Longitude: input.Longitude }));\n};\nvar serializeAws_restJson1GPSPointDimension = function (input, context) {\n    return __assign(__assign({}, (input.Coordinates !== undefined &&\n        input.Coordinates !== null && { Coordinates: serializeAws_restJson1GPSCoordinates(input.Coordinates, context) })), (input.RangeInKilometers !== undefined &&\n        input.RangeInKilometers !== null && { RangeInKilometers: input.RangeInKilometers }));\n};\nvar serializeAws_restJson1HoldoutActivity = function (input, context) {\n    return __assign(__assign({}, (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.Percentage !== undefined && input.Percentage !== null && { Percentage: input.Percentage }));\n};\nvar serializeAws_restJson1ImportJobRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.DefineSegment !== undefined && input.DefineSegment !== null && { DefineSegment: input.DefineSegment })), (input.ExternalId !== undefined && input.ExternalId !== null && { ExternalId: input.ExternalId })), (input.Format !== undefined && input.Format !== null && { Format: input.Format })), (input.RegisterEndpoints !== undefined &&\n        input.RegisterEndpoints !== null && { RegisterEndpoints: input.RegisterEndpoints })), (input.RoleArn !== undefined && input.RoleArn !== null && { RoleArn: input.RoleArn })), (input.S3Url !== undefined && input.S3Url !== null && { S3Url: input.S3Url })), (input.SegmentId !== undefined && input.SegmentId !== null && { SegmentId: input.SegmentId })), (input.SegmentName !== undefined && input.SegmentName !== null && { SegmentName: input.SegmentName }));\n};\nvar serializeAws_restJson1JourneyCustomMessage = function (input, context) {\n    return __assign({}, (input.Data !== undefined && input.Data !== null && { Data: input.Data }));\n};\nvar serializeAws_restJson1JourneyEmailMessage = function (input, context) {\n    return __assign({}, (input.FromAddress !== undefined && input.FromAddress !== null && { FromAddress: input.FromAddress }));\n};\nvar serializeAws_restJson1JourneyLimits = function (input, context) {\n    return __assign(__assign(__assign({}, (input.DailyCap !== undefined && input.DailyCap !== null && { DailyCap: input.DailyCap })), (input.EndpointReentryCap !== undefined &&\n        input.EndpointReentryCap !== null && { EndpointReentryCap: input.EndpointReentryCap })), (input.MessagesPerSecond !== undefined &&\n        input.MessagesPerSecond !== null && { MessagesPerSecond: input.MessagesPerSecond }));\n};\nvar serializeAws_restJson1JourneyPushMessage = function (input, context) {\n    return __assign({}, (input.TimeToLive !== undefined && input.TimeToLive !== null && { TimeToLive: input.TimeToLive }));\n};\nvar serializeAws_restJson1JourneySchedule = function (input, context) {\n    return __assign(__assign(__assign({}, (input.EndTime !== undefined &&\n        input.EndTime !== null && { EndTime: input.EndTime.toISOString().split(\".\")[0] + \"Z\" })), (input.StartTime !== undefined &&\n        input.StartTime !== null && { StartTime: input.StartTime.toISOString().split(\".\")[0] + \"Z\" })), (input.Timezone !== undefined && input.Timezone !== null && { Timezone: input.Timezone }));\n};\nvar serializeAws_restJson1JourneySMSMessage = function (input, context) {\n    return __assign(__assign({}, (input.MessageType !== undefined && input.MessageType !== null && { MessageType: input.MessageType })), (input.SenderId !== undefined && input.SenderId !== null && { SenderId: input.SenderId }));\n};\nvar serializeAws_restJson1JourneyStateRequest = function (input, context) {\n    return __assign({}, (input.State !== undefined && input.State !== null && { State: input.State }));\n};\nvar serializeAws_restJson1ListOf__EndpointTypesElement = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return entry;\n    });\n};\nvar serializeAws_restJson1ListOf__string = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return entry;\n    });\n};\nvar serializeAws_restJson1ListOfEndpointBatchItem = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1EndpointBatchItem(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfMultiConditionalBranch = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1MultiConditionalBranch(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfRandomSplitEntry = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1RandomSplitEntry(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfSegmentDimensions = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1SegmentDimensions(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfSegmentGroup = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1SegmentGroup(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfSegmentReference = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1SegmentReference(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfSimpleCondition = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1SimpleCondition(entry, context);\n    });\n};\nvar serializeAws_restJson1ListOfWriteTreatmentResource = function (input, context) {\n    return input\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return serializeAws_restJson1WriteTreatmentResource(entry, context);\n    });\n};\nvar serializeAws_restJson1MapOf__double = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOf__string = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfActivity = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1Activity(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfAddressConfiguration = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1AddressConfiguration(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfAttributeDimension = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1AttributeDimension(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfEndpointSendConfiguration = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1EndpointSendConfiguration(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfEvent = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1Event(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfEventsBatch = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1EventsBatch(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfListOf__string = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1ListOf__string(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1MapOfMetricDimension = function (input, context) {\n    return Object.entries(input).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_restJson1MetricDimension(value, context), _b));\n    }, {});\n};\nvar serializeAws_restJson1Message = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Action !== undefined && input.Action !== null && { Action: input.Action })), (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.ImageIconUrl !== undefined && input.ImageIconUrl !== null && { ImageIconUrl: input.ImageIconUrl })), (input.ImageSmallIconUrl !== undefined &&\n        input.ImageSmallIconUrl !== null && { ImageSmallIconUrl: input.ImageSmallIconUrl })), (input.ImageUrl !== undefined && input.ImageUrl !== null && { ImageUrl: input.ImageUrl })), (input.JsonBody !== undefined && input.JsonBody !== null && { JsonBody: input.JsonBody })), (input.MediaUrl !== undefined && input.MediaUrl !== null && { MediaUrl: input.MediaUrl })), (input.RawContent !== undefined && input.RawContent !== null && { RawContent: input.RawContent })), (input.SilentPush !== undefined && input.SilentPush !== null && { SilentPush: input.SilentPush })), (input.TimeToLive !== undefined && input.TimeToLive !== null && { TimeToLive: input.TimeToLive })), (input.Title !== undefined && input.Title !== null && { Title: input.Title })), (input.Url !== undefined && input.Url !== null && { Url: input.Url }));\n};\nvar serializeAws_restJson1MessageConfiguration = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.ADMMessage !== undefined &&\n        input.ADMMessage !== null && { ADMMessage: serializeAws_restJson1Message(input.ADMMessage, context) })), (input.APNSMessage !== undefined &&\n        input.APNSMessage !== null && { APNSMessage: serializeAws_restJson1Message(input.APNSMessage, context) })), (input.BaiduMessage !== undefined &&\n        input.BaiduMessage !== null && { BaiduMessage: serializeAws_restJson1Message(input.BaiduMessage, context) })), (input.CustomMessage !== undefined &&\n        input.CustomMessage !== null && {\n        CustomMessage: serializeAws_restJson1CampaignCustomMessage(input.CustomMessage, context),\n    })), (input.DefaultMessage !== undefined &&\n        input.DefaultMessage !== null && {\n        DefaultMessage: serializeAws_restJson1Message(input.DefaultMessage, context),\n    })), (input.EmailMessage !== undefined &&\n        input.EmailMessage !== null && {\n        EmailMessage: serializeAws_restJson1CampaignEmailMessage(input.EmailMessage, context),\n    })), (input.GCMMessage !== undefined &&\n        input.GCMMessage !== null && { GCMMessage: serializeAws_restJson1Message(input.GCMMessage, context) })), (input.SMSMessage !== undefined &&\n        input.SMSMessage !== null && { SMSMessage: serializeAws_restJson1CampaignSmsMessage(input.SMSMessage, context) }));\n};\nvar serializeAws_restJson1MessageRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.Addresses !== undefined &&\n        input.Addresses !== null && {\n        Addresses: serializeAws_restJson1MapOfAddressConfiguration(input.Addresses, context),\n    })), (input.Context !== undefined &&\n        input.Context !== null && { Context: serializeAws_restJson1MapOf__string(input.Context, context) })), (input.Endpoints !== undefined &&\n        input.Endpoints !== null && {\n        Endpoints: serializeAws_restJson1MapOfEndpointSendConfiguration(input.Endpoints, context),\n    })), (input.MessageConfiguration !== undefined &&\n        input.MessageConfiguration !== null && {\n        MessageConfiguration: serializeAws_restJson1DirectMessageConfiguration(input.MessageConfiguration, context),\n    })), (input.TemplateConfiguration !== undefined &&\n        input.TemplateConfiguration !== null && {\n        TemplateConfiguration: serializeAws_restJson1TemplateConfiguration(input.TemplateConfiguration, context),\n    })), (input.TraceId !== undefined && input.TraceId !== null && { TraceId: input.TraceId }));\n};\nvar serializeAws_restJson1MetricDimension = function (input, context) {\n    return __assign(__assign({}, (input.ComparisonOperator !== undefined &&\n        input.ComparisonOperator !== null && { ComparisonOperator: input.ComparisonOperator })), (input.Value !== undefined && input.Value !== null && { Value: input.Value }));\n};\nvar serializeAws_restJson1MultiConditionalBranch = function (input, context) {\n    return __assign(__assign({}, (input.Condition !== undefined &&\n        input.Condition !== null && { Condition: serializeAws_restJson1SimpleCondition(input.Condition, context) })), (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity }));\n};\nvar serializeAws_restJson1MultiConditionalSplitActivity = function (input, context) {\n    return __assign(__assign(__assign({}, (input.Branches !== undefined &&\n        input.Branches !== null && {\n        Branches: serializeAws_restJson1ListOfMultiConditionalBranch(input.Branches, context),\n    })), (input.DefaultActivity !== undefined &&\n        input.DefaultActivity !== null && { DefaultActivity: input.DefaultActivity })), (input.EvaluationWaitTime !== undefined &&\n        input.EvaluationWaitTime !== null && {\n        EvaluationWaitTime: serializeAws_restJson1WaitTime(input.EvaluationWaitTime, context),\n    }));\n};\nvar serializeAws_restJson1NumberValidateRequest = function (input, context) {\n    return __assign(__assign({}, (input.IsoCountryCode !== undefined &&\n        input.IsoCountryCode !== null && { IsoCountryCode: input.IsoCountryCode })), (input.PhoneNumber !== undefined && input.PhoneNumber !== null && { PhoneNumber: input.PhoneNumber }));\n};\nvar serializeAws_restJson1PublicEndpoint = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Address !== undefined && input.Address !== null && { Address: input.Address })), (input.Attributes !== undefined &&\n        input.Attributes !== null && {\n        Attributes: serializeAws_restJson1MapOfListOf__string(input.Attributes, context),\n    })), (input.ChannelType !== undefined && input.ChannelType !== null && { ChannelType: input.ChannelType })), (input.Demographic !== undefined &&\n        input.Demographic !== null && {\n        Demographic: serializeAws_restJson1EndpointDemographic(input.Demographic, context),\n    })), (input.EffectiveDate !== undefined && input.EffectiveDate !== null && { EffectiveDate: input.EffectiveDate })), (input.EndpointStatus !== undefined &&\n        input.EndpointStatus !== null && { EndpointStatus: input.EndpointStatus })), (input.Location !== undefined &&\n        input.Location !== null && { Location: serializeAws_restJson1EndpointLocation(input.Location, context) })), (input.Metrics !== undefined &&\n        input.Metrics !== null && { Metrics: serializeAws_restJson1MapOf__double(input.Metrics, context) })), (input.OptOut !== undefined && input.OptOut !== null && { OptOut: input.OptOut })), (input.RequestId !== undefined && input.RequestId !== null && { RequestId: input.RequestId })), (input.User !== undefined &&\n        input.User !== null && { User: serializeAws_restJson1EndpointUser(input.User, context) }));\n};\nvar serializeAws_restJson1PushMessageActivity = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.MessageConfig !== undefined &&\n        input.MessageConfig !== null && {\n        MessageConfig: serializeAws_restJson1JourneyPushMessage(input.MessageConfig, context),\n    })), (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.TemplateName !== undefined && input.TemplateName !== null && { TemplateName: input.TemplateName })), (input.TemplateVersion !== undefined &&\n        input.TemplateVersion !== null && { TemplateVersion: input.TemplateVersion }));\n};\nvar serializeAws_restJson1PushNotificationTemplateRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.ADM !== undefined &&\n        input.ADM !== null && { ADM: serializeAws_restJson1AndroidPushNotificationTemplate(input.ADM, context) })), (input.APNS !== undefined &&\n        input.APNS !== null && { APNS: serializeAws_restJson1APNSPushNotificationTemplate(input.APNS, context) })), (input.Baidu !== undefined &&\n        input.Baidu !== null && { Baidu: serializeAws_restJson1AndroidPushNotificationTemplate(input.Baidu, context) })), (input.Default !== undefined &&\n        input.Default !== null && {\n        Default: serializeAws_restJson1DefaultPushNotificationTemplate(input.Default, context),\n    })), (input.DefaultSubstitutions !== undefined &&\n        input.DefaultSubstitutions !== null && { DefaultSubstitutions: input.DefaultSubstitutions })), (input.GCM !== undefined &&\n        input.GCM !== null && { GCM: serializeAws_restJson1AndroidPushNotificationTemplate(input.GCM, context) })), (input.RecommenderId !== undefined && input.RecommenderId !== null && { RecommenderId: input.RecommenderId })), (input.TemplateDescription !== undefined &&\n        input.TemplateDescription !== null && { TemplateDescription: input.TemplateDescription })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1QuietTime = function (input, context) {\n    return __assign(__assign({}, (input.End !== undefined && input.End !== null && { End: input.End })), (input.Start !== undefined && input.Start !== null && { Start: input.Start }));\n};\nvar serializeAws_restJson1RandomSplitActivity = function (input, context) {\n    return __assign({}, (input.Branches !== undefined &&\n        input.Branches !== null && { Branches: serializeAws_restJson1ListOfRandomSplitEntry(input.Branches, context) }));\n};\nvar serializeAws_restJson1RandomSplitEntry = function (input, context) {\n    return __assign(__assign({}, (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.Percentage !== undefined && input.Percentage !== null && { Percentage: input.Percentage }));\n};\nvar serializeAws_restJson1RawEmail = function (input, context) {\n    return __assign({}, (input.Data !== undefined && input.Data !== null && { Data: context.base64Encoder(input.Data) }));\n};\nvar serializeAws_restJson1RecencyDimension = function (input, context) {\n    return __assign(__assign({}, (input.Duration !== undefined && input.Duration !== null && { Duration: input.Duration })), (input.RecencyType !== undefined && input.RecencyType !== null && { RecencyType: input.RecencyType }));\n};\nvar serializeAws_restJson1Schedule = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.EndTime !== undefined && input.EndTime !== null && { EndTime: input.EndTime })), (input.EventFilter !== undefined &&\n        input.EventFilter !== null && {\n        EventFilter: serializeAws_restJson1CampaignEventFilter(input.EventFilter, context),\n    })), (input.Frequency !== undefined && input.Frequency !== null && { Frequency: input.Frequency })), (input.IsLocalTime !== undefined && input.IsLocalTime !== null && { IsLocalTime: input.IsLocalTime })), (input.QuietTime !== undefined &&\n        input.QuietTime !== null && { QuietTime: serializeAws_restJson1QuietTime(input.QuietTime, context) })), (input.StartTime !== undefined && input.StartTime !== null && { StartTime: input.StartTime })), (input.Timezone !== undefined && input.Timezone !== null && { Timezone: input.Timezone }));\n};\nvar serializeAws_restJson1SegmentBehaviors = function (input, context) {\n    return __assign({}, (input.Recency !== undefined &&\n        input.Recency !== null && { Recency: serializeAws_restJson1RecencyDimension(input.Recency, context) }));\n};\nvar serializeAws_restJson1SegmentCondition = function (input, context) {\n    return __assign({}, (input.SegmentId !== undefined && input.SegmentId !== null && { SegmentId: input.SegmentId }));\n};\nvar serializeAws_restJson1SegmentDemographics = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.AppVersion !== undefined &&\n        input.AppVersion !== null && { AppVersion: serializeAws_restJson1SetDimension(input.AppVersion, context) })), (input.Channel !== undefined &&\n        input.Channel !== null && { Channel: serializeAws_restJson1SetDimension(input.Channel, context) })), (input.DeviceType !== undefined &&\n        input.DeviceType !== null && { DeviceType: serializeAws_restJson1SetDimension(input.DeviceType, context) })), (input.Make !== undefined &&\n        input.Make !== null && { Make: serializeAws_restJson1SetDimension(input.Make, context) })), (input.Model !== undefined &&\n        input.Model !== null && { Model: serializeAws_restJson1SetDimension(input.Model, context) })), (input.Platform !== undefined &&\n        input.Platform !== null && { Platform: serializeAws_restJson1SetDimension(input.Platform, context) }));\n};\nvar serializeAws_restJson1SegmentDimensions = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.Attributes !== undefined &&\n        input.Attributes !== null && {\n        Attributes: serializeAws_restJson1MapOfAttributeDimension(input.Attributes, context),\n    })), (input.Behavior !== undefined &&\n        input.Behavior !== null && { Behavior: serializeAws_restJson1SegmentBehaviors(input.Behavior, context) })), (input.Demographic !== undefined &&\n        input.Demographic !== null && {\n        Demographic: serializeAws_restJson1SegmentDemographics(input.Demographic, context),\n    })), (input.Location !== undefined &&\n        input.Location !== null && { Location: serializeAws_restJson1SegmentLocation(input.Location, context) })), (input.Metrics !== undefined &&\n        input.Metrics !== null && { Metrics: serializeAws_restJson1MapOfMetricDimension(input.Metrics, context) })), (input.UserAttributes !== undefined &&\n        input.UserAttributes !== null && {\n        UserAttributes: serializeAws_restJson1MapOfAttributeDimension(input.UserAttributes, context),\n    }));\n};\nvar serializeAws_restJson1SegmentGroup = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.Dimensions !== undefined &&\n        input.Dimensions !== null && {\n        Dimensions: serializeAws_restJson1ListOfSegmentDimensions(input.Dimensions, context),\n    })), (input.SourceSegments !== undefined &&\n        input.SourceSegments !== null && {\n        SourceSegments: serializeAws_restJson1ListOfSegmentReference(input.SourceSegments, context),\n    })), (input.SourceType !== undefined && input.SourceType !== null && { SourceType: input.SourceType })), (input.Type !== undefined && input.Type !== null && { Type: input.Type }));\n};\nvar serializeAws_restJson1SegmentGroupList = function (input, context) {\n    return __assign(__assign({}, (input.Groups !== undefined &&\n        input.Groups !== null && { Groups: serializeAws_restJson1ListOfSegmentGroup(input.Groups, context) })), (input.Include !== undefined && input.Include !== null && { Include: input.Include }));\n};\nvar serializeAws_restJson1SegmentLocation = function (input, context) {\n    return __assign(__assign({}, (input.Country !== undefined &&\n        input.Country !== null && { Country: serializeAws_restJson1SetDimension(input.Country, context) })), (input.GPSPoint !== undefined &&\n        input.GPSPoint !== null && { GPSPoint: serializeAws_restJson1GPSPointDimension(input.GPSPoint, context) }));\n};\nvar serializeAws_restJson1SegmentReference = function (input, context) {\n    return __assign(__assign({}, (input.Id !== undefined && input.Id !== null && { Id: input.Id })), (input.Version !== undefined && input.Version !== null && { Version: input.Version }));\n};\nvar serializeAws_restJson1SendUsersMessageRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.Context !== undefined &&\n        input.Context !== null && { Context: serializeAws_restJson1MapOf__string(input.Context, context) })), (input.MessageConfiguration !== undefined &&\n        input.MessageConfiguration !== null && {\n        MessageConfiguration: serializeAws_restJson1DirectMessageConfiguration(input.MessageConfiguration, context),\n    })), (input.TemplateConfiguration !== undefined &&\n        input.TemplateConfiguration !== null && {\n        TemplateConfiguration: serializeAws_restJson1TemplateConfiguration(input.TemplateConfiguration, context),\n    })), (input.TraceId !== undefined && input.TraceId !== null && { TraceId: input.TraceId })), (input.Users !== undefined &&\n        input.Users !== null && { Users: serializeAws_restJson1MapOfEndpointSendConfiguration(input.Users, context) }));\n};\nvar serializeAws_restJson1Session = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.Duration !== undefined && input.Duration !== null && { Duration: input.Duration })), (input.Id !== undefined && input.Id !== null && { Id: input.Id })), (input.StartTimestamp !== undefined &&\n        input.StartTimestamp !== null && { StartTimestamp: input.StartTimestamp })), (input.StopTimestamp !== undefined && input.StopTimestamp !== null && { StopTimestamp: input.StopTimestamp }));\n};\nvar serializeAws_restJson1SetDimension = function (input, context) {\n    return __assign(__assign({}, (input.DimensionType !== undefined && input.DimensionType !== null && { DimensionType: input.DimensionType })), (input.Values !== undefined &&\n        input.Values !== null && { Values: serializeAws_restJson1ListOf__string(input.Values, context) }));\n};\nvar serializeAws_restJson1SimpleCondition = function (input, context) {\n    return __assign(__assign(__assign({}, (input.EventCondition !== undefined &&\n        input.EventCondition !== null && {\n        EventCondition: serializeAws_restJson1EventCondition(input.EventCondition, context),\n    })), (input.SegmentCondition !== undefined &&\n        input.SegmentCondition !== null && {\n        SegmentCondition: serializeAws_restJson1SegmentCondition(input.SegmentCondition, context),\n    })), (input.SegmentDimensions !== undefined &&\n        input.SegmentDimensions !== null && {\n        segmentDimensions: serializeAws_restJson1SegmentDimensions(input.SegmentDimensions, context),\n    }));\n};\nvar serializeAws_restJson1SimpleEmail = function (input, context) {\n    return __assign(__assign(__assign({}, (input.HtmlPart !== undefined &&\n        input.HtmlPart !== null && { HtmlPart: serializeAws_restJson1SimpleEmailPart(input.HtmlPart, context) })), (input.Subject !== undefined &&\n        input.Subject !== null && { Subject: serializeAws_restJson1SimpleEmailPart(input.Subject, context) })), (input.TextPart !== undefined &&\n        input.TextPart !== null && { TextPart: serializeAws_restJson1SimpleEmailPart(input.TextPart, context) }));\n};\nvar serializeAws_restJson1SimpleEmailPart = function (input, context) {\n    return __assign(__assign({}, (input.Charset !== undefined && input.Charset !== null && { Charset: input.Charset })), (input.Data !== undefined && input.Data !== null && { Data: input.Data }));\n};\nvar serializeAws_restJson1SMSChannelRequest = function (input, context) {\n    return __assign(__assign(__assign({}, (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled })), (input.SenderId !== undefined && input.SenderId !== null && { SenderId: input.SenderId })), (input.ShortCode !== undefined && input.ShortCode !== null && { ShortCode: input.ShortCode }));\n};\nvar serializeAws_restJson1SMSMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.Keyword !== undefined && input.Keyword !== null && { Keyword: input.Keyword })), (input.MediaUrl !== undefined && input.MediaUrl !== null && { MediaUrl: input.MediaUrl })), (input.MessageType !== undefined && input.MessageType !== null && { MessageType: input.MessageType })), (input.OriginationNumber !== undefined &&\n        input.OriginationNumber !== null && { OriginationNumber: input.OriginationNumber })), (input.SenderId !== undefined && input.SenderId !== null && { SenderId: input.SenderId })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    }));\n};\nvar serializeAws_restJson1SMSMessageActivity = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.MessageConfig !== undefined &&\n        input.MessageConfig !== null && {\n        MessageConfig: serializeAws_restJson1JourneySMSMessage(input.MessageConfig, context),\n    })), (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.TemplateName !== undefined && input.TemplateName !== null && { TemplateName: input.TemplateName })), (input.TemplateVersion !== undefined &&\n        input.TemplateVersion !== null && { TemplateVersion: input.TemplateVersion }));\n};\nvar serializeAws_restJson1SMSTemplateRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.DefaultSubstitutions !== undefined &&\n        input.DefaultSubstitutions !== null && { DefaultSubstitutions: input.DefaultSubstitutions })), (input.RecommenderId !== undefined && input.RecommenderId !== null && { RecommenderId: input.RecommenderId })), (input.TemplateDescription !== undefined &&\n        input.TemplateDescription !== null && { TemplateDescription: input.TemplateDescription })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1StartCondition = function (input, context) {\n    return __assign(__assign(__assign({}, (input.Description !== undefined && input.Description !== null && { Description: input.Description })), (input.EventStartCondition !== undefined &&\n        input.EventStartCondition !== null && {\n        EventStartCondition: serializeAws_restJson1EventStartCondition(input.EventStartCondition, context),\n    })), (input.SegmentStartCondition !== undefined &&\n        input.SegmentStartCondition !== null && {\n        SegmentStartCondition: serializeAws_restJson1SegmentCondition(input.SegmentStartCondition, context),\n    }));\n};\nvar serializeAws_restJson1TagsModel = function (input, context) {\n    return __assign({}, (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1Template = function (input, context) {\n    return __assign(__assign({}, (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.Version !== undefined && input.Version !== null && { Version: input.Version }));\n};\nvar serializeAws_restJson1TemplateActiveVersionRequest = function (input, context) {\n    return __assign({}, (input.Version !== undefined && input.Version !== null && { Version: input.Version }));\n};\nvar serializeAws_restJson1TemplateConfiguration = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.EmailTemplate !== undefined &&\n        input.EmailTemplate !== null && { EmailTemplate: serializeAws_restJson1Template(input.EmailTemplate, context) })), (input.PushTemplate !== undefined &&\n        input.PushTemplate !== null && { PushTemplate: serializeAws_restJson1Template(input.PushTemplate, context) })), (input.SMSTemplate !== undefined &&\n        input.SMSTemplate !== null && { SMSTemplate: serializeAws_restJson1Template(input.SMSTemplate, context) })), (input.VoiceTemplate !== undefined &&\n        input.VoiceTemplate !== null && { VoiceTemplate: serializeAws_restJson1Template(input.VoiceTemplate, context) }));\n};\nvar serializeAws_restJson1UpdateAttributesRequest = function (input, context) {\n    return __assign({}, (input.Blacklist !== undefined &&\n        input.Blacklist !== null && { Blacklist: serializeAws_restJson1ListOf__string(input.Blacklist, context) }));\n};\nvar serializeAws_restJson1UpdateRecommenderConfigurationShape = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Attributes !== undefined &&\n        input.Attributes !== null && { Attributes: serializeAws_restJson1MapOf__string(input.Attributes, context) })), (input.Description !== undefined && input.Description !== null && { Description: input.Description })), (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.RecommendationProviderIdType !== undefined &&\n        input.RecommendationProviderIdType !== null && {\n        RecommendationProviderIdType: input.RecommendationProviderIdType,\n    })), (input.RecommendationProviderRoleArn !== undefined &&\n        input.RecommendationProviderRoleArn !== null && {\n        RecommendationProviderRoleArn: input.RecommendationProviderRoleArn,\n    })), (input.RecommendationProviderUri !== undefined &&\n        input.RecommendationProviderUri !== null && { RecommendationProviderUri: input.RecommendationProviderUri })), (input.RecommendationTransformerUri !== undefined &&\n        input.RecommendationTransformerUri !== null && {\n        RecommendationTransformerUri: input.RecommendationTransformerUri,\n    })), (input.RecommendationsDisplayName !== undefined &&\n        input.RecommendationsDisplayName !== null && { RecommendationsDisplayName: input.RecommendationsDisplayName })), (input.RecommendationsPerMessage !== undefined &&\n        input.RecommendationsPerMessage !== null && { RecommendationsPerMessage: input.RecommendationsPerMessage }));\n};\nvar serializeAws_restJson1VoiceChannelRequest = function (input, context) {\n    return __assign({}, (input.Enabled !== undefined && input.Enabled !== null && { Enabled: input.Enabled }));\n};\nvar serializeAws_restJson1VoiceMessage = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.LanguageCode !== undefined && input.LanguageCode !== null && { LanguageCode: input.LanguageCode })), (input.OriginationNumber !== undefined &&\n        input.OriginationNumber !== null && { OriginationNumber: input.OriginationNumber })), (input.Substitutions !== undefined &&\n        input.Substitutions !== null && {\n        Substitutions: serializeAws_restJson1MapOfListOf__string(input.Substitutions, context),\n    })), (input.VoiceId !== undefined && input.VoiceId !== null && { VoiceId: input.VoiceId }));\n};\nvar serializeAws_restJson1VoiceTemplateRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign({}, (input.Body !== undefined && input.Body !== null && { Body: input.Body })), (input.DefaultSubstitutions !== undefined &&\n        input.DefaultSubstitutions !== null && { DefaultSubstitutions: input.DefaultSubstitutions })), (input.LanguageCode !== undefined && input.LanguageCode !== null && { LanguageCode: input.LanguageCode })), (input.TemplateDescription !== undefined &&\n        input.TemplateDescription !== null && { TemplateDescription: input.TemplateDescription })), (input.VoiceId !== undefined && input.VoiceId !== null && { VoiceId: input.VoiceId })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1WaitActivity = function (input, context) {\n    return __assign(__assign({}, (input.NextActivity !== undefined && input.NextActivity !== null && { NextActivity: input.NextActivity })), (input.WaitTime !== undefined &&\n        input.WaitTime !== null && { WaitTime: serializeAws_restJson1WaitTime(input.WaitTime, context) }));\n};\nvar serializeAws_restJson1WaitTime = function (input, context) {\n    return __assign(__assign({}, (input.WaitFor !== undefined && input.WaitFor !== null && { WaitFor: input.WaitFor })), (input.WaitUntil !== undefined && input.WaitUntil !== null && { WaitUntil: input.WaitUntil }));\n};\nvar serializeAws_restJson1WriteApplicationSettingsRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign({}, (input.CampaignHook !== undefined &&\n        input.CampaignHook !== null && { CampaignHook: serializeAws_restJson1CampaignHook(input.CampaignHook, context) })), (input.CloudWatchMetricsEnabled !== undefined &&\n        input.CloudWatchMetricsEnabled !== null && { CloudWatchMetricsEnabled: input.CloudWatchMetricsEnabled })), (input.EventTaggingEnabled !== undefined &&\n        input.EventTaggingEnabled !== null && { EventTaggingEnabled: input.EventTaggingEnabled })), (input.Limits !== undefined &&\n        input.Limits !== null && { Limits: serializeAws_restJson1CampaignLimits(input.Limits, context) })), (input.QuietTime !== undefined &&\n        input.QuietTime !== null && { QuietTime: serializeAws_restJson1QuietTime(input.QuietTime, context) }));\n};\nvar serializeAws_restJson1WriteCampaignRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AdditionalTreatments !== undefined &&\n        input.AdditionalTreatments !== null && {\n        AdditionalTreatments: serializeAws_restJson1ListOfWriteTreatmentResource(input.AdditionalTreatments, context),\n    })), (input.CustomDeliveryConfiguration !== undefined &&\n        input.CustomDeliveryConfiguration !== null && {\n        CustomDeliveryConfiguration: serializeAws_restJson1CustomDeliveryConfiguration(input.CustomDeliveryConfiguration, context),\n    })), (input.Description !== undefined && input.Description !== null && { Description: input.Description })), (input.HoldoutPercent !== undefined &&\n        input.HoldoutPercent !== null && { HoldoutPercent: input.HoldoutPercent })), (input.Hook !== undefined &&\n        input.Hook !== null && { Hook: serializeAws_restJson1CampaignHook(input.Hook, context) })), (input.IsPaused !== undefined && input.IsPaused !== null && { IsPaused: input.IsPaused })), (input.Limits !== undefined &&\n        input.Limits !== null && { Limits: serializeAws_restJson1CampaignLimits(input.Limits, context) })), (input.MessageConfiguration !== undefined &&\n        input.MessageConfiguration !== null && {\n        MessageConfiguration: serializeAws_restJson1MessageConfiguration(input.MessageConfiguration, context),\n    })), (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.Schedule !== undefined &&\n        input.Schedule !== null && { Schedule: serializeAws_restJson1Schedule(input.Schedule, context) })), (input.SegmentId !== undefined && input.SegmentId !== null && { SegmentId: input.SegmentId })), (input.SegmentVersion !== undefined &&\n        input.SegmentVersion !== null && { SegmentVersion: input.SegmentVersion })), (input.TemplateConfiguration !== undefined &&\n        input.TemplateConfiguration !== null && {\n        TemplateConfiguration: serializeAws_restJson1TemplateConfiguration(input.TemplateConfiguration, context),\n    })), (input.TreatmentDescription !== undefined &&\n        input.TreatmentDescription !== null && { TreatmentDescription: input.TreatmentDescription })), (input.TreatmentName !== undefined && input.TreatmentName !== null && { TreatmentName: input.TreatmentName })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1WriteEventStream = function (input, context) {\n    return __assign(__assign({}, (input.DestinationStreamArn !== undefined &&\n        input.DestinationStreamArn !== null && { DestinationStreamArn: input.DestinationStreamArn })), (input.RoleArn !== undefined && input.RoleArn !== null && { RoleArn: input.RoleArn }));\n};\nvar serializeAws_restJson1WriteJourneyRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.Activities !== undefined &&\n        input.Activities !== null && { Activities: serializeAws_restJson1MapOfActivity(input.Activities, context) })), (input.CreationDate !== undefined && input.CreationDate !== null && { CreationDate: input.CreationDate })), (input.LastModifiedDate !== undefined &&\n        input.LastModifiedDate !== null && { LastModifiedDate: input.LastModifiedDate })), (input.Limits !== undefined &&\n        input.Limits !== null && { Limits: serializeAws_restJson1JourneyLimits(input.Limits, context) })), (input.LocalTime !== undefined && input.LocalTime !== null && { LocalTime: input.LocalTime })), (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.QuietTime !== undefined &&\n        input.QuietTime !== null && { QuietTime: serializeAws_restJson1QuietTime(input.QuietTime, context) })), (input.RefreshFrequency !== undefined &&\n        input.RefreshFrequency !== null && { RefreshFrequency: input.RefreshFrequency })), (input.Schedule !== undefined &&\n        input.Schedule !== null && { Schedule: serializeAws_restJson1JourneySchedule(input.Schedule, context) })), (input.StartActivity !== undefined && input.StartActivity !== null && { StartActivity: input.StartActivity })), (input.StartCondition !== undefined &&\n        input.StartCondition !== null && {\n        StartCondition: serializeAws_restJson1StartCondition(input.StartCondition, context),\n    })), (input.State !== undefined && input.State !== null && { State: input.State }));\n};\nvar serializeAws_restJson1WriteSegmentRequest = function (input, context) {\n    return __assign(__assign(__assign(__assign({}, (input.Dimensions !== undefined &&\n        input.Dimensions !== null && { Dimensions: serializeAws_restJson1SegmentDimensions(input.Dimensions, context) })), (input.Name !== undefined && input.Name !== null && { Name: input.Name })), (input.SegmentGroups !== undefined &&\n        input.SegmentGroups !== null && {\n        SegmentGroups: serializeAws_restJson1SegmentGroupList(input.SegmentGroups, context),\n    })), (input.tags !== undefined &&\n        input.tags !== null && { tags: serializeAws_restJson1MapOf__string(input.tags, context) }));\n};\nvar serializeAws_restJson1WriteTreatmentResource = function (input, context) {\n    return __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.CustomDeliveryConfiguration !== undefined &&\n        input.CustomDeliveryConfiguration !== null && {\n        CustomDeliveryConfiguration: serializeAws_restJson1CustomDeliveryConfiguration(input.CustomDeliveryConfiguration, context),\n    })), (input.MessageConfiguration !== undefined &&\n        input.MessageConfiguration !== null && {\n        MessageConfiguration: serializeAws_restJson1MessageConfiguration(input.MessageConfiguration, context),\n    })), (input.Schedule !== undefined &&\n        input.Schedule !== null && { Schedule: serializeAws_restJson1Schedule(input.Schedule, context) })), (input.SizePercent !== undefined && input.SizePercent !== null && { SizePercent: input.SizePercent })), (input.TemplateConfiguration !== undefined &&\n        input.TemplateConfiguration !== null && {\n        TemplateConfiguration: serializeAws_restJson1TemplateConfiguration(input.TemplateConfiguration, context),\n    })), (input.TreatmentDescription !== undefined &&\n        input.TreatmentDescription !== null && { TreatmentDescription: input.TreatmentDescription })), (input.TreatmentName !== undefined && input.TreatmentName !== null && { TreatmentName: input.TreatmentName }));\n};\nvar deserializeAws_restJson1ActivitiesResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfActivityResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1Activity = function (output, context) {\n    return {\n        CUSTOM: output.CUSTOM !== undefined && output.CUSTOM !== null\n            ? deserializeAws_restJson1CustomMessageActivity(output.CUSTOM, context)\n            : undefined,\n        ConditionalSplit: output.ConditionalSplit !== undefined && output.ConditionalSplit !== null\n            ? deserializeAws_restJson1ConditionalSplitActivity(output.ConditionalSplit, context)\n            : undefined,\n        Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined,\n        EMAIL: output.EMAIL !== undefined && output.EMAIL !== null\n            ? deserializeAws_restJson1EmailMessageActivity(output.EMAIL, context)\n            : undefined,\n        Holdout: output.Holdout !== undefined && output.Holdout !== null\n            ? deserializeAws_restJson1HoldoutActivity(output.Holdout, context)\n            : undefined,\n        MultiCondition: output.MultiCondition !== undefined && output.MultiCondition !== null\n            ? deserializeAws_restJson1MultiConditionalSplitActivity(output.MultiCondition, context)\n            : undefined,\n        PUSH: output.PUSH !== undefined && output.PUSH !== null\n            ? deserializeAws_restJson1PushMessageActivity(output.PUSH, context)\n            : undefined,\n        RandomSplit: output.RandomSplit !== undefined && output.RandomSplit !== null\n            ? deserializeAws_restJson1RandomSplitActivity(output.RandomSplit, context)\n            : undefined,\n        SMS: output.SMS !== undefined && output.SMS !== null\n            ? deserializeAws_restJson1SMSMessageActivity(output.SMS, context)\n            : undefined,\n        Wait: output.Wait !== undefined && output.Wait !== null\n            ? deserializeAws_restJson1WaitActivity(output.Wait, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1ActivityResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CampaignId: output.CampaignId !== undefined && output.CampaignId !== null ? output.CampaignId : undefined,\n        End: output.End !== undefined && output.End !== null ? output.End : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        Result: output.Result !== undefined && output.Result !== null ? output.Result : undefined,\n        ScheduledStart: output.ScheduledStart !== undefined && output.ScheduledStart !== null ? output.ScheduledStart : undefined,\n        Start: output.Start !== undefined && output.Start !== null ? output.Start : undefined,\n        State: output.State !== undefined && output.State !== null ? output.State : undefined,\n        SuccessfulEndpointCount: output.SuccessfulEndpointCount !== undefined && output.SuccessfulEndpointCount !== null\n            ? output.SuccessfulEndpointCount\n            : undefined,\n        TimezonesCompletedCount: output.TimezonesCompletedCount !== undefined && output.TimezonesCompletedCount !== null\n            ? output.TimezonesCompletedCount\n            : undefined,\n        TimezonesTotalCount: output.TimezonesTotalCount !== undefined && output.TimezonesTotalCount !== null\n            ? output.TimezonesTotalCount\n            : undefined,\n        TotalEndpointCount: output.TotalEndpointCount !== undefined && output.TotalEndpointCount !== null\n            ? output.TotalEndpointCount\n            : undefined,\n        TreatmentId: output.TreatmentId !== undefined && output.TreatmentId !== null ? output.TreatmentId : undefined,\n    };\n};\nvar deserializeAws_restJson1ADMChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1AndroidPushNotificationTemplate = function (output, context) {\n    return {\n        Action: output.Action !== undefined && output.Action !== null ? output.Action : undefined,\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        ImageIconUrl: output.ImageIconUrl !== undefined && output.ImageIconUrl !== null ? output.ImageIconUrl : undefined,\n        ImageUrl: output.ImageUrl !== undefined && output.ImageUrl !== null ? output.ImageUrl : undefined,\n        RawContent: output.RawContent !== undefined && output.RawContent !== null ? output.RawContent : undefined,\n        SmallImageIconUrl: output.SmallImageIconUrl !== undefined && output.SmallImageIconUrl !== null\n            ? output.SmallImageIconUrl\n            : undefined,\n        Sound: output.Sound !== undefined && output.Sound !== null ? output.Sound : undefined,\n        Title: output.Title !== undefined && output.Title !== null ? output.Title : undefined,\n        Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined,\n    };\n};\nvar deserializeAws_restJson1APNSChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultAuthenticationMethod: output.DefaultAuthenticationMethod !== undefined && output.DefaultAuthenticationMethod !== null\n            ? output.DefaultAuthenticationMethod\n            : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        HasTokenKey: output.HasTokenKey !== undefined && output.HasTokenKey !== null ? output.HasTokenKey : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1APNSPushNotificationTemplate = function (output, context) {\n    return {\n        Action: output.Action !== undefined && output.Action !== null ? output.Action : undefined,\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        MediaUrl: output.MediaUrl !== undefined && output.MediaUrl !== null ? output.MediaUrl : undefined,\n        RawContent: output.RawContent !== undefined && output.RawContent !== null ? output.RawContent : undefined,\n        Sound: output.Sound !== undefined && output.Sound !== null ? output.Sound : undefined,\n        Title: output.Title !== undefined && output.Title !== null ? output.Title : undefined,\n        Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined,\n    };\n};\nvar deserializeAws_restJson1APNSSandboxChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultAuthenticationMethod: output.DefaultAuthenticationMethod !== undefined && output.DefaultAuthenticationMethod !== null\n            ? output.DefaultAuthenticationMethod\n            : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        HasTokenKey: output.HasTokenKey !== undefined && output.HasTokenKey !== null ? output.HasTokenKey : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1APNSVoipChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultAuthenticationMethod: output.DefaultAuthenticationMethod !== undefined && output.DefaultAuthenticationMethod !== null\n            ? output.DefaultAuthenticationMethod\n            : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        HasTokenKey: output.HasTokenKey !== undefined && output.HasTokenKey !== null ? output.HasTokenKey : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1APNSVoipSandboxChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultAuthenticationMethod: output.DefaultAuthenticationMethod !== undefined && output.DefaultAuthenticationMethod !== null\n            ? output.DefaultAuthenticationMethod\n            : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        HasTokenKey: output.HasTokenKey !== undefined && output.HasTokenKey !== null ? output.HasTokenKey : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1ApplicationDateRangeKpiResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        EndTime: output.EndTime !== undefined && output.EndTime !== null ? new Date(output.EndTime) : undefined,\n        KpiName: output.KpiName !== undefined && output.KpiName !== null ? output.KpiName : undefined,\n        KpiResult: output.KpiResult !== undefined && output.KpiResult !== null\n            ? deserializeAws_restJson1BaseKpiResult(output.KpiResult, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n        StartTime: output.StartTime !== undefined && output.StartTime !== null ? new Date(output.StartTime) : undefined,\n    };\n};\nvar deserializeAws_restJson1ApplicationResponse = function (output, context) {\n    return {\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1ApplicationSettingsResource = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CampaignHook: output.CampaignHook !== undefined && output.CampaignHook !== null\n            ? deserializeAws_restJson1CampaignHook(output.CampaignHook, context)\n            : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Limits: output.Limits !== undefined && output.Limits !== null\n            ? deserializeAws_restJson1CampaignLimits(output.Limits, context)\n            : undefined,\n        QuietTime: output.QuietTime !== undefined && output.QuietTime !== null\n            ? deserializeAws_restJson1QuietTime(output.QuietTime, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1ApplicationsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfApplicationResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1AttributeDimension = function (output, context) {\n    return {\n        AttributeType: output.AttributeType !== undefined && output.AttributeType !== null ? output.AttributeType : undefined,\n        Values: output.Values !== undefined && output.Values !== null\n            ? deserializeAws_restJson1ListOf__string(output.Values, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1AttributesResource = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        AttributeType: output.AttributeType !== undefined && output.AttributeType !== null ? output.AttributeType : undefined,\n        Attributes: output.Attributes !== undefined && output.Attributes !== null\n            ? deserializeAws_restJson1ListOf__string(output.Attributes, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1BaiduChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Credential: output.Credential !== undefined && output.Credential !== null ? output.Credential : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1BaseKpiResult = function (output, context) {\n    return {\n        Rows: output.Rows !== undefined && output.Rows !== null\n            ? deserializeAws_restJson1ListOfResultRow(output.Rows, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignCustomMessage = function (output, context) {\n    return {\n        Data: output.Data !== undefined && output.Data !== null ? output.Data : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignDateRangeKpiResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CampaignId: output.CampaignId !== undefined && output.CampaignId !== null ? output.CampaignId : undefined,\n        EndTime: output.EndTime !== undefined && output.EndTime !== null ? new Date(output.EndTime) : undefined,\n        KpiName: output.KpiName !== undefined && output.KpiName !== null ? output.KpiName : undefined,\n        KpiResult: output.KpiResult !== undefined && output.KpiResult !== null\n            ? deserializeAws_restJson1BaseKpiResult(output.KpiResult, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n        StartTime: output.StartTime !== undefined && output.StartTime !== null ? new Date(output.StartTime) : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignEmailMessage = function (output, context) {\n    return {\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        FromAddress: output.FromAddress !== undefined && output.FromAddress !== null ? output.FromAddress : undefined,\n        HtmlBody: output.HtmlBody !== undefined && output.HtmlBody !== null ? output.HtmlBody : undefined,\n        Title: output.Title !== undefined && output.Title !== null ? output.Title : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignEventFilter = function (output, context) {\n    return {\n        Dimensions: output.Dimensions !== undefined && output.Dimensions !== null\n            ? deserializeAws_restJson1EventDimensions(output.Dimensions, context)\n            : undefined,\n        FilterType: output.FilterType !== undefined && output.FilterType !== null ? output.FilterType : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignHook = function (output, context) {\n    return {\n        LambdaFunctionName: output.LambdaFunctionName !== undefined && output.LambdaFunctionName !== null\n            ? output.LambdaFunctionName\n            : undefined,\n        Mode: output.Mode !== undefined && output.Mode !== null ? output.Mode : undefined,\n        WebUrl: output.WebUrl !== undefined && output.WebUrl !== null ? output.WebUrl : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignLimits = function (output, context) {\n    return {\n        Daily: output.Daily !== undefined && output.Daily !== null ? output.Daily : undefined,\n        MaximumDuration: output.MaximumDuration !== undefined && output.MaximumDuration !== null ? output.MaximumDuration : undefined,\n        MessagesPerSecond: output.MessagesPerSecond !== undefined && output.MessagesPerSecond !== null\n            ? output.MessagesPerSecond\n            : undefined,\n        Total: output.Total !== undefined && output.Total !== null ? output.Total : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignResponse = function (output, context) {\n    return {\n        AdditionalTreatments: output.AdditionalTreatments !== undefined && output.AdditionalTreatments !== null\n            ? deserializeAws_restJson1ListOfTreatmentResource(output.AdditionalTreatments, context)\n            : undefined,\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        CustomDeliveryConfiguration: output.CustomDeliveryConfiguration !== undefined && output.CustomDeliveryConfiguration !== null\n            ? deserializeAws_restJson1CustomDeliveryConfiguration(output.CustomDeliveryConfiguration, context)\n            : undefined,\n        DefaultState: output.DefaultState !== undefined && output.DefaultState !== null\n            ? deserializeAws_restJson1CampaignState(output.DefaultState, context)\n            : undefined,\n        Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined,\n        HoldoutPercent: output.HoldoutPercent !== undefined && output.HoldoutPercent !== null ? output.HoldoutPercent : undefined,\n        Hook: output.Hook !== undefined && output.Hook !== null\n            ? deserializeAws_restJson1CampaignHook(output.Hook, context)\n            : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsPaused: output.IsPaused !== undefined && output.IsPaused !== null ? output.IsPaused : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Limits: output.Limits !== undefined && output.Limits !== null\n            ? deserializeAws_restJson1CampaignLimits(output.Limits, context)\n            : undefined,\n        MessageConfiguration: output.MessageConfiguration !== undefined && output.MessageConfiguration !== null\n            ? deserializeAws_restJson1MessageConfiguration(output.MessageConfiguration, context)\n            : undefined,\n        Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n        Schedule: output.Schedule !== undefined && output.Schedule !== null\n            ? deserializeAws_restJson1Schedule(output.Schedule, context)\n            : undefined,\n        SegmentId: output.SegmentId !== undefined && output.SegmentId !== null ? output.SegmentId : undefined,\n        SegmentVersion: output.SegmentVersion !== undefined && output.SegmentVersion !== null ? output.SegmentVersion : undefined,\n        State: output.State !== undefined && output.State !== null\n            ? deserializeAws_restJson1CampaignState(output.State, context)\n            : undefined,\n        TemplateConfiguration: output.TemplateConfiguration !== undefined && output.TemplateConfiguration !== null\n            ? deserializeAws_restJson1TemplateConfiguration(output.TemplateConfiguration, context)\n            : undefined,\n        TreatmentDescription: output.TreatmentDescription !== undefined && output.TreatmentDescription !== null\n            ? output.TreatmentDescription\n            : undefined,\n        TreatmentName: output.TreatmentName !== undefined && output.TreatmentName !== null ? output.TreatmentName : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignSmsMessage = function (output, context) {\n    return {\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        MessageType: output.MessageType !== undefined && output.MessageType !== null ? output.MessageType : undefined,\n        SenderId: output.SenderId !== undefined && output.SenderId !== null ? output.SenderId : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfCampaignResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1CampaignState = function (output, context) {\n    return {\n        CampaignStatus: output.CampaignStatus !== undefined && output.CampaignStatus !== null ? output.CampaignStatus : undefined,\n    };\n};\nvar deserializeAws_restJson1ChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1ChannelsResponse = function (output, context) {\n    return {\n        Channels: output.Channels !== undefined && output.Channels !== null\n            ? deserializeAws_restJson1MapOfChannelResponse(output.Channels, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1Condition = function (output, context) {\n    return {\n        Conditions: output.Conditions !== undefined && output.Conditions !== null\n            ? deserializeAws_restJson1ListOfSimpleCondition(output.Conditions, context)\n            : undefined,\n        Operator: output.Operator !== undefined && output.Operator !== null ? output.Operator : undefined,\n    };\n};\nvar deserializeAws_restJson1ConditionalSplitActivity = function (output, context) {\n    return {\n        Condition: output.Condition !== undefined && output.Condition !== null\n            ? deserializeAws_restJson1Condition(output.Condition, context)\n            : undefined,\n        EvaluationWaitTime: output.EvaluationWaitTime !== undefined && output.EvaluationWaitTime !== null\n            ? deserializeAws_restJson1WaitTime(output.EvaluationWaitTime, context)\n            : undefined,\n        FalseActivity: output.FalseActivity !== undefined && output.FalseActivity !== null ? output.FalseActivity : undefined,\n        TrueActivity: output.TrueActivity !== undefined && output.TrueActivity !== null ? output.TrueActivity : undefined,\n    };\n};\nvar deserializeAws_restJson1CreateTemplateMessageBody = function (output, context) {\n    return {\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined,\n        RequestID: output.RequestID !== undefined && output.RequestID !== null ? output.RequestID : undefined,\n    };\n};\nvar deserializeAws_restJson1CustomDeliveryConfiguration = function (output, context) {\n    return {\n        DeliveryUri: output.DeliveryUri !== undefined && output.DeliveryUri !== null ? output.DeliveryUri : undefined,\n        EndpointTypes: output.EndpointTypes !== undefined && output.EndpointTypes !== null\n            ? deserializeAws_restJson1ListOf__EndpointTypesElement(output.EndpointTypes, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1CustomMessageActivity = function (output, context) {\n    return {\n        DeliveryUri: output.DeliveryUri !== undefined && output.DeliveryUri !== null ? output.DeliveryUri : undefined,\n        EndpointTypes: output.EndpointTypes !== undefined && output.EndpointTypes !== null\n            ? deserializeAws_restJson1ListOf__EndpointTypesElement(output.EndpointTypes, context)\n            : undefined,\n        MessageConfig: output.MessageConfig !== undefined && output.MessageConfig !== null\n            ? deserializeAws_restJson1JourneyCustomMessage(output.MessageConfig, context)\n            : undefined,\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateVersion: output.TemplateVersion !== undefined && output.TemplateVersion !== null ? output.TemplateVersion : undefined,\n    };\n};\nvar deserializeAws_restJson1DefaultPushNotificationTemplate = function (output, context) {\n    return {\n        Action: output.Action !== undefined && output.Action !== null ? output.Action : undefined,\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        Sound: output.Sound !== undefined && output.Sound !== null ? output.Sound : undefined,\n        Title: output.Title !== undefined && output.Title !== null ? output.Title : undefined,\n        Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined,\n    };\n};\nvar deserializeAws_restJson1EmailChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        ConfigurationSet: output.ConfigurationSet !== undefined && output.ConfigurationSet !== null ? output.ConfigurationSet : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        FromAddress: output.FromAddress !== undefined && output.FromAddress !== null ? output.FromAddress : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        Identity: output.Identity !== undefined && output.Identity !== null ? output.Identity : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        MessagesPerSecond: output.MessagesPerSecond !== undefined && output.MessagesPerSecond !== null\n            ? output.MessagesPerSecond\n            : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1EmailMessageActivity = function (output, context) {\n    return {\n        MessageConfig: output.MessageConfig !== undefined && output.MessageConfig !== null\n            ? deserializeAws_restJson1JourneyEmailMessage(output.MessageConfig, context)\n            : undefined,\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateVersion: output.TemplateVersion !== undefined && output.TemplateVersion !== null ? output.TemplateVersion : undefined,\n    };\n};\nvar deserializeAws_restJson1EmailTemplateResponse = function (output, context) {\n    return {\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultSubstitutions: output.DefaultSubstitutions !== undefined && output.DefaultSubstitutions !== null\n            ? output.DefaultSubstitutions\n            : undefined,\n        HtmlPart: output.HtmlPart !== undefined && output.HtmlPart !== null ? output.HtmlPart : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        RecommenderId: output.RecommenderId !== undefined && output.RecommenderId !== null ? output.RecommenderId : undefined,\n        Subject: output.Subject !== undefined && output.Subject !== null ? output.Subject : undefined,\n        TemplateDescription: output.TemplateDescription !== undefined && output.TemplateDescription !== null\n            ? output.TemplateDescription\n            : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateType: output.TemplateType !== undefined && output.TemplateType !== null ? output.TemplateType : undefined,\n        TextPart: output.TextPart !== undefined && output.TextPart !== null ? output.TextPart : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointDemographic = function (output, context) {\n    return {\n        AppVersion: output.AppVersion !== undefined && output.AppVersion !== null ? output.AppVersion : undefined,\n        Locale: output.Locale !== undefined && output.Locale !== null ? output.Locale : undefined,\n        Make: output.Make !== undefined && output.Make !== null ? output.Make : undefined,\n        Model: output.Model !== undefined && output.Model !== null ? output.Model : undefined,\n        ModelVersion: output.ModelVersion !== undefined && output.ModelVersion !== null ? output.ModelVersion : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        PlatformVersion: output.PlatformVersion !== undefined && output.PlatformVersion !== null ? output.PlatformVersion : undefined,\n        Timezone: output.Timezone !== undefined && output.Timezone !== null ? output.Timezone : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointItemResponse = function (output, context) {\n    return {\n        Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined,\n        StatusCode: output.StatusCode !== undefined && output.StatusCode !== null ? output.StatusCode : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointLocation = function (output, context) {\n    return {\n        City: output.City !== undefined && output.City !== null ? output.City : undefined,\n        Country: output.Country !== undefined && output.Country !== null ? output.Country : undefined,\n        Latitude: output.Latitude !== undefined && output.Latitude !== null ? output.Latitude : undefined,\n        Longitude: output.Longitude !== undefined && output.Longitude !== null ? output.Longitude : undefined,\n        PostalCode: output.PostalCode !== undefined && output.PostalCode !== null ? output.PostalCode : undefined,\n        Region: output.Region !== undefined && output.Region !== null ? output.Region : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointMessageResult = function (output, context) {\n    return {\n        Address: output.Address !== undefined && output.Address !== null ? output.Address : undefined,\n        DeliveryStatus: output.DeliveryStatus !== undefined && output.DeliveryStatus !== null ? output.DeliveryStatus : undefined,\n        MessageId: output.MessageId !== undefined && output.MessageId !== null ? output.MessageId : undefined,\n        StatusCode: output.StatusCode !== undefined && output.StatusCode !== null ? output.StatusCode : undefined,\n        StatusMessage: output.StatusMessage !== undefined && output.StatusMessage !== null ? output.StatusMessage : undefined,\n        UpdatedToken: output.UpdatedToken !== undefined && output.UpdatedToken !== null ? output.UpdatedToken : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointResponse = function (output, context) {\n    return {\n        Address: output.Address !== undefined && output.Address !== null ? output.Address : undefined,\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        Attributes: output.Attributes !== undefined && output.Attributes !== null\n            ? deserializeAws_restJson1MapOfListOf__string(output.Attributes, context)\n            : undefined,\n        ChannelType: output.ChannelType !== undefined && output.ChannelType !== null ? output.ChannelType : undefined,\n        CohortId: output.CohortId !== undefined && output.CohortId !== null ? output.CohortId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Demographic: output.Demographic !== undefined && output.Demographic !== null\n            ? deserializeAws_restJson1EndpointDemographic(output.Demographic, context)\n            : undefined,\n        EffectiveDate: output.EffectiveDate !== undefined && output.EffectiveDate !== null ? output.EffectiveDate : undefined,\n        EndpointStatus: output.EndpointStatus !== undefined && output.EndpointStatus !== null ? output.EndpointStatus : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        Location: output.Location !== undefined && output.Location !== null\n            ? deserializeAws_restJson1EndpointLocation(output.Location, context)\n            : undefined,\n        Metrics: output.Metrics !== undefined && output.Metrics !== null\n            ? deserializeAws_restJson1MapOf__double(output.Metrics, context)\n            : undefined,\n        OptOut: output.OptOut !== undefined && output.OptOut !== null ? output.OptOut : undefined,\n        RequestId: output.RequestId !== undefined && output.RequestId !== null ? output.RequestId : undefined,\n        User: output.User !== undefined && output.User !== null\n            ? deserializeAws_restJson1EndpointUser(output.User, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfEndpointResponse(output.Item, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1EndpointUser = function (output, context) {\n    return {\n        UserAttributes: output.UserAttributes !== undefined && output.UserAttributes !== null\n            ? deserializeAws_restJson1MapOfListOf__string(output.UserAttributes, context)\n            : undefined,\n        UserId: output.UserId !== undefined && output.UserId !== null ? output.UserId : undefined,\n    };\n};\nvar deserializeAws_restJson1EventCondition = function (output, context) {\n    return {\n        Dimensions: output.Dimensions !== undefined && output.Dimensions !== null\n            ? deserializeAws_restJson1EventDimensions(output.Dimensions, context)\n            : undefined,\n        MessageActivity: output.MessageActivity !== undefined && output.MessageActivity !== null ? output.MessageActivity : undefined,\n    };\n};\nvar deserializeAws_restJson1EventDimensions = function (output, context) {\n    return {\n        Attributes: output.Attributes !== undefined && output.Attributes !== null\n            ? deserializeAws_restJson1MapOfAttributeDimension(output.Attributes, context)\n            : undefined,\n        EventType: output.EventType !== undefined && output.EventType !== null\n            ? deserializeAws_restJson1SetDimension(output.EventType, context)\n            : undefined,\n        Metrics: output.Metrics !== undefined && output.Metrics !== null\n            ? deserializeAws_restJson1MapOfMetricDimension(output.Metrics, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1EventFilter = function (output, context) {\n    return {\n        Dimensions: output.Dimensions !== undefined && output.Dimensions !== null\n            ? deserializeAws_restJson1EventDimensions(output.Dimensions, context)\n            : undefined,\n        FilterType: output.FilterType !== undefined && output.FilterType !== null ? output.FilterType : undefined,\n    };\n};\nvar deserializeAws_restJson1EventItemResponse = function (output, context) {\n    return {\n        Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined,\n        StatusCode: output.StatusCode !== undefined && output.StatusCode !== null ? output.StatusCode : undefined,\n    };\n};\nvar deserializeAws_restJson1EventsResponse = function (output, context) {\n    return {\n        Results: output.Results !== undefined && output.Results !== null\n            ? deserializeAws_restJson1MapOfItemResponse(output.Results, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1EventStartCondition = function (output, context) {\n    return {\n        EventFilter: output.EventFilter !== undefined && output.EventFilter !== null\n            ? deserializeAws_restJson1EventFilter(output.EventFilter, context)\n            : undefined,\n        SegmentId: output.SegmentId !== undefined && output.SegmentId !== null ? output.SegmentId : undefined,\n    };\n};\nvar deserializeAws_restJson1EventStream = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        DestinationStreamArn: output.DestinationStreamArn !== undefined && output.DestinationStreamArn !== null\n            ? output.DestinationStreamArn\n            : undefined,\n        ExternalId: output.ExternalId !== undefined && output.ExternalId !== null ? output.ExternalId : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        LastUpdatedBy: output.LastUpdatedBy !== undefined && output.LastUpdatedBy !== null ? output.LastUpdatedBy : undefined,\n        RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined,\n    };\n};\nvar deserializeAws_restJson1ExportJobResource = function (output, context) {\n    return {\n        RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined,\n        S3UrlPrefix: output.S3UrlPrefix !== undefined && output.S3UrlPrefix !== null ? output.S3UrlPrefix : undefined,\n        SegmentId: output.SegmentId !== undefined && output.SegmentId !== null ? output.SegmentId : undefined,\n        SegmentVersion: output.SegmentVersion !== undefined && output.SegmentVersion !== null ? output.SegmentVersion : undefined,\n    };\n};\nvar deserializeAws_restJson1ExportJobResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CompletedPieces: output.CompletedPieces !== undefined && output.CompletedPieces !== null ? output.CompletedPieces : undefined,\n        CompletionDate: output.CompletionDate !== undefined && output.CompletionDate !== null ? output.CompletionDate : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Definition: output.Definition !== undefined && output.Definition !== null\n            ? deserializeAws_restJson1ExportJobResource(output.Definition, context)\n            : undefined,\n        FailedPieces: output.FailedPieces !== undefined && output.FailedPieces !== null ? output.FailedPieces : undefined,\n        Failures: output.Failures !== undefined && output.Failures !== null\n            ? deserializeAws_restJson1ListOf__string(output.Failures, context)\n            : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        JobStatus: output.JobStatus !== undefined && output.JobStatus !== null ? output.JobStatus : undefined,\n        TotalFailures: output.TotalFailures !== undefined && output.TotalFailures !== null ? output.TotalFailures : undefined,\n        TotalPieces: output.TotalPieces !== undefined && output.TotalPieces !== null ? output.TotalPieces : undefined,\n        TotalProcessed: output.TotalProcessed !== undefined && output.TotalProcessed !== null ? output.TotalProcessed : undefined,\n        Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n    };\n};\nvar deserializeAws_restJson1ExportJobsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfExportJobResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1GCMChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Credential: output.Credential !== undefined && output.Credential !== null ? output.Credential : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1GPSCoordinates = function (output, context) {\n    return {\n        Latitude: output.Latitude !== undefined && output.Latitude !== null ? output.Latitude : undefined,\n        Longitude: output.Longitude !== undefined && output.Longitude !== null ? output.Longitude : undefined,\n    };\n};\nvar deserializeAws_restJson1GPSPointDimension = function (output, context) {\n    return {\n        Coordinates: output.Coordinates !== undefined && output.Coordinates !== null\n            ? deserializeAws_restJson1GPSCoordinates(output.Coordinates, context)\n            : undefined,\n        RangeInKilometers: output.RangeInKilometers !== undefined && output.RangeInKilometers !== null\n            ? output.RangeInKilometers\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1HoldoutActivity = function (output, context) {\n    return {\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        Percentage: output.Percentage !== undefined && output.Percentage !== null ? output.Percentage : undefined,\n    };\n};\nvar deserializeAws_restJson1ImportJobResource = function (output, context) {\n    return {\n        DefineSegment: output.DefineSegment !== undefined && output.DefineSegment !== null ? output.DefineSegment : undefined,\n        ExternalId: output.ExternalId !== undefined && output.ExternalId !== null ? output.ExternalId : undefined,\n        Format: output.Format !== undefined && output.Format !== null ? output.Format : undefined,\n        RegisterEndpoints: output.RegisterEndpoints !== undefined && output.RegisterEndpoints !== null\n            ? output.RegisterEndpoints\n            : undefined,\n        RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined,\n        S3Url: output.S3Url !== undefined && output.S3Url !== null ? output.S3Url : undefined,\n        SegmentId: output.SegmentId !== undefined && output.SegmentId !== null ? output.SegmentId : undefined,\n        SegmentName: output.SegmentName !== undefined && output.SegmentName !== null ? output.SegmentName : undefined,\n    };\n};\nvar deserializeAws_restJson1ImportJobResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CompletedPieces: output.CompletedPieces !== undefined && output.CompletedPieces !== null ? output.CompletedPieces : undefined,\n        CompletionDate: output.CompletionDate !== undefined && output.CompletionDate !== null ? output.CompletionDate : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Definition: output.Definition !== undefined && output.Definition !== null\n            ? deserializeAws_restJson1ImportJobResource(output.Definition, context)\n            : undefined,\n        FailedPieces: output.FailedPieces !== undefined && output.FailedPieces !== null ? output.FailedPieces : undefined,\n        Failures: output.Failures !== undefined && output.Failures !== null\n            ? deserializeAws_restJson1ListOf__string(output.Failures, context)\n            : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        JobStatus: output.JobStatus !== undefined && output.JobStatus !== null ? output.JobStatus : undefined,\n        TotalFailures: output.TotalFailures !== undefined && output.TotalFailures !== null ? output.TotalFailures : undefined,\n        TotalPieces: output.TotalPieces !== undefined && output.TotalPieces !== null ? output.TotalPieces : undefined,\n        TotalProcessed: output.TotalProcessed !== undefined && output.TotalProcessed !== null ? output.TotalProcessed : undefined,\n        Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n    };\n};\nvar deserializeAws_restJson1ImportJobsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfImportJobResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1ItemResponse = function (output, context) {\n    return {\n        EndpointItemResponse: output.EndpointItemResponse !== undefined && output.EndpointItemResponse !== null\n            ? deserializeAws_restJson1EndpointItemResponse(output.EndpointItemResponse, context)\n            : undefined,\n        EventsItemResponse: output.EventsItemResponse !== undefined && output.EventsItemResponse !== null\n            ? deserializeAws_restJson1MapOfEventItemResponse(output.EventsItemResponse, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyCustomMessage = function (output, context) {\n    return {\n        Data: output.Data !== undefined && output.Data !== null ? output.Data : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyDateRangeKpiResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        EndTime: output.EndTime !== undefined && output.EndTime !== null ? new Date(output.EndTime) : undefined,\n        JourneyId: output.JourneyId !== undefined && output.JourneyId !== null ? output.JourneyId : undefined,\n        KpiName: output.KpiName !== undefined && output.KpiName !== null ? output.KpiName : undefined,\n        KpiResult: output.KpiResult !== undefined && output.KpiResult !== null\n            ? deserializeAws_restJson1BaseKpiResult(output.KpiResult, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n        StartTime: output.StartTime !== undefined && output.StartTime !== null ? new Date(output.StartTime) : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyEmailMessage = function (output, context) {\n    return {\n        FromAddress: output.FromAddress !== undefined && output.FromAddress !== null ? output.FromAddress : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyExecutionActivityMetricsResponse = function (output, context) {\n    return {\n        ActivityType: output.ActivityType !== undefined && output.ActivityType !== null ? output.ActivityType : undefined,\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        JourneyActivityId: output.JourneyActivityId !== undefined && output.JourneyActivityId !== null\n            ? output.JourneyActivityId\n            : undefined,\n        JourneyId: output.JourneyId !== undefined && output.JourneyId !== null ? output.JourneyId : undefined,\n        LastEvaluatedTime: output.LastEvaluatedTime !== undefined && output.LastEvaluatedTime !== null\n            ? output.LastEvaluatedTime\n            : undefined,\n        Metrics: output.Metrics !== undefined && output.Metrics !== null\n            ? deserializeAws_restJson1MapOf__string(output.Metrics, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyExecutionMetricsResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        JourneyId: output.JourneyId !== undefined && output.JourneyId !== null ? output.JourneyId : undefined,\n        LastEvaluatedTime: output.LastEvaluatedTime !== undefined && output.LastEvaluatedTime !== null\n            ? output.LastEvaluatedTime\n            : undefined,\n        Metrics: output.Metrics !== undefined && output.Metrics !== null\n            ? deserializeAws_restJson1MapOf__string(output.Metrics, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyLimits = function (output, context) {\n    return {\n        DailyCap: output.DailyCap !== undefined && output.DailyCap !== null ? output.DailyCap : undefined,\n        EndpointReentryCap: output.EndpointReentryCap !== undefined && output.EndpointReentryCap !== null\n            ? output.EndpointReentryCap\n            : undefined,\n        MessagesPerSecond: output.MessagesPerSecond !== undefined && output.MessagesPerSecond !== null\n            ? output.MessagesPerSecond\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyPushMessage = function (output, context) {\n    return {\n        TimeToLive: output.TimeToLive !== undefined && output.TimeToLive !== null ? output.TimeToLive : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneyResponse = function (output, context) {\n    return {\n        Activities: output.Activities !== undefined && output.Activities !== null\n            ? deserializeAws_restJson1MapOfActivity(output.Activities, context)\n            : undefined,\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Limits: output.Limits !== undefined && output.Limits !== null\n            ? deserializeAws_restJson1JourneyLimits(output.Limits, context)\n            : undefined,\n        LocalTime: output.LocalTime !== undefined && output.LocalTime !== null ? output.LocalTime : undefined,\n        Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n        QuietTime: output.QuietTime !== undefined && output.QuietTime !== null\n            ? deserializeAws_restJson1QuietTime(output.QuietTime, context)\n            : undefined,\n        RefreshFrequency: output.RefreshFrequency !== undefined && output.RefreshFrequency !== null ? output.RefreshFrequency : undefined,\n        Schedule: output.Schedule !== undefined && output.Schedule !== null\n            ? deserializeAws_restJson1JourneySchedule(output.Schedule, context)\n            : undefined,\n        StartActivity: output.StartActivity !== undefined && output.StartActivity !== null ? output.StartActivity : undefined,\n        StartCondition: output.StartCondition !== undefined && output.StartCondition !== null\n            ? deserializeAws_restJson1StartCondition(output.StartCondition, context)\n            : undefined,\n        State: output.State !== undefined && output.State !== null ? output.State : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneySchedule = function (output, context) {\n    return {\n        EndTime: output.EndTime !== undefined && output.EndTime !== null ? new Date(output.EndTime) : undefined,\n        StartTime: output.StartTime !== undefined && output.StartTime !== null ? new Date(output.StartTime) : undefined,\n        Timezone: output.Timezone !== undefined && output.Timezone !== null ? output.Timezone : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneySMSMessage = function (output, context) {\n    return {\n        MessageType: output.MessageType !== undefined && output.MessageType !== null ? output.MessageType : undefined,\n        SenderId: output.SenderId !== undefined && output.SenderId !== null ? output.SenderId : undefined,\n    };\n};\nvar deserializeAws_restJson1JourneysResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfJourneyResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1ListOf__EndpointTypesElement = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return entry;\n    });\n};\nvar deserializeAws_restJson1ListOf__string = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return entry;\n    });\n};\nvar deserializeAws_restJson1ListOfActivityResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1ActivityResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfApplicationResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1ApplicationResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfCampaignResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1CampaignResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfEndpointResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1EndpointResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfExportJobResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1ExportJobResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfImportJobResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1ImportJobResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfJourneyResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1JourneyResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfMultiConditionalBranch = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1MultiConditionalBranch(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfRandomSplitEntry = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1RandomSplitEntry(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfRecommenderConfigurationResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1RecommenderConfigurationResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfResultRow = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1ResultRow(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfResultRowValue = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1ResultRowValue(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfSegmentDimensions = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1SegmentDimensions(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfSegmentGroup = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1SegmentGroup(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfSegmentReference = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1SegmentReference(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfSegmentResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1SegmentResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfSimpleCondition = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1SimpleCondition(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfTemplateResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1TemplateResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfTemplateVersionResponse = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1TemplateVersionResponse(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListOfTreatmentResource = function (output, context) {\n    return (output || [])\n        .filter(function (e) { return e != null; })\n        .map(function (entry) {\n        if (entry === null) {\n            return null;\n        }\n        return deserializeAws_restJson1TreatmentResource(entry, context);\n    });\n};\nvar deserializeAws_restJson1ListRecommenderConfigurationsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfRecommenderConfigurationResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1MapOf__double = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOf__integer = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOf__string = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfActivity = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1Activity(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfAttributeDimension = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1AttributeDimension(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfChannelResponse = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1ChannelResponse(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfEndpointMessageResult = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1EndpointMessageResult(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfEventItemResponse = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1EventItemResponse(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfItemResponse = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1ItemResponse(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfListOf__string = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1ListOf__string(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfMapOfEndpointMessageResult = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1MapOfEndpointMessageResult(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfMessageResult = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1MessageResult(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1MapOfMetricDimension = function (output, context) {\n    return Object.entries(output).reduce(function (acc, _a) {\n        var _b;\n        var _c = __read(_a, 2), key = _c[0], value = _c[1];\n        if (value === null) {\n            return acc;\n        }\n        return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_restJson1MetricDimension(value, context), _b));\n    }, {});\n};\nvar deserializeAws_restJson1Message = function (output, context) {\n    return {\n        Action: output.Action !== undefined && output.Action !== null ? output.Action : undefined,\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        ImageIconUrl: output.ImageIconUrl !== undefined && output.ImageIconUrl !== null ? output.ImageIconUrl : undefined,\n        ImageSmallIconUrl: output.ImageSmallIconUrl !== undefined && output.ImageSmallIconUrl !== null\n            ? output.ImageSmallIconUrl\n            : undefined,\n        ImageUrl: output.ImageUrl !== undefined && output.ImageUrl !== null ? output.ImageUrl : undefined,\n        JsonBody: output.JsonBody !== undefined && output.JsonBody !== null ? output.JsonBody : undefined,\n        MediaUrl: output.MediaUrl !== undefined && output.MediaUrl !== null ? output.MediaUrl : undefined,\n        RawContent: output.RawContent !== undefined && output.RawContent !== null ? output.RawContent : undefined,\n        SilentPush: output.SilentPush !== undefined && output.SilentPush !== null ? output.SilentPush : undefined,\n        TimeToLive: output.TimeToLive !== undefined && output.TimeToLive !== null ? output.TimeToLive : undefined,\n        Title: output.Title !== undefined && output.Title !== null ? output.Title : undefined,\n        Url: output.Url !== undefined && output.Url !== null ? output.Url : undefined,\n    };\n};\nvar deserializeAws_restJson1MessageBody = function (output, context) {\n    return {\n        Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined,\n        RequestID: output.RequestID !== undefined && output.RequestID !== null ? output.RequestID : undefined,\n    };\n};\nvar deserializeAws_restJson1MessageConfiguration = function (output, context) {\n    return {\n        ADMMessage: output.ADMMessage !== undefined && output.ADMMessage !== null\n            ? deserializeAws_restJson1Message(output.ADMMessage, context)\n            : undefined,\n        APNSMessage: output.APNSMessage !== undefined && output.APNSMessage !== null\n            ? deserializeAws_restJson1Message(output.APNSMessage, context)\n            : undefined,\n        BaiduMessage: output.BaiduMessage !== undefined && output.BaiduMessage !== null\n            ? deserializeAws_restJson1Message(output.BaiduMessage, context)\n            : undefined,\n        CustomMessage: output.CustomMessage !== undefined && output.CustomMessage !== null\n            ? deserializeAws_restJson1CampaignCustomMessage(output.CustomMessage, context)\n            : undefined,\n        DefaultMessage: output.DefaultMessage !== undefined && output.DefaultMessage !== null\n            ? deserializeAws_restJson1Message(output.DefaultMessage, context)\n            : undefined,\n        EmailMessage: output.EmailMessage !== undefined && output.EmailMessage !== null\n            ? deserializeAws_restJson1CampaignEmailMessage(output.EmailMessage, context)\n            : undefined,\n        GCMMessage: output.GCMMessage !== undefined && output.GCMMessage !== null\n            ? deserializeAws_restJson1Message(output.GCMMessage, context)\n            : undefined,\n        SMSMessage: output.SMSMessage !== undefined && output.SMSMessage !== null\n            ? deserializeAws_restJson1CampaignSmsMessage(output.SMSMessage, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1MessageResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        EndpointResult: output.EndpointResult !== undefined && output.EndpointResult !== null\n            ? deserializeAws_restJson1MapOfEndpointMessageResult(output.EndpointResult, context)\n            : undefined,\n        RequestId: output.RequestId !== undefined && output.RequestId !== null ? output.RequestId : undefined,\n        Result: output.Result !== undefined && output.Result !== null\n            ? deserializeAws_restJson1MapOfMessageResult(output.Result, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1MessageResult = function (output, context) {\n    return {\n        DeliveryStatus: output.DeliveryStatus !== undefined && output.DeliveryStatus !== null ? output.DeliveryStatus : undefined,\n        MessageId: output.MessageId !== undefined && output.MessageId !== null ? output.MessageId : undefined,\n        StatusCode: output.StatusCode !== undefined && output.StatusCode !== null ? output.StatusCode : undefined,\n        StatusMessage: output.StatusMessage !== undefined && output.StatusMessage !== null ? output.StatusMessage : undefined,\n        UpdatedToken: output.UpdatedToken !== undefined && output.UpdatedToken !== null ? output.UpdatedToken : undefined,\n    };\n};\nvar deserializeAws_restJson1MetricDimension = function (output, context) {\n    return {\n        ComparisonOperator: output.ComparisonOperator !== undefined && output.ComparisonOperator !== null\n            ? output.ComparisonOperator\n            : undefined,\n        Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n    };\n};\nvar deserializeAws_restJson1MultiConditionalBranch = function (output, context) {\n    return {\n        Condition: output.Condition !== undefined && output.Condition !== null\n            ? deserializeAws_restJson1SimpleCondition(output.Condition, context)\n            : undefined,\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n    };\n};\nvar deserializeAws_restJson1MultiConditionalSplitActivity = function (output, context) {\n    return {\n        Branches: output.Branches !== undefined && output.Branches !== null\n            ? deserializeAws_restJson1ListOfMultiConditionalBranch(output.Branches, context)\n            : undefined,\n        DefaultActivity: output.DefaultActivity !== undefined && output.DefaultActivity !== null ? output.DefaultActivity : undefined,\n        EvaluationWaitTime: output.EvaluationWaitTime !== undefined && output.EvaluationWaitTime !== null\n            ? deserializeAws_restJson1WaitTime(output.EvaluationWaitTime, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1NumberValidateResponse = function (output, context) {\n    return {\n        Carrier: output.Carrier !== undefined && output.Carrier !== null ? output.Carrier : undefined,\n        City: output.City !== undefined && output.City !== null ? output.City : undefined,\n        CleansedPhoneNumberE164: output.CleansedPhoneNumberE164 !== undefined && output.CleansedPhoneNumberE164 !== null\n            ? output.CleansedPhoneNumberE164\n            : undefined,\n        CleansedPhoneNumberNational: output.CleansedPhoneNumberNational !== undefined && output.CleansedPhoneNumberNational !== null\n            ? output.CleansedPhoneNumberNational\n            : undefined,\n        Country: output.Country !== undefined && output.Country !== null ? output.Country : undefined,\n        CountryCodeIso2: output.CountryCodeIso2 !== undefined && output.CountryCodeIso2 !== null ? output.CountryCodeIso2 : undefined,\n        CountryCodeNumeric: output.CountryCodeNumeric !== undefined && output.CountryCodeNumeric !== null\n            ? output.CountryCodeNumeric\n            : undefined,\n        County: output.County !== undefined && output.County !== null ? output.County : undefined,\n        OriginalCountryCodeIso2: output.OriginalCountryCodeIso2 !== undefined && output.OriginalCountryCodeIso2 !== null\n            ? output.OriginalCountryCodeIso2\n            : undefined,\n        OriginalPhoneNumber: output.OriginalPhoneNumber !== undefined && output.OriginalPhoneNumber !== null\n            ? output.OriginalPhoneNumber\n            : undefined,\n        PhoneType: output.PhoneType !== undefined && output.PhoneType !== null ? output.PhoneType : undefined,\n        PhoneTypeCode: output.PhoneTypeCode !== undefined && output.PhoneTypeCode !== null ? output.PhoneTypeCode : undefined,\n        Timezone: output.Timezone !== undefined && output.Timezone !== null ? output.Timezone : undefined,\n        ZipCode: output.ZipCode !== undefined && output.ZipCode !== null ? output.ZipCode : undefined,\n    };\n};\nvar deserializeAws_restJson1PushMessageActivity = function (output, context) {\n    return {\n        MessageConfig: output.MessageConfig !== undefined && output.MessageConfig !== null\n            ? deserializeAws_restJson1JourneyPushMessage(output.MessageConfig, context)\n            : undefined,\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateVersion: output.TemplateVersion !== undefined && output.TemplateVersion !== null ? output.TemplateVersion : undefined,\n    };\n};\nvar deserializeAws_restJson1PushNotificationTemplateResponse = function (output, context) {\n    return {\n        ADM: output.ADM !== undefined && output.ADM !== null\n            ? deserializeAws_restJson1AndroidPushNotificationTemplate(output.ADM, context)\n            : undefined,\n        APNS: output.APNS !== undefined && output.APNS !== null\n            ? deserializeAws_restJson1APNSPushNotificationTemplate(output.APNS, context)\n            : undefined,\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        Baidu: output.Baidu !== undefined && output.Baidu !== null\n            ? deserializeAws_restJson1AndroidPushNotificationTemplate(output.Baidu, context)\n            : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Default: output.Default !== undefined && output.Default !== null\n            ? deserializeAws_restJson1DefaultPushNotificationTemplate(output.Default, context)\n            : undefined,\n        DefaultSubstitutions: output.DefaultSubstitutions !== undefined && output.DefaultSubstitutions !== null\n            ? output.DefaultSubstitutions\n            : undefined,\n        GCM: output.GCM !== undefined && output.GCM !== null\n            ? deserializeAws_restJson1AndroidPushNotificationTemplate(output.GCM, context)\n            : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        RecommenderId: output.RecommenderId !== undefined && output.RecommenderId !== null ? output.RecommenderId : undefined,\n        TemplateDescription: output.TemplateDescription !== undefined && output.TemplateDescription !== null\n            ? output.TemplateDescription\n            : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateType: output.TemplateType !== undefined && output.TemplateType !== null ? output.TemplateType : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1QuietTime = function (output, context) {\n    return {\n        End: output.End !== undefined && output.End !== null ? output.End : undefined,\n        Start: output.Start !== undefined && output.Start !== null ? output.Start : undefined,\n    };\n};\nvar deserializeAws_restJson1RandomSplitActivity = function (output, context) {\n    return {\n        Branches: output.Branches !== undefined && output.Branches !== null\n            ? deserializeAws_restJson1ListOfRandomSplitEntry(output.Branches, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1RandomSplitEntry = function (output, context) {\n    return {\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        Percentage: output.Percentage !== undefined && output.Percentage !== null ? output.Percentage : undefined,\n    };\n};\nvar deserializeAws_restJson1RecencyDimension = function (output, context) {\n    return {\n        Duration: output.Duration !== undefined && output.Duration !== null ? output.Duration : undefined,\n        RecencyType: output.RecencyType !== undefined && output.RecencyType !== null ? output.RecencyType : undefined,\n    };\n};\nvar deserializeAws_restJson1RecommenderConfigurationResponse = function (output, context) {\n    return {\n        Attributes: output.Attributes !== undefined && output.Attributes !== null\n            ? deserializeAws_restJson1MapOf__string(output.Attributes, context)\n            : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n        RecommendationProviderIdType: output.RecommendationProviderIdType !== undefined && output.RecommendationProviderIdType !== null\n            ? output.RecommendationProviderIdType\n            : undefined,\n        RecommendationProviderRoleArn: output.RecommendationProviderRoleArn !== undefined && output.RecommendationProviderRoleArn !== null\n            ? output.RecommendationProviderRoleArn\n            : undefined,\n        RecommendationProviderUri: output.RecommendationProviderUri !== undefined && output.RecommendationProviderUri !== null\n            ? output.RecommendationProviderUri\n            : undefined,\n        RecommendationTransformerUri: output.RecommendationTransformerUri !== undefined && output.RecommendationTransformerUri !== null\n            ? output.RecommendationTransformerUri\n            : undefined,\n        RecommendationsDisplayName: output.RecommendationsDisplayName !== undefined && output.RecommendationsDisplayName !== null\n            ? output.RecommendationsDisplayName\n            : undefined,\n        RecommendationsPerMessage: output.RecommendationsPerMessage !== undefined && output.RecommendationsPerMessage !== null\n            ? output.RecommendationsPerMessage\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1ResultRow = function (output, context) {\n    return {\n        GroupedBys: output.GroupedBys !== undefined && output.GroupedBys !== null\n            ? deserializeAws_restJson1ListOfResultRowValue(output.GroupedBys, context)\n            : undefined,\n        Values: output.Values !== undefined && output.Values !== null\n            ? deserializeAws_restJson1ListOfResultRowValue(output.Values, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1ResultRowValue = function (output, context) {\n    return {\n        Key: output.Key !== undefined && output.Key !== null ? output.Key : undefined,\n        Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n        Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n    };\n};\nvar deserializeAws_restJson1Schedule = function (output, context) {\n    return {\n        EndTime: output.EndTime !== undefined && output.EndTime !== null ? output.EndTime : undefined,\n        EventFilter: output.EventFilter !== undefined && output.EventFilter !== null\n            ? deserializeAws_restJson1CampaignEventFilter(output.EventFilter, context)\n            : undefined,\n        Frequency: output.Frequency !== undefined && output.Frequency !== null ? output.Frequency : undefined,\n        IsLocalTime: output.IsLocalTime !== undefined && output.IsLocalTime !== null ? output.IsLocalTime : undefined,\n        QuietTime: output.QuietTime !== undefined && output.QuietTime !== null\n            ? deserializeAws_restJson1QuietTime(output.QuietTime, context)\n            : undefined,\n        StartTime: output.StartTime !== undefined && output.StartTime !== null ? output.StartTime : undefined,\n        Timezone: output.Timezone !== undefined && output.Timezone !== null ? output.Timezone : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentBehaviors = function (output, context) {\n    return {\n        Recency: output.Recency !== undefined && output.Recency !== null\n            ? deserializeAws_restJson1RecencyDimension(output.Recency, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentCondition = function (output, context) {\n    return {\n        SegmentId: output.SegmentId !== undefined && output.SegmentId !== null ? output.SegmentId : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentDemographics = function (output, context) {\n    return {\n        AppVersion: output.AppVersion !== undefined && output.AppVersion !== null\n            ? deserializeAws_restJson1SetDimension(output.AppVersion, context)\n            : undefined,\n        Channel: output.Channel !== undefined && output.Channel !== null\n            ? deserializeAws_restJson1SetDimension(output.Channel, context)\n            : undefined,\n        DeviceType: output.DeviceType !== undefined && output.DeviceType !== null\n            ? deserializeAws_restJson1SetDimension(output.DeviceType, context)\n            : undefined,\n        Make: output.Make !== undefined && output.Make !== null\n            ? deserializeAws_restJson1SetDimension(output.Make, context)\n            : undefined,\n        Model: output.Model !== undefined && output.Model !== null\n            ? deserializeAws_restJson1SetDimension(output.Model, context)\n            : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null\n            ? deserializeAws_restJson1SetDimension(output.Platform, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentDimensions = function (output, context) {\n    return {\n        Attributes: output.Attributes !== undefined && output.Attributes !== null\n            ? deserializeAws_restJson1MapOfAttributeDimension(output.Attributes, context)\n            : undefined,\n        Behavior: output.Behavior !== undefined && output.Behavior !== null\n            ? deserializeAws_restJson1SegmentBehaviors(output.Behavior, context)\n            : undefined,\n        Demographic: output.Demographic !== undefined && output.Demographic !== null\n            ? deserializeAws_restJson1SegmentDemographics(output.Demographic, context)\n            : undefined,\n        Location: output.Location !== undefined && output.Location !== null\n            ? deserializeAws_restJson1SegmentLocation(output.Location, context)\n            : undefined,\n        Metrics: output.Metrics !== undefined && output.Metrics !== null\n            ? deserializeAws_restJson1MapOfMetricDimension(output.Metrics, context)\n            : undefined,\n        UserAttributes: output.UserAttributes !== undefined && output.UserAttributes !== null\n            ? deserializeAws_restJson1MapOfAttributeDimension(output.UserAttributes, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentGroup = function (output, context) {\n    return {\n        Dimensions: output.Dimensions !== undefined && output.Dimensions !== null\n            ? deserializeAws_restJson1ListOfSegmentDimensions(output.Dimensions, context)\n            : undefined,\n        SourceSegments: output.SourceSegments !== undefined && output.SourceSegments !== null\n            ? deserializeAws_restJson1ListOfSegmentReference(output.SourceSegments, context)\n            : undefined,\n        SourceType: output.SourceType !== undefined && output.SourceType !== null ? output.SourceType : undefined,\n        Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentGroupList = function (output, context) {\n    return {\n        Groups: output.Groups !== undefined && output.Groups !== null\n            ? deserializeAws_restJson1ListOfSegmentGroup(output.Groups, context)\n            : undefined,\n        Include: output.Include !== undefined && output.Include !== null ? output.Include : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentImportResource = function (output, context) {\n    return {\n        ChannelCounts: output.ChannelCounts !== undefined && output.ChannelCounts !== null\n            ? deserializeAws_restJson1MapOf__integer(output.ChannelCounts, context)\n            : undefined,\n        ExternalId: output.ExternalId !== undefined && output.ExternalId !== null ? output.ExternalId : undefined,\n        Format: output.Format !== undefined && output.Format !== null ? output.Format : undefined,\n        RoleArn: output.RoleArn !== undefined && output.RoleArn !== null ? output.RoleArn : undefined,\n        S3Url: output.S3Url !== undefined && output.S3Url !== null ? output.S3Url : undefined,\n        Size: output.Size !== undefined && output.Size !== null ? output.Size : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentLocation = function (output, context) {\n    return {\n        Country: output.Country !== undefined && output.Country !== null\n            ? deserializeAws_restJson1SetDimension(output.Country, context)\n            : undefined,\n        GPSPoint: output.GPSPoint !== undefined && output.GPSPoint !== null\n            ? deserializeAws_restJson1GPSPointDimension(output.GPSPoint, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentReference = function (output, context) {\n    return {\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Dimensions: output.Dimensions !== undefined && output.Dimensions !== null\n            ? deserializeAws_restJson1SegmentDimensions(output.Dimensions, context)\n            : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        ImportDefinition: output.ImportDefinition !== undefined && output.ImportDefinition !== null\n            ? deserializeAws_restJson1SegmentImportResource(output.ImportDefinition, context)\n            : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n        SegmentGroups: output.SegmentGroups !== undefined && output.SegmentGroups !== null\n            ? deserializeAws_restJson1SegmentGroupList(output.SegmentGroups, context)\n            : undefined,\n        SegmentType: output.SegmentType !== undefined && output.SegmentType !== null ? output.SegmentType : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SegmentsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfSegmentResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1SendUsersMessageResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        RequestId: output.RequestId !== undefined && output.RequestId !== null ? output.RequestId : undefined,\n        Result: output.Result !== undefined && output.Result !== null\n            ? deserializeAws_restJson1MapOfMapOfEndpointMessageResult(output.Result, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SetDimension = function (output, context) {\n    return {\n        DimensionType: output.DimensionType !== undefined && output.DimensionType !== null ? output.DimensionType : undefined,\n        Values: output.Values !== undefined && output.Values !== null\n            ? deserializeAws_restJson1ListOf__string(output.Values, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SimpleCondition = function (output, context) {\n    return {\n        EventCondition: output.EventCondition !== undefined && output.EventCondition !== null\n            ? deserializeAws_restJson1EventCondition(output.EventCondition, context)\n            : undefined,\n        SegmentCondition: output.SegmentCondition !== undefined && output.SegmentCondition !== null\n            ? deserializeAws_restJson1SegmentCondition(output.SegmentCondition, context)\n            : undefined,\n        SegmentDimensions: output.segmentDimensions !== undefined && output.segmentDimensions !== null\n            ? deserializeAws_restJson1SegmentDimensions(output.segmentDimensions, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1SMSChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        PromotionalMessagesPerSecond: output.PromotionalMessagesPerSecond !== undefined && output.PromotionalMessagesPerSecond !== null\n            ? output.PromotionalMessagesPerSecond\n            : undefined,\n        SenderId: output.SenderId !== undefined && output.SenderId !== null ? output.SenderId : undefined,\n        ShortCode: output.ShortCode !== undefined && output.ShortCode !== null ? output.ShortCode : undefined,\n        TransactionalMessagesPerSecond: output.TransactionalMessagesPerSecond !== undefined && output.TransactionalMessagesPerSecond !== null\n            ? output.TransactionalMessagesPerSecond\n            : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1SMSMessageActivity = function (output, context) {\n    return {\n        MessageConfig: output.MessageConfig !== undefined && output.MessageConfig !== null\n            ? deserializeAws_restJson1JourneySMSMessage(output.MessageConfig, context)\n            : undefined,\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateVersion: output.TemplateVersion !== undefined && output.TemplateVersion !== null ? output.TemplateVersion : undefined,\n    };\n};\nvar deserializeAws_restJson1SMSTemplateResponse = function (output, context) {\n    return {\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultSubstitutions: output.DefaultSubstitutions !== undefined && output.DefaultSubstitutions !== null\n            ? output.DefaultSubstitutions\n            : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        RecommenderId: output.RecommenderId !== undefined && output.RecommenderId !== null ? output.RecommenderId : undefined,\n        TemplateDescription: output.TemplateDescription !== undefined && output.TemplateDescription !== null\n            ? output.TemplateDescription\n            : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateType: output.TemplateType !== undefined && output.TemplateType !== null ? output.TemplateType : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1StartCondition = function (output, context) {\n    return {\n        Description: output.Description !== undefined && output.Description !== null ? output.Description : undefined,\n        EventStartCondition: output.EventStartCondition !== undefined && output.EventStartCondition !== null\n            ? deserializeAws_restJson1EventStartCondition(output.EventStartCondition, context)\n            : undefined,\n        SegmentStartCondition: output.SegmentStartCondition !== undefined && output.SegmentStartCondition !== null\n            ? deserializeAws_restJson1SegmentCondition(output.SegmentStartCondition, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1TagsModel = function (output, context) {\n    return {\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1Template = function (output, context) {\n    return {\n        Name: output.Name !== undefined && output.Name !== null ? output.Name : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1TemplateConfiguration = function (output, context) {\n    return {\n        EmailTemplate: output.EmailTemplate !== undefined && output.EmailTemplate !== null\n            ? deserializeAws_restJson1Template(output.EmailTemplate, context)\n            : undefined,\n        PushTemplate: output.PushTemplate !== undefined && output.PushTemplate !== null\n            ? deserializeAws_restJson1Template(output.PushTemplate, context)\n            : undefined,\n        SMSTemplate: output.SMSTemplate !== undefined && output.SMSTemplate !== null\n            ? deserializeAws_restJson1Template(output.SMSTemplate, context)\n            : undefined,\n        VoiceTemplate: output.VoiceTemplate !== undefined && output.VoiceTemplate !== null\n            ? deserializeAws_restJson1Template(output.VoiceTemplate, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1TemplateResponse = function (output, context) {\n    return {\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultSubstitutions: output.DefaultSubstitutions !== undefined && output.DefaultSubstitutions !== null\n            ? output.DefaultSubstitutions\n            : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        TemplateDescription: output.TemplateDescription !== undefined && output.TemplateDescription !== null\n            ? output.TemplateDescription\n            : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateType: output.TemplateType !== undefined && output.TemplateType !== null ? output.TemplateType : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1TemplatesResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfTemplateResponse(output.Item, context)\n            : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n    };\n};\nvar deserializeAws_restJson1TemplateVersionResponse = function (output, context) {\n    return {\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultSubstitutions: output.DefaultSubstitutions !== undefined && output.DefaultSubstitutions !== null\n            ? output.DefaultSubstitutions\n            : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        TemplateDescription: output.TemplateDescription !== undefined && output.TemplateDescription !== null\n            ? output.TemplateDescription\n            : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateType: output.TemplateType !== undefined && output.TemplateType !== null ? output.TemplateType : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1TemplateVersionsResponse = function (output, context) {\n    return {\n        Item: output.Item !== undefined && output.Item !== null\n            ? deserializeAws_restJson1ListOfTemplateVersionResponse(output.Item, context)\n            : undefined,\n        Message: output.Message !== undefined && output.Message !== null ? output.Message : undefined,\n        NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n        RequestID: output.RequestID !== undefined && output.RequestID !== null ? output.RequestID : undefined,\n    };\n};\nvar deserializeAws_restJson1TreatmentResource = function (output, context) {\n    return {\n        CustomDeliveryConfiguration: output.CustomDeliveryConfiguration !== undefined && output.CustomDeliveryConfiguration !== null\n            ? deserializeAws_restJson1CustomDeliveryConfiguration(output.CustomDeliveryConfiguration, context)\n            : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        MessageConfiguration: output.MessageConfiguration !== undefined && output.MessageConfiguration !== null\n            ? deserializeAws_restJson1MessageConfiguration(output.MessageConfiguration, context)\n            : undefined,\n        Schedule: output.Schedule !== undefined && output.Schedule !== null\n            ? deserializeAws_restJson1Schedule(output.Schedule, context)\n            : undefined,\n        SizePercent: output.SizePercent !== undefined && output.SizePercent !== null ? output.SizePercent : undefined,\n        State: output.State !== undefined && output.State !== null\n            ? deserializeAws_restJson1CampaignState(output.State, context)\n            : undefined,\n        TemplateConfiguration: output.TemplateConfiguration !== undefined && output.TemplateConfiguration !== null\n            ? deserializeAws_restJson1TemplateConfiguration(output.TemplateConfiguration, context)\n            : undefined,\n        TreatmentDescription: output.TreatmentDescription !== undefined && output.TreatmentDescription !== null\n            ? output.TreatmentDescription\n            : undefined,\n        TreatmentName: output.TreatmentName !== undefined && output.TreatmentName !== null ? output.TreatmentName : undefined,\n    };\n};\nvar deserializeAws_restJson1VoiceChannelResponse = function (output, context) {\n    return {\n        ApplicationId: output.ApplicationId !== undefined && output.ApplicationId !== null ? output.ApplicationId : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        Enabled: output.Enabled !== undefined && output.Enabled !== null ? output.Enabled : undefined,\n        HasCredential: output.HasCredential !== undefined && output.HasCredential !== null ? output.HasCredential : undefined,\n        Id: output.Id !== undefined && output.Id !== null ? output.Id : undefined,\n        IsArchived: output.IsArchived !== undefined && output.IsArchived !== null ? output.IsArchived : undefined,\n        LastModifiedBy: output.LastModifiedBy !== undefined && output.LastModifiedBy !== null ? output.LastModifiedBy : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        Platform: output.Platform !== undefined && output.Platform !== null ? output.Platform : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n    };\n};\nvar deserializeAws_restJson1VoiceTemplateResponse = function (output, context) {\n    return {\n        Arn: output.Arn !== undefined && output.Arn !== null ? output.Arn : undefined,\n        Body: output.Body !== undefined && output.Body !== null ? output.Body : undefined,\n        CreationDate: output.CreationDate !== undefined && output.CreationDate !== null ? output.CreationDate : undefined,\n        DefaultSubstitutions: output.DefaultSubstitutions !== undefined && output.DefaultSubstitutions !== null\n            ? output.DefaultSubstitutions\n            : undefined,\n        LanguageCode: output.LanguageCode !== undefined && output.LanguageCode !== null ? output.LanguageCode : undefined,\n        LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null ? output.LastModifiedDate : undefined,\n        TemplateDescription: output.TemplateDescription !== undefined && output.TemplateDescription !== null\n            ? output.TemplateDescription\n            : undefined,\n        TemplateName: output.TemplateName !== undefined && output.TemplateName !== null ? output.TemplateName : undefined,\n        TemplateType: output.TemplateType !== undefined && output.TemplateType !== null ? output.TemplateType : undefined,\n        Version: output.Version !== undefined && output.Version !== null ? output.Version : undefined,\n        VoiceId: output.VoiceId !== undefined && output.VoiceId !== null ? output.VoiceId : undefined,\n        tags: output.tags !== undefined && output.tags !== null\n            ? deserializeAws_restJson1MapOf__string(output.tags, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1WaitActivity = function (output, context) {\n    return {\n        NextActivity: output.NextActivity !== undefined && output.NextActivity !== null ? output.NextActivity : undefined,\n        WaitTime: output.WaitTime !== undefined && output.WaitTime !== null\n            ? deserializeAws_restJson1WaitTime(output.WaitTime, context)\n            : undefined,\n    };\n};\nvar deserializeAws_restJson1WaitTime = function (output, context) {\n    return {\n        WaitFor: output.WaitFor !== undefined && output.WaitFor !== null ? output.WaitFor : undefined,\n        WaitUntil: output.WaitUntil !== undefined && output.WaitUntil !== null ? output.WaitUntil : undefined,\n    };\n};\nvar deserializeMetadata = function (output) {\n    var _a;\n    return ({\n        httpStatusCode: output.statusCode,\n        requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n        extendedRequestId: output.headers[\"x-amz-id-2\"],\n        cfId: output.headers[\"x-amz-cf-id\"],\n    });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n    if (streamBody === void 0) { streamBody = new Uint8Array(); }\n    if (streamBody instanceof Uint8Array) {\n        return Promise.resolve(streamBody);\n    }\n    return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n    return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar isSerializableHeaderValue = function (value) {\n    return value !== undefined &&\n        value !== null &&\n        value !== \"\" &&\n        (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n        (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\n};\nvar parseBody = function (streamBody, context) {\n    return collectBodyString(streamBody, context).then(function (encoded) {\n        if (encoded.length) {\n            return JSON.parse(encoded);\n        }\n        return {};\n    });\n};\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nvar loadRestJsonErrorCode = function (output, data) {\n    var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n    var sanitizeErrorCode = function (rawValue) {\n        var cleanValue = rawValue;\n        if (cleanValue.indexOf(\":\") >= 0) {\n            cleanValue = cleanValue.split(\":\")[0];\n        }\n        if (cleanValue.indexOf(\"#\") >= 0) {\n            cleanValue = cleanValue.split(\"#\")[1];\n        }\n        return cleanValue;\n    };\n    var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n    if (headerKey !== undefined) {\n        return sanitizeErrorCode(output.headers[headerKey]);\n    }\n    if (data.code !== undefined) {\n        return sanitizeErrorCode(data.code);\n    }\n    if (data[\"__type\"] !== undefined) {\n        return sanitizeErrorCode(data[\"__type\"]);\n    }\n    return \"\";\n};\n//# sourceMappingURL=Aws_restJson1.js.map"],"names":["serializeAws_restJson1PutEventsCommand","input","context","tslib__WEBPACK_IMPORTED_MODULE_2__","mG","headers","resolvedPath","labelValue","body","_a","hostname","_b","protocol","port","Jh","_c","label","undefined","ApplicationId","length","replace","_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__","jc","EventsRequest","serializeAws_restJson1EventsRequest","JSON","stringify","endpoint","sent","_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_0__","aW","method","path","serializeAws_restJson1UpdateEndpointCommand","EndpointId","EndpointRequest","serializeAws_restJson1EndpointRequest","deserializeAws_restJson1PutEventsCommand","output","contents","data","statusCode","deserializeAws_restJson1PutEventsCommandError","$metadata","deserializeMetadata","EventsResponse","parseBody","deserializeAws_restJson1EventsResponse","Promise","resolve","parsedOutput","response","errorCode","_d","_e","_f","_g","_h","_j","parsedBody","message","_k","_l","pi","apply","concat","loadRestJsonErrorCode","deserializeAws_restJson1BadRequestExceptionResponse","name","deserializeAws_restJson1ForbiddenExceptionResponse","deserializeAws_restJson1InternalServerErrorExceptionResponse","deserializeAws_restJson1MethodNotAllowedExceptionResponse","deserializeAws_restJson1NotFoundExceptionResponse","deserializeAws_restJson1PayloadTooLargeExceptionResponse","deserializeAws_restJson1TooManyRequestsExceptionResponse","code","Code","Message","$fault","reject","Object","assign","deserializeAws_restJson1UpdateEndpointCommand","deserializeAws_restJson1UpdateEndpointCommandError","MessageBody","deserializeAws_restJson1MessageBody","RequestID","serializeAws_restJson1EndpointDemographic","AppVersion","Locale","Make","Model","ModelVersion","Platform","PlatformVersion","Timezone","serializeAws_restJson1EndpointLocation","City","Country","Latitude","Longitude","PostalCode","Region","Address","Attributes","serializeAws_restJson1MapOfListOf__string","ChannelType","Demographic","EffectiveDate","EndpointStatus","Location","Metrics","serializeAws_restJson1MapOf__double","OptOut","RequestId","User","serializeAws_restJson1EndpointUser","UserAttributes","UserId","BatchItem","serializeAws_restJson1MapOfEventsBatch","entries","reduce","acc","CR","key","value","Endpoint","serializeAws_restJson1PublicEndpoint","Events","AppPackageName","AppTitle","AppVersionCode","ClientSdkVersion","EventType","SdkName","Session","serializeAws_restJson1Session","Timestamp","filter","e","map","entry","Duration","Id","StartTimestamp","StopTimestamp","Results","deserializeAws_restJson1MapOfItemResponse","deserializeAws_restJson1ItemResponse","EndpointItemResponse","StatusCode","EventsItemResponse","deserializeAws_restJson1MapOfEventItemResponse","httpStatusCode","requestId","extendedRequestId","cfId","collectBodyString","streamBody","collectBody","Uint8Array","streamCollector","then","utf8Encoder","encoded","parse","sanitizeErrorCode","rawValue","cleanValue","indexOf","split","headerKey","keys","find","k","toLowerCase"],"sourceRoot":""}