/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ package Ġsoftware . amazon . smithy . swift . codegen . integration . httpResponse Ċ Ċ import Ġsoftware . amazon . smithy . codegen . core . Symbol Ċ import Ġsoftware . amazon . smithy . model . knowledge . Http Binding Ċ import Ġsoftware . amazon . smithy . model . shapes . Operation Shape Ċ import Ġsoftware . amazon . smithy . model . traits . Timestamp Format Trait Ċ import Ġsoftware . amazon . smithy . swift . codegen . Client Runtime Types Ċ import Ġsoftware . amazon . smithy . swift . codegen . Swift Dependency Ċ import Ġsoftware . amazon . smithy . swift . codegen . integration . Http Binding Resolver Ċ import Ġsoftware . amazon . smithy . swift . codegen . integration . Protocol Generator Ċ import Ġsoftware . amazon . smithy . swift . codegen . integration . httpResponse . binding Traits . HttpResponse Trait Payload Ċ import Ġsoftware . amazon . smithy . swift . codegen . integration . httpResponse . binding Traits . HttpResponse Trait QueryParams Ċ import Ġsoftware . amazon . smithy . swift . codegen . integration . httpResponse . binding Traits . HttpResponse Trait Response Code Ċ import Ġsoftware . amazon . smithy . swift . codegen . integration . middle wares . handlers . Middleware Shape Utils Ċ Ċ class ĠHttpResponse Binding Output Generator ( ĊĠĠĠ Ġval Ġctx : ĠProtocol Generator . Generation Context , ĊĠĠĠ Ġval Ġop : ĠOperation Shape , ĊĠĠĠ Ġval Ġhttp Binding Resolver : ĠHttp Binding Resolver , ĊĠĠĠ Ġval Ġdefault Timestamp Format : ĠTimestamp Format Trait . Format Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġrender () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( op . output . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġoutput Shape Name Ġ= ĠMiddleware Shape Utils . output Symbol ( ctx . symbol Provider , Ġctx . model , Ġop ). name ĊĠĠĠĠĠĠĠ Ġvar Ġresponse Bindings Ġ= Ġhttp Binding Resolver . response Bindings ( op ) ĊĠĠĠĠĠĠĠ Ġval Ġheader Bindings Ġ= Ġresponse Bindings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . location Ġ== ĠHttp Binding . Location . HEADER Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Ġ{ Ġit . member Name Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġroot Namespace Ġ= Ġctx . settings . moduleName ĊĠĠĠĠĠĠĠ Ġval Ġhttp Binding Symbol Ġ= ĠSymbol . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. definition File ("./ $ root Namespace / models /$ output Shape Name + HttpResponse Binding . swift ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name ( output Shape Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġctx . deleg ator . use Shape Writer ( http Binding Symbol ) Ġ{ Ġwriter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . add Import ( Swift Dependency . CLIENT _ RUNTIME . target ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . open Block (" extension Ġ$ output Shape Name : Ġ\$ N Ġ{ ", Ġ" }", ĠClient Runtime Types . Http . HttpResponse Binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . open Block (" public Ġinit Ġ( httpResponse : Ġ\$ N , Ġdecoder : Ġ\$ D ) Ġthrows Ġ{ ", Ġ" }", ĠClient Runtime Types . Http . HttpResponse , ĠClient Runtime Types . Ser de . Response Decoder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse Headers ( ctx , Ġheader Bindings , Ġdefault Timestamp Format , Ġwriter ). render () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse Prefix Headers ( ctx , Ġresponse Bindings , Ġwriter ). render () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse Trait Payload ( ctx , Ġresponse Bindings , Ġoutput Shape Name , Ġwriter ). render () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse Trait QueryParams ( ctx , Ġresponse Bindings , Ġwriter ). render () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpResponse Trait Response Code ( ctx , Ġresponse Bindings , Ġwriter ). render () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ