/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ package Ġaws . sdk . kotlin . codegen . protocols . middleware Ċ Ċ import Ġaws . sdk . kotlin . codegen . Aws Kotlin Dependency Ċ import Ġsoftware . amazon . smithy . kotlin . codegen . core . Kotlin Writer Ċ import Ġsoftware . amazon . smithy . kotlin . codegen . model . build Symbol Ċ import Ġsoftware . amazon . smithy . kotlin . codegen . model . namespace Ċ import Ġsoftware . amazon . smithy . kotlin . codegen . rendering . protocol . Protocol Generator Ċ import Ġsoftware . amazon . smithy . kotlin . codegen . rendering . protocol . Protocol Middleware Ċ import Ġsoftware . amazon . smithy . model . shapes . Operation Shape Ċ Ċ /** Ċ Ġ* ĠMiddleware Ġthat Ġsets Ġthe ĠUser - Agent Ġand Ġx - amz - user - agent Ġheaders Ċ Ġ*/ Ċ class ĠUser Agent Middleware Ġ: ĠProtocol Middleware Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname : ĠString Ġ= Ġ" UserAgent " ĊĠĠĠ Ġoverride Ġval Ġorder : ĠByte Ġ= Ġ 2 0 ĊĊĠĠĠ Ġprivate Ġval Ġua Symbol Ġ= Ġbuild Symbol Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Aws UserAgent Metadata " ĊĠĠĠĠĠĠĠ Ġnamespace ( Aws Kotlin Dependency . AWS _ HTTP ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġapi Meta Symbol Ġ= Ġbuild Symbol Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Api Metadata " ĊĠĠĠĠĠĠĠ Ġnamespace ( Aws Kotlin Dependency . AWS _ HTTP ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġmiddleware Symbol Ġ= Ġbuild Symbol Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" UserAgent " ĊĠĠĠĠĠĠĠ Ġnamespace ( Aws Kotlin Dependency . AWS _ HTTP , Ġsub package Ġ= Ġ" middleware ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender Properties ( writer : ĠKotlin Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġstatic Ġmetadata Ġthat Ġdoesn 't Ġchange Ġper / request ĊĠĠĠĠĠĠĠ Ġwriter . add Import ( ua Symbol ) ĊĠĠĠĠĠĠĠ Ġwriter . add Import ( api Meta Symbol ) ĊĠĠĠĠĠĠĠ Ġwriter . add Import ( middleware Symbol ) ĊĠĠĠĠĠĠĠ Ġwriter . write (" private Ġval Ġaws UserAgent Metadata Ġ= Ġ# T . from Environment (# T ( Service Id , ĠS dk Version )) ", Ġua Symbol , Ġapi Meta Symbol ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( ctx : ĠProtocol Generator . Generation Context , Ġop : ĠOperation Shape , Ġwriter : ĠKotlin Writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwriter . write (" op . install (# T ( aws UserAgent Metadata )) ", Ġmiddleware Symbol ) ĊĠĠĠ Ġ} Ċ } Ċ