serializers.go 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. // Code generated by smithy-go-codegen DO NOT EDIT.
  2. package sts
  3. import (
  4. "bytes"
  5. "context"
  6. "fmt"
  7. "github.com/aws/aws-sdk-go-v2/aws/protocol/query"
  8. "github.com/aws/aws-sdk-go-v2/service/sts/types"
  9. smithy "github.com/aws/smithy-go"
  10. "github.com/aws/smithy-go/encoding/httpbinding"
  11. "github.com/aws/smithy-go/middleware"
  12. "github.com/aws/smithy-go/tracing"
  13. smithyhttp "github.com/aws/smithy-go/transport/http"
  14. "path"
  15. )
  16. type awsAwsquery_serializeOpAssumeRole struct {
  17. }
  18. func (*awsAwsquery_serializeOpAssumeRole) ID() string {
  19. return "OperationSerializer"
  20. }
  21. func (m *awsAwsquery_serializeOpAssumeRole) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  22. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  23. ) {
  24. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  25. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  26. defer endTimer()
  27. defer span.End()
  28. request, ok := in.Request.(*smithyhttp.Request)
  29. if !ok {
  30. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  31. }
  32. input, ok := in.Parameters.(*AssumeRoleInput)
  33. _ = input
  34. if !ok {
  35. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  36. }
  37. operationPath := "/"
  38. if len(request.Request.URL.Path) == 0 {
  39. request.Request.URL.Path = operationPath
  40. } else {
  41. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  42. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  43. request.Request.URL.Path += "/"
  44. }
  45. }
  46. request.Request.Method = "POST"
  47. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  48. if err != nil {
  49. return out, metadata, &smithy.SerializationError{Err: err}
  50. }
  51. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  52. bodyWriter := bytes.NewBuffer(nil)
  53. bodyEncoder := query.NewEncoder(bodyWriter)
  54. body := bodyEncoder.Object()
  55. body.Key("Action").String("AssumeRole")
  56. body.Key("Version").String("2011-06-15")
  57. if err := awsAwsquery_serializeOpDocumentAssumeRoleInput(input, bodyEncoder.Value); err != nil {
  58. return out, metadata, &smithy.SerializationError{Err: err}
  59. }
  60. err = bodyEncoder.Encode()
  61. if err != nil {
  62. return out, metadata, &smithy.SerializationError{Err: err}
  63. }
  64. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  65. return out, metadata, &smithy.SerializationError{Err: err}
  66. }
  67. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  68. return out, metadata, &smithy.SerializationError{Err: err}
  69. }
  70. in.Request = request
  71. endTimer()
  72. span.End()
  73. return next.HandleSerialize(ctx, in)
  74. }
  75. type awsAwsquery_serializeOpAssumeRoleWithSAML struct {
  76. }
  77. func (*awsAwsquery_serializeOpAssumeRoleWithSAML) ID() string {
  78. return "OperationSerializer"
  79. }
  80. func (m *awsAwsquery_serializeOpAssumeRoleWithSAML) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  81. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  82. ) {
  83. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  84. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  85. defer endTimer()
  86. defer span.End()
  87. request, ok := in.Request.(*smithyhttp.Request)
  88. if !ok {
  89. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  90. }
  91. input, ok := in.Parameters.(*AssumeRoleWithSAMLInput)
  92. _ = input
  93. if !ok {
  94. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  95. }
  96. operationPath := "/"
  97. if len(request.Request.URL.Path) == 0 {
  98. request.Request.URL.Path = operationPath
  99. } else {
  100. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  101. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  102. request.Request.URL.Path += "/"
  103. }
  104. }
  105. request.Request.Method = "POST"
  106. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  107. if err != nil {
  108. return out, metadata, &smithy.SerializationError{Err: err}
  109. }
  110. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  111. bodyWriter := bytes.NewBuffer(nil)
  112. bodyEncoder := query.NewEncoder(bodyWriter)
  113. body := bodyEncoder.Object()
  114. body.Key("Action").String("AssumeRoleWithSAML")
  115. body.Key("Version").String("2011-06-15")
  116. if err := awsAwsquery_serializeOpDocumentAssumeRoleWithSAMLInput(input, bodyEncoder.Value); err != nil {
  117. return out, metadata, &smithy.SerializationError{Err: err}
  118. }
  119. err = bodyEncoder.Encode()
  120. if err != nil {
  121. return out, metadata, &smithy.SerializationError{Err: err}
  122. }
  123. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  124. return out, metadata, &smithy.SerializationError{Err: err}
  125. }
  126. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  127. return out, metadata, &smithy.SerializationError{Err: err}
  128. }
  129. in.Request = request
  130. endTimer()
  131. span.End()
  132. return next.HandleSerialize(ctx, in)
  133. }
  134. type awsAwsquery_serializeOpAssumeRoleWithWebIdentity struct {
  135. }
  136. func (*awsAwsquery_serializeOpAssumeRoleWithWebIdentity) ID() string {
  137. return "OperationSerializer"
  138. }
  139. func (m *awsAwsquery_serializeOpAssumeRoleWithWebIdentity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  140. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  141. ) {
  142. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  143. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  144. defer endTimer()
  145. defer span.End()
  146. request, ok := in.Request.(*smithyhttp.Request)
  147. if !ok {
  148. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  149. }
  150. input, ok := in.Parameters.(*AssumeRoleWithWebIdentityInput)
  151. _ = input
  152. if !ok {
  153. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  154. }
  155. operationPath := "/"
  156. if len(request.Request.URL.Path) == 0 {
  157. request.Request.URL.Path = operationPath
  158. } else {
  159. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  160. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  161. request.Request.URL.Path += "/"
  162. }
  163. }
  164. request.Request.Method = "POST"
  165. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  166. if err != nil {
  167. return out, metadata, &smithy.SerializationError{Err: err}
  168. }
  169. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  170. bodyWriter := bytes.NewBuffer(nil)
  171. bodyEncoder := query.NewEncoder(bodyWriter)
  172. body := bodyEncoder.Object()
  173. body.Key("Action").String("AssumeRoleWithWebIdentity")
  174. body.Key("Version").String("2011-06-15")
  175. if err := awsAwsquery_serializeOpDocumentAssumeRoleWithWebIdentityInput(input, bodyEncoder.Value); err != nil {
  176. return out, metadata, &smithy.SerializationError{Err: err}
  177. }
  178. err = bodyEncoder.Encode()
  179. if err != nil {
  180. return out, metadata, &smithy.SerializationError{Err: err}
  181. }
  182. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  183. return out, metadata, &smithy.SerializationError{Err: err}
  184. }
  185. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  186. return out, metadata, &smithy.SerializationError{Err: err}
  187. }
  188. in.Request = request
  189. endTimer()
  190. span.End()
  191. return next.HandleSerialize(ctx, in)
  192. }
  193. type awsAwsquery_serializeOpAssumeRoot struct {
  194. }
  195. func (*awsAwsquery_serializeOpAssumeRoot) ID() string {
  196. return "OperationSerializer"
  197. }
  198. func (m *awsAwsquery_serializeOpAssumeRoot) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  199. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  200. ) {
  201. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  202. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  203. defer endTimer()
  204. defer span.End()
  205. request, ok := in.Request.(*smithyhttp.Request)
  206. if !ok {
  207. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  208. }
  209. input, ok := in.Parameters.(*AssumeRootInput)
  210. _ = input
  211. if !ok {
  212. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  213. }
  214. operationPath := "/"
  215. if len(request.Request.URL.Path) == 0 {
  216. request.Request.URL.Path = operationPath
  217. } else {
  218. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  219. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  220. request.Request.URL.Path += "/"
  221. }
  222. }
  223. request.Request.Method = "POST"
  224. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  225. if err != nil {
  226. return out, metadata, &smithy.SerializationError{Err: err}
  227. }
  228. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  229. bodyWriter := bytes.NewBuffer(nil)
  230. bodyEncoder := query.NewEncoder(bodyWriter)
  231. body := bodyEncoder.Object()
  232. body.Key("Action").String("AssumeRoot")
  233. body.Key("Version").String("2011-06-15")
  234. if err := awsAwsquery_serializeOpDocumentAssumeRootInput(input, bodyEncoder.Value); err != nil {
  235. return out, metadata, &smithy.SerializationError{Err: err}
  236. }
  237. err = bodyEncoder.Encode()
  238. if err != nil {
  239. return out, metadata, &smithy.SerializationError{Err: err}
  240. }
  241. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  242. return out, metadata, &smithy.SerializationError{Err: err}
  243. }
  244. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  245. return out, metadata, &smithy.SerializationError{Err: err}
  246. }
  247. in.Request = request
  248. endTimer()
  249. span.End()
  250. return next.HandleSerialize(ctx, in)
  251. }
  252. type awsAwsquery_serializeOpDecodeAuthorizationMessage struct {
  253. }
  254. func (*awsAwsquery_serializeOpDecodeAuthorizationMessage) ID() string {
  255. return "OperationSerializer"
  256. }
  257. func (m *awsAwsquery_serializeOpDecodeAuthorizationMessage) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  258. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  259. ) {
  260. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  261. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  262. defer endTimer()
  263. defer span.End()
  264. request, ok := in.Request.(*smithyhttp.Request)
  265. if !ok {
  266. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  267. }
  268. input, ok := in.Parameters.(*DecodeAuthorizationMessageInput)
  269. _ = input
  270. if !ok {
  271. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  272. }
  273. operationPath := "/"
  274. if len(request.Request.URL.Path) == 0 {
  275. request.Request.URL.Path = operationPath
  276. } else {
  277. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  278. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  279. request.Request.URL.Path += "/"
  280. }
  281. }
  282. request.Request.Method = "POST"
  283. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  284. if err != nil {
  285. return out, metadata, &smithy.SerializationError{Err: err}
  286. }
  287. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  288. bodyWriter := bytes.NewBuffer(nil)
  289. bodyEncoder := query.NewEncoder(bodyWriter)
  290. body := bodyEncoder.Object()
  291. body.Key("Action").String("DecodeAuthorizationMessage")
  292. body.Key("Version").String("2011-06-15")
  293. if err := awsAwsquery_serializeOpDocumentDecodeAuthorizationMessageInput(input, bodyEncoder.Value); err != nil {
  294. return out, metadata, &smithy.SerializationError{Err: err}
  295. }
  296. err = bodyEncoder.Encode()
  297. if err != nil {
  298. return out, metadata, &smithy.SerializationError{Err: err}
  299. }
  300. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  301. return out, metadata, &smithy.SerializationError{Err: err}
  302. }
  303. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  304. return out, metadata, &smithy.SerializationError{Err: err}
  305. }
  306. in.Request = request
  307. endTimer()
  308. span.End()
  309. return next.HandleSerialize(ctx, in)
  310. }
  311. type awsAwsquery_serializeOpGetAccessKeyInfo struct {
  312. }
  313. func (*awsAwsquery_serializeOpGetAccessKeyInfo) ID() string {
  314. return "OperationSerializer"
  315. }
  316. func (m *awsAwsquery_serializeOpGetAccessKeyInfo) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  317. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  318. ) {
  319. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  320. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  321. defer endTimer()
  322. defer span.End()
  323. request, ok := in.Request.(*smithyhttp.Request)
  324. if !ok {
  325. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  326. }
  327. input, ok := in.Parameters.(*GetAccessKeyInfoInput)
  328. _ = input
  329. if !ok {
  330. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  331. }
  332. operationPath := "/"
  333. if len(request.Request.URL.Path) == 0 {
  334. request.Request.URL.Path = operationPath
  335. } else {
  336. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  337. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  338. request.Request.URL.Path += "/"
  339. }
  340. }
  341. request.Request.Method = "POST"
  342. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  343. if err != nil {
  344. return out, metadata, &smithy.SerializationError{Err: err}
  345. }
  346. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  347. bodyWriter := bytes.NewBuffer(nil)
  348. bodyEncoder := query.NewEncoder(bodyWriter)
  349. body := bodyEncoder.Object()
  350. body.Key("Action").String("GetAccessKeyInfo")
  351. body.Key("Version").String("2011-06-15")
  352. if err := awsAwsquery_serializeOpDocumentGetAccessKeyInfoInput(input, bodyEncoder.Value); err != nil {
  353. return out, metadata, &smithy.SerializationError{Err: err}
  354. }
  355. err = bodyEncoder.Encode()
  356. if err != nil {
  357. return out, metadata, &smithy.SerializationError{Err: err}
  358. }
  359. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  360. return out, metadata, &smithy.SerializationError{Err: err}
  361. }
  362. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  363. return out, metadata, &smithy.SerializationError{Err: err}
  364. }
  365. in.Request = request
  366. endTimer()
  367. span.End()
  368. return next.HandleSerialize(ctx, in)
  369. }
  370. type awsAwsquery_serializeOpGetCallerIdentity struct {
  371. }
  372. func (*awsAwsquery_serializeOpGetCallerIdentity) ID() string {
  373. return "OperationSerializer"
  374. }
  375. func (m *awsAwsquery_serializeOpGetCallerIdentity) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  376. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  377. ) {
  378. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  379. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  380. defer endTimer()
  381. defer span.End()
  382. request, ok := in.Request.(*smithyhttp.Request)
  383. if !ok {
  384. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  385. }
  386. input, ok := in.Parameters.(*GetCallerIdentityInput)
  387. _ = input
  388. if !ok {
  389. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  390. }
  391. operationPath := "/"
  392. if len(request.Request.URL.Path) == 0 {
  393. request.Request.URL.Path = operationPath
  394. } else {
  395. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  396. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  397. request.Request.URL.Path += "/"
  398. }
  399. }
  400. request.Request.Method = "POST"
  401. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  402. if err != nil {
  403. return out, metadata, &smithy.SerializationError{Err: err}
  404. }
  405. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  406. bodyWriter := bytes.NewBuffer(nil)
  407. bodyEncoder := query.NewEncoder(bodyWriter)
  408. body := bodyEncoder.Object()
  409. body.Key("Action").String("GetCallerIdentity")
  410. body.Key("Version").String("2011-06-15")
  411. err = bodyEncoder.Encode()
  412. if err != nil {
  413. return out, metadata, &smithy.SerializationError{Err: err}
  414. }
  415. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  416. return out, metadata, &smithy.SerializationError{Err: err}
  417. }
  418. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  419. return out, metadata, &smithy.SerializationError{Err: err}
  420. }
  421. in.Request = request
  422. endTimer()
  423. span.End()
  424. return next.HandleSerialize(ctx, in)
  425. }
  426. type awsAwsquery_serializeOpGetFederationToken struct {
  427. }
  428. func (*awsAwsquery_serializeOpGetFederationToken) ID() string {
  429. return "OperationSerializer"
  430. }
  431. func (m *awsAwsquery_serializeOpGetFederationToken) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  432. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  433. ) {
  434. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  435. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  436. defer endTimer()
  437. defer span.End()
  438. request, ok := in.Request.(*smithyhttp.Request)
  439. if !ok {
  440. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  441. }
  442. input, ok := in.Parameters.(*GetFederationTokenInput)
  443. _ = input
  444. if !ok {
  445. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  446. }
  447. operationPath := "/"
  448. if len(request.Request.URL.Path) == 0 {
  449. request.Request.URL.Path = operationPath
  450. } else {
  451. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  452. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  453. request.Request.URL.Path += "/"
  454. }
  455. }
  456. request.Request.Method = "POST"
  457. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  458. if err != nil {
  459. return out, metadata, &smithy.SerializationError{Err: err}
  460. }
  461. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  462. bodyWriter := bytes.NewBuffer(nil)
  463. bodyEncoder := query.NewEncoder(bodyWriter)
  464. body := bodyEncoder.Object()
  465. body.Key("Action").String("GetFederationToken")
  466. body.Key("Version").String("2011-06-15")
  467. if err := awsAwsquery_serializeOpDocumentGetFederationTokenInput(input, bodyEncoder.Value); err != nil {
  468. return out, metadata, &smithy.SerializationError{Err: err}
  469. }
  470. err = bodyEncoder.Encode()
  471. if err != nil {
  472. return out, metadata, &smithy.SerializationError{Err: err}
  473. }
  474. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  475. return out, metadata, &smithy.SerializationError{Err: err}
  476. }
  477. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  478. return out, metadata, &smithy.SerializationError{Err: err}
  479. }
  480. in.Request = request
  481. endTimer()
  482. span.End()
  483. return next.HandleSerialize(ctx, in)
  484. }
  485. type awsAwsquery_serializeOpGetSessionToken struct {
  486. }
  487. func (*awsAwsquery_serializeOpGetSessionToken) ID() string {
  488. return "OperationSerializer"
  489. }
  490. func (m *awsAwsquery_serializeOpGetSessionToken) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) (
  491. out middleware.SerializeOutput, metadata middleware.Metadata, err error,
  492. ) {
  493. _, span := tracing.StartSpan(ctx, "OperationSerializer")
  494. endTimer := startMetricTimer(ctx, "client.call.serialization_duration")
  495. defer endTimer()
  496. defer span.End()
  497. request, ok := in.Request.(*smithyhttp.Request)
  498. if !ok {
  499. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)}
  500. }
  501. input, ok := in.Parameters.(*GetSessionTokenInput)
  502. _ = input
  503. if !ok {
  504. return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)}
  505. }
  506. operationPath := "/"
  507. if len(request.Request.URL.Path) == 0 {
  508. request.Request.URL.Path = operationPath
  509. } else {
  510. request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath)
  511. if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' {
  512. request.Request.URL.Path += "/"
  513. }
  514. }
  515. request.Request.Method = "POST"
  516. httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header)
  517. if err != nil {
  518. return out, metadata, &smithy.SerializationError{Err: err}
  519. }
  520. httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded")
  521. bodyWriter := bytes.NewBuffer(nil)
  522. bodyEncoder := query.NewEncoder(bodyWriter)
  523. body := bodyEncoder.Object()
  524. body.Key("Action").String("GetSessionToken")
  525. body.Key("Version").String("2011-06-15")
  526. if err := awsAwsquery_serializeOpDocumentGetSessionTokenInput(input, bodyEncoder.Value); err != nil {
  527. return out, metadata, &smithy.SerializationError{Err: err}
  528. }
  529. err = bodyEncoder.Encode()
  530. if err != nil {
  531. return out, metadata, &smithy.SerializationError{Err: err}
  532. }
  533. if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil {
  534. return out, metadata, &smithy.SerializationError{Err: err}
  535. }
  536. if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil {
  537. return out, metadata, &smithy.SerializationError{Err: err}
  538. }
  539. in.Request = request
  540. endTimer()
  541. span.End()
  542. return next.HandleSerialize(ctx, in)
  543. }
  544. func awsAwsquery_serializeDocumentPolicyDescriptorListType(v []types.PolicyDescriptorType, value query.Value) error {
  545. array := value.Array("member")
  546. for i := range v {
  547. av := array.Value()
  548. if err := awsAwsquery_serializeDocumentPolicyDescriptorType(&v[i], av); err != nil {
  549. return err
  550. }
  551. }
  552. return nil
  553. }
  554. func awsAwsquery_serializeDocumentPolicyDescriptorType(v *types.PolicyDescriptorType, value query.Value) error {
  555. object := value.Object()
  556. _ = object
  557. if v.Arn != nil {
  558. objectKey := object.Key("arn")
  559. objectKey.String(*v.Arn)
  560. }
  561. return nil
  562. }
  563. func awsAwsquery_serializeDocumentProvidedContext(v *types.ProvidedContext, value query.Value) error {
  564. object := value.Object()
  565. _ = object
  566. if v.ContextAssertion != nil {
  567. objectKey := object.Key("ContextAssertion")
  568. objectKey.String(*v.ContextAssertion)
  569. }
  570. if v.ProviderArn != nil {
  571. objectKey := object.Key("ProviderArn")
  572. objectKey.String(*v.ProviderArn)
  573. }
  574. return nil
  575. }
  576. func awsAwsquery_serializeDocumentProvidedContextsListType(v []types.ProvidedContext, value query.Value) error {
  577. array := value.Array("member")
  578. for i := range v {
  579. av := array.Value()
  580. if err := awsAwsquery_serializeDocumentProvidedContext(&v[i], av); err != nil {
  581. return err
  582. }
  583. }
  584. return nil
  585. }
  586. func awsAwsquery_serializeDocumentTag(v *types.Tag, value query.Value) error {
  587. object := value.Object()
  588. _ = object
  589. if v.Key != nil {
  590. objectKey := object.Key("Key")
  591. objectKey.String(*v.Key)
  592. }
  593. if v.Value != nil {
  594. objectKey := object.Key("Value")
  595. objectKey.String(*v.Value)
  596. }
  597. return nil
  598. }
  599. func awsAwsquery_serializeDocumentTagKeyListType(v []string, value query.Value) error {
  600. array := value.Array("member")
  601. for i := range v {
  602. av := array.Value()
  603. av.String(v[i])
  604. }
  605. return nil
  606. }
  607. func awsAwsquery_serializeDocumentTagListType(v []types.Tag, value query.Value) error {
  608. array := value.Array("member")
  609. for i := range v {
  610. av := array.Value()
  611. if err := awsAwsquery_serializeDocumentTag(&v[i], av); err != nil {
  612. return err
  613. }
  614. }
  615. return nil
  616. }
  617. func awsAwsquery_serializeOpDocumentAssumeRoleInput(v *AssumeRoleInput, value query.Value) error {
  618. object := value.Object()
  619. _ = object
  620. if v.DurationSeconds != nil {
  621. objectKey := object.Key("DurationSeconds")
  622. objectKey.Integer(*v.DurationSeconds)
  623. }
  624. if v.ExternalId != nil {
  625. objectKey := object.Key("ExternalId")
  626. objectKey.String(*v.ExternalId)
  627. }
  628. if v.Policy != nil {
  629. objectKey := object.Key("Policy")
  630. objectKey.String(*v.Policy)
  631. }
  632. if v.PolicyArns != nil {
  633. objectKey := object.Key("PolicyArns")
  634. if err := awsAwsquery_serializeDocumentPolicyDescriptorListType(v.PolicyArns, objectKey); err != nil {
  635. return err
  636. }
  637. }
  638. if v.ProvidedContexts != nil {
  639. objectKey := object.Key("ProvidedContexts")
  640. if err := awsAwsquery_serializeDocumentProvidedContextsListType(v.ProvidedContexts, objectKey); err != nil {
  641. return err
  642. }
  643. }
  644. if v.RoleArn != nil {
  645. objectKey := object.Key("RoleArn")
  646. objectKey.String(*v.RoleArn)
  647. }
  648. if v.RoleSessionName != nil {
  649. objectKey := object.Key("RoleSessionName")
  650. objectKey.String(*v.RoleSessionName)
  651. }
  652. if v.SerialNumber != nil {
  653. objectKey := object.Key("SerialNumber")
  654. objectKey.String(*v.SerialNumber)
  655. }
  656. if v.SourceIdentity != nil {
  657. objectKey := object.Key("SourceIdentity")
  658. objectKey.String(*v.SourceIdentity)
  659. }
  660. if v.Tags != nil {
  661. objectKey := object.Key("Tags")
  662. if err := awsAwsquery_serializeDocumentTagListType(v.Tags, objectKey); err != nil {
  663. return err
  664. }
  665. }
  666. if v.TokenCode != nil {
  667. objectKey := object.Key("TokenCode")
  668. objectKey.String(*v.TokenCode)
  669. }
  670. if v.TransitiveTagKeys != nil {
  671. objectKey := object.Key("TransitiveTagKeys")
  672. if err := awsAwsquery_serializeDocumentTagKeyListType(v.TransitiveTagKeys, objectKey); err != nil {
  673. return err
  674. }
  675. }
  676. return nil
  677. }
  678. func awsAwsquery_serializeOpDocumentAssumeRoleWithSAMLInput(v *AssumeRoleWithSAMLInput, value query.Value) error {
  679. object := value.Object()
  680. _ = object
  681. if v.DurationSeconds != nil {
  682. objectKey := object.Key("DurationSeconds")
  683. objectKey.Integer(*v.DurationSeconds)
  684. }
  685. if v.Policy != nil {
  686. objectKey := object.Key("Policy")
  687. objectKey.String(*v.Policy)
  688. }
  689. if v.PolicyArns != nil {
  690. objectKey := object.Key("PolicyArns")
  691. if err := awsAwsquery_serializeDocumentPolicyDescriptorListType(v.PolicyArns, objectKey); err != nil {
  692. return err
  693. }
  694. }
  695. if v.PrincipalArn != nil {
  696. objectKey := object.Key("PrincipalArn")
  697. objectKey.String(*v.PrincipalArn)
  698. }
  699. if v.RoleArn != nil {
  700. objectKey := object.Key("RoleArn")
  701. objectKey.String(*v.RoleArn)
  702. }
  703. if v.SAMLAssertion != nil {
  704. objectKey := object.Key("SAMLAssertion")
  705. objectKey.String(*v.SAMLAssertion)
  706. }
  707. return nil
  708. }
  709. func awsAwsquery_serializeOpDocumentAssumeRoleWithWebIdentityInput(v *AssumeRoleWithWebIdentityInput, value query.Value) error {
  710. object := value.Object()
  711. _ = object
  712. if v.DurationSeconds != nil {
  713. objectKey := object.Key("DurationSeconds")
  714. objectKey.Integer(*v.DurationSeconds)
  715. }
  716. if v.Policy != nil {
  717. objectKey := object.Key("Policy")
  718. objectKey.String(*v.Policy)
  719. }
  720. if v.PolicyArns != nil {
  721. objectKey := object.Key("PolicyArns")
  722. if err := awsAwsquery_serializeDocumentPolicyDescriptorListType(v.PolicyArns, objectKey); err != nil {
  723. return err
  724. }
  725. }
  726. if v.ProviderId != nil {
  727. objectKey := object.Key("ProviderId")
  728. objectKey.String(*v.ProviderId)
  729. }
  730. if v.RoleArn != nil {
  731. objectKey := object.Key("RoleArn")
  732. objectKey.String(*v.RoleArn)
  733. }
  734. if v.RoleSessionName != nil {
  735. objectKey := object.Key("RoleSessionName")
  736. objectKey.String(*v.RoleSessionName)
  737. }
  738. if v.WebIdentityToken != nil {
  739. objectKey := object.Key("WebIdentityToken")
  740. objectKey.String(*v.WebIdentityToken)
  741. }
  742. return nil
  743. }
  744. func awsAwsquery_serializeOpDocumentAssumeRootInput(v *AssumeRootInput, value query.Value) error {
  745. object := value.Object()
  746. _ = object
  747. if v.DurationSeconds != nil {
  748. objectKey := object.Key("DurationSeconds")
  749. objectKey.Integer(*v.DurationSeconds)
  750. }
  751. if v.TargetPrincipal != nil {
  752. objectKey := object.Key("TargetPrincipal")
  753. objectKey.String(*v.TargetPrincipal)
  754. }
  755. if v.TaskPolicyArn != nil {
  756. objectKey := object.Key("TaskPolicyArn")
  757. if err := awsAwsquery_serializeDocumentPolicyDescriptorType(v.TaskPolicyArn, objectKey); err != nil {
  758. return err
  759. }
  760. }
  761. return nil
  762. }
  763. func awsAwsquery_serializeOpDocumentDecodeAuthorizationMessageInput(v *DecodeAuthorizationMessageInput, value query.Value) error {
  764. object := value.Object()
  765. _ = object
  766. if v.EncodedMessage != nil {
  767. objectKey := object.Key("EncodedMessage")
  768. objectKey.String(*v.EncodedMessage)
  769. }
  770. return nil
  771. }
  772. func awsAwsquery_serializeOpDocumentGetAccessKeyInfoInput(v *GetAccessKeyInfoInput, value query.Value) error {
  773. object := value.Object()
  774. _ = object
  775. if v.AccessKeyId != nil {
  776. objectKey := object.Key("AccessKeyId")
  777. objectKey.String(*v.AccessKeyId)
  778. }
  779. return nil
  780. }
  781. func awsAwsquery_serializeOpDocumentGetCallerIdentityInput(v *GetCallerIdentityInput, value query.Value) error {
  782. object := value.Object()
  783. _ = object
  784. return nil
  785. }
  786. func awsAwsquery_serializeOpDocumentGetFederationTokenInput(v *GetFederationTokenInput, value query.Value) error {
  787. object := value.Object()
  788. _ = object
  789. if v.DurationSeconds != nil {
  790. objectKey := object.Key("DurationSeconds")
  791. objectKey.Integer(*v.DurationSeconds)
  792. }
  793. if v.Name != nil {
  794. objectKey := object.Key("Name")
  795. objectKey.String(*v.Name)
  796. }
  797. if v.Policy != nil {
  798. objectKey := object.Key("Policy")
  799. objectKey.String(*v.Policy)
  800. }
  801. if v.PolicyArns != nil {
  802. objectKey := object.Key("PolicyArns")
  803. if err := awsAwsquery_serializeDocumentPolicyDescriptorListType(v.PolicyArns, objectKey); err != nil {
  804. return err
  805. }
  806. }
  807. if v.Tags != nil {
  808. objectKey := object.Key("Tags")
  809. if err := awsAwsquery_serializeDocumentTagListType(v.Tags, objectKey); err != nil {
  810. return err
  811. }
  812. }
  813. return nil
  814. }
  815. func awsAwsquery_serializeOpDocumentGetSessionTokenInput(v *GetSessionTokenInput, value query.Value) error {
  816. object := value.Object()
  817. _ = object
  818. if v.DurationSeconds != nil {
  819. objectKey := object.Key("DurationSeconds")
  820. objectKey.Integer(*v.DurationSeconds)
  821. }
  822. if v.SerialNumber != nil {
  823. objectKey := object.Key("SerialNumber")
  824. objectKey.String(*v.SerialNumber)
  825. }
  826. if v.TokenCode != nil {
  827. objectKey := object.Key("TokenCode")
  828. objectKey.String(*v.TokenCode)
  829. }
  830. return nil
  831. }