deserializers.go 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151
  1. // Code generated by smithy-go-codegen DO NOT EDIT.
  2. package sso
  3. import (
  4. "bytes"
  5. "context"
  6. "encoding/json"
  7. "fmt"
  8. "github.com/aws/aws-sdk-go-v2/aws/protocol/restjson"
  9. "github.com/aws/aws-sdk-go-v2/service/sso/types"
  10. smithy "github.com/aws/smithy-go"
  11. smithyio "github.com/aws/smithy-go/io"
  12. "github.com/aws/smithy-go/middleware"
  13. "github.com/aws/smithy-go/ptr"
  14. smithyhttp "github.com/aws/smithy-go/transport/http"
  15. "io"
  16. "io/ioutil"
  17. "strings"
  18. )
  19. type awsRestjson1_deserializeOpGetRoleCredentials struct {
  20. }
  21. func (*awsRestjson1_deserializeOpGetRoleCredentials) ID() string {
  22. return "OperationDeserializer"
  23. }
  24. func (m *awsRestjson1_deserializeOpGetRoleCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  25. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  26. ) {
  27. out, metadata, err = next.HandleDeserialize(ctx, in)
  28. if err != nil {
  29. return out, metadata, err
  30. }
  31. response, ok := out.RawResponse.(*smithyhttp.Response)
  32. if !ok {
  33. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  34. }
  35. if response.StatusCode < 200 || response.StatusCode >= 300 {
  36. return out, metadata, awsRestjson1_deserializeOpErrorGetRoleCredentials(response, &metadata)
  37. }
  38. output := &GetRoleCredentialsOutput{}
  39. out.Result = output
  40. var buff [1024]byte
  41. ringBuffer := smithyio.NewRingBuffer(buff[:])
  42. body := io.TeeReader(response.Body, ringBuffer)
  43. decoder := json.NewDecoder(body)
  44. decoder.UseNumber()
  45. var shape interface{}
  46. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  47. var snapshot bytes.Buffer
  48. io.Copy(&snapshot, ringBuffer)
  49. err = &smithy.DeserializationError{
  50. Err: fmt.Errorf("failed to decode response body, %w", err),
  51. Snapshot: snapshot.Bytes(),
  52. }
  53. return out, metadata, err
  54. }
  55. err = awsRestjson1_deserializeOpDocumentGetRoleCredentialsOutput(&output, shape)
  56. if err != nil {
  57. var snapshot bytes.Buffer
  58. io.Copy(&snapshot, ringBuffer)
  59. return out, metadata, &smithy.DeserializationError{
  60. Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
  61. Snapshot: snapshot.Bytes(),
  62. }
  63. }
  64. return out, metadata, err
  65. }
  66. func awsRestjson1_deserializeOpErrorGetRoleCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  67. var errorBuffer bytes.Buffer
  68. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  69. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  70. }
  71. errorBody := bytes.NewReader(errorBuffer.Bytes())
  72. errorCode := "UnknownError"
  73. errorMessage := errorCode
  74. headerCode := response.Header.Get("X-Amzn-ErrorType")
  75. if len(headerCode) != 0 {
  76. errorCode = restjson.SanitizeErrorCode(headerCode)
  77. }
  78. var buff [1024]byte
  79. ringBuffer := smithyio.NewRingBuffer(buff[:])
  80. body := io.TeeReader(errorBody, ringBuffer)
  81. decoder := json.NewDecoder(body)
  82. decoder.UseNumber()
  83. jsonCode, message, err := restjson.GetErrorInfo(decoder)
  84. if err != nil {
  85. var snapshot bytes.Buffer
  86. io.Copy(&snapshot, ringBuffer)
  87. err = &smithy.DeserializationError{
  88. Err: fmt.Errorf("failed to decode response body, %w", err),
  89. Snapshot: snapshot.Bytes(),
  90. }
  91. return err
  92. }
  93. errorBody.Seek(0, io.SeekStart)
  94. if len(headerCode) == 0 && len(jsonCode) != 0 {
  95. errorCode = restjson.SanitizeErrorCode(jsonCode)
  96. }
  97. if len(message) != 0 {
  98. errorMessage = message
  99. }
  100. switch {
  101. case strings.EqualFold("InvalidRequestException", errorCode):
  102. return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
  103. case strings.EqualFold("ResourceNotFoundException", errorCode):
  104. return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
  105. case strings.EqualFold("TooManyRequestsException", errorCode):
  106. return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody)
  107. case strings.EqualFold("UnauthorizedException", errorCode):
  108. return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody)
  109. default:
  110. genericError := &smithy.GenericAPIError{
  111. Code: errorCode,
  112. Message: errorMessage,
  113. }
  114. return genericError
  115. }
  116. }
  117. func awsRestjson1_deserializeOpDocumentGetRoleCredentialsOutput(v **GetRoleCredentialsOutput, value interface{}) error {
  118. if v == nil {
  119. return fmt.Errorf("unexpected nil of type %T", v)
  120. }
  121. if value == nil {
  122. return nil
  123. }
  124. shape, ok := value.(map[string]interface{})
  125. if !ok {
  126. return fmt.Errorf("unexpected JSON type %v", value)
  127. }
  128. var sv *GetRoleCredentialsOutput
  129. if *v == nil {
  130. sv = &GetRoleCredentialsOutput{}
  131. } else {
  132. sv = *v
  133. }
  134. for key, value := range shape {
  135. switch key {
  136. case "roleCredentials":
  137. if err := awsRestjson1_deserializeDocumentRoleCredentials(&sv.RoleCredentials, value); err != nil {
  138. return err
  139. }
  140. default:
  141. _, _ = key, value
  142. }
  143. }
  144. *v = sv
  145. return nil
  146. }
  147. type awsRestjson1_deserializeOpListAccountRoles struct {
  148. }
  149. func (*awsRestjson1_deserializeOpListAccountRoles) ID() string {
  150. return "OperationDeserializer"
  151. }
  152. func (m *awsRestjson1_deserializeOpListAccountRoles) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  153. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  154. ) {
  155. out, metadata, err = next.HandleDeserialize(ctx, in)
  156. if err != nil {
  157. return out, metadata, err
  158. }
  159. response, ok := out.RawResponse.(*smithyhttp.Response)
  160. if !ok {
  161. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  162. }
  163. if response.StatusCode < 200 || response.StatusCode >= 300 {
  164. return out, metadata, awsRestjson1_deserializeOpErrorListAccountRoles(response, &metadata)
  165. }
  166. output := &ListAccountRolesOutput{}
  167. out.Result = output
  168. var buff [1024]byte
  169. ringBuffer := smithyio.NewRingBuffer(buff[:])
  170. body := io.TeeReader(response.Body, ringBuffer)
  171. decoder := json.NewDecoder(body)
  172. decoder.UseNumber()
  173. var shape interface{}
  174. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  175. var snapshot bytes.Buffer
  176. io.Copy(&snapshot, ringBuffer)
  177. err = &smithy.DeserializationError{
  178. Err: fmt.Errorf("failed to decode response body, %w", err),
  179. Snapshot: snapshot.Bytes(),
  180. }
  181. return out, metadata, err
  182. }
  183. err = awsRestjson1_deserializeOpDocumentListAccountRolesOutput(&output, shape)
  184. if err != nil {
  185. var snapshot bytes.Buffer
  186. io.Copy(&snapshot, ringBuffer)
  187. return out, metadata, &smithy.DeserializationError{
  188. Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
  189. Snapshot: snapshot.Bytes(),
  190. }
  191. }
  192. return out, metadata, err
  193. }
  194. func awsRestjson1_deserializeOpErrorListAccountRoles(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  195. var errorBuffer bytes.Buffer
  196. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  197. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  198. }
  199. errorBody := bytes.NewReader(errorBuffer.Bytes())
  200. errorCode := "UnknownError"
  201. errorMessage := errorCode
  202. headerCode := response.Header.Get("X-Amzn-ErrorType")
  203. if len(headerCode) != 0 {
  204. errorCode = restjson.SanitizeErrorCode(headerCode)
  205. }
  206. var buff [1024]byte
  207. ringBuffer := smithyio.NewRingBuffer(buff[:])
  208. body := io.TeeReader(errorBody, ringBuffer)
  209. decoder := json.NewDecoder(body)
  210. decoder.UseNumber()
  211. jsonCode, message, err := restjson.GetErrorInfo(decoder)
  212. if err != nil {
  213. var snapshot bytes.Buffer
  214. io.Copy(&snapshot, ringBuffer)
  215. err = &smithy.DeserializationError{
  216. Err: fmt.Errorf("failed to decode response body, %w", err),
  217. Snapshot: snapshot.Bytes(),
  218. }
  219. return err
  220. }
  221. errorBody.Seek(0, io.SeekStart)
  222. if len(headerCode) == 0 && len(jsonCode) != 0 {
  223. errorCode = restjson.SanitizeErrorCode(jsonCode)
  224. }
  225. if len(message) != 0 {
  226. errorMessage = message
  227. }
  228. switch {
  229. case strings.EqualFold("InvalidRequestException", errorCode):
  230. return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
  231. case strings.EqualFold("ResourceNotFoundException", errorCode):
  232. return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
  233. case strings.EqualFold("TooManyRequestsException", errorCode):
  234. return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody)
  235. case strings.EqualFold("UnauthorizedException", errorCode):
  236. return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody)
  237. default:
  238. genericError := &smithy.GenericAPIError{
  239. Code: errorCode,
  240. Message: errorMessage,
  241. }
  242. return genericError
  243. }
  244. }
  245. func awsRestjson1_deserializeOpDocumentListAccountRolesOutput(v **ListAccountRolesOutput, value interface{}) error {
  246. if v == nil {
  247. return fmt.Errorf("unexpected nil of type %T", v)
  248. }
  249. if value == nil {
  250. return nil
  251. }
  252. shape, ok := value.(map[string]interface{})
  253. if !ok {
  254. return fmt.Errorf("unexpected JSON type %v", value)
  255. }
  256. var sv *ListAccountRolesOutput
  257. if *v == nil {
  258. sv = &ListAccountRolesOutput{}
  259. } else {
  260. sv = *v
  261. }
  262. for key, value := range shape {
  263. switch key {
  264. case "nextToken":
  265. if value != nil {
  266. jtv, ok := value.(string)
  267. if !ok {
  268. return fmt.Errorf("expected NextTokenType to be of type string, got %T instead", value)
  269. }
  270. sv.NextToken = ptr.String(jtv)
  271. }
  272. case "roleList":
  273. if err := awsRestjson1_deserializeDocumentRoleListType(&sv.RoleList, value); err != nil {
  274. return err
  275. }
  276. default:
  277. _, _ = key, value
  278. }
  279. }
  280. *v = sv
  281. return nil
  282. }
  283. type awsRestjson1_deserializeOpListAccounts struct {
  284. }
  285. func (*awsRestjson1_deserializeOpListAccounts) ID() string {
  286. return "OperationDeserializer"
  287. }
  288. func (m *awsRestjson1_deserializeOpListAccounts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  289. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  290. ) {
  291. out, metadata, err = next.HandleDeserialize(ctx, in)
  292. if err != nil {
  293. return out, metadata, err
  294. }
  295. response, ok := out.RawResponse.(*smithyhttp.Response)
  296. if !ok {
  297. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  298. }
  299. if response.StatusCode < 200 || response.StatusCode >= 300 {
  300. return out, metadata, awsRestjson1_deserializeOpErrorListAccounts(response, &metadata)
  301. }
  302. output := &ListAccountsOutput{}
  303. out.Result = output
  304. var buff [1024]byte
  305. ringBuffer := smithyio.NewRingBuffer(buff[:])
  306. body := io.TeeReader(response.Body, ringBuffer)
  307. decoder := json.NewDecoder(body)
  308. decoder.UseNumber()
  309. var shape interface{}
  310. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  311. var snapshot bytes.Buffer
  312. io.Copy(&snapshot, ringBuffer)
  313. err = &smithy.DeserializationError{
  314. Err: fmt.Errorf("failed to decode response body, %w", err),
  315. Snapshot: snapshot.Bytes(),
  316. }
  317. return out, metadata, err
  318. }
  319. err = awsRestjson1_deserializeOpDocumentListAccountsOutput(&output, shape)
  320. if err != nil {
  321. var snapshot bytes.Buffer
  322. io.Copy(&snapshot, ringBuffer)
  323. return out, metadata, &smithy.DeserializationError{
  324. Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
  325. Snapshot: snapshot.Bytes(),
  326. }
  327. }
  328. return out, metadata, err
  329. }
  330. func awsRestjson1_deserializeOpErrorListAccounts(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  331. var errorBuffer bytes.Buffer
  332. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  333. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  334. }
  335. errorBody := bytes.NewReader(errorBuffer.Bytes())
  336. errorCode := "UnknownError"
  337. errorMessage := errorCode
  338. headerCode := response.Header.Get("X-Amzn-ErrorType")
  339. if len(headerCode) != 0 {
  340. errorCode = restjson.SanitizeErrorCode(headerCode)
  341. }
  342. var buff [1024]byte
  343. ringBuffer := smithyio.NewRingBuffer(buff[:])
  344. body := io.TeeReader(errorBody, ringBuffer)
  345. decoder := json.NewDecoder(body)
  346. decoder.UseNumber()
  347. jsonCode, message, err := restjson.GetErrorInfo(decoder)
  348. if err != nil {
  349. var snapshot bytes.Buffer
  350. io.Copy(&snapshot, ringBuffer)
  351. err = &smithy.DeserializationError{
  352. Err: fmt.Errorf("failed to decode response body, %w", err),
  353. Snapshot: snapshot.Bytes(),
  354. }
  355. return err
  356. }
  357. errorBody.Seek(0, io.SeekStart)
  358. if len(headerCode) == 0 && len(jsonCode) != 0 {
  359. errorCode = restjson.SanitizeErrorCode(jsonCode)
  360. }
  361. if len(message) != 0 {
  362. errorMessage = message
  363. }
  364. switch {
  365. case strings.EqualFold("InvalidRequestException", errorCode):
  366. return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
  367. case strings.EqualFold("ResourceNotFoundException", errorCode):
  368. return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
  369. case strings.EqualFold("TooManyRequestsException", errorCode):
  370. return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody)
  371. case strings.EqualFold("UnauthorizedException", errorCode):
  372. return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody)
  373. default:
  374. genericError := &smithy.GenericAPIError{
  375. Code: errorCode,
  376. Message: errorMessage,
  377. }
  378. return genericError
  379. }
  380. }
  381. func awsRestjson1_deserializeOpDocumentListAccountsOutput(v **ListAccountsOutput, value interface{}) error {
  382. if v == nil {
  383. return fmt.Errorf("unexpected nil of type %T", v)
  384. }
  385. if value == nil {
  386. return nil
  387. }
  388. shape, ok := value.(map[string]interface{})
  389. if !ok {
  390. return fmt.Errorf("unexpected JSON type %v", value)
  391. }
  392. var sv *ListAccountsOutput
  393. if *v == nil {
  394. sv = &ListAccountsOutput{}
  395. } else {
  396. sv = *v
  397. }
  398. for key, value := range shape {
  399. switch key {
  400. case "accountList":
  401. if err := awsRestjson1_deserializeDocumentAccountListType(&sv.AccountList, value); err != nil {
  402. return err
  403. }
  404. case "nextToken":
  405. if value != nil {
  406. jtv, ok := value.(string)
  407. if !ok {
  408. return fmt.Errorf("expected NextTokenType to be of type string, got %T instead", value)
  409. }
  410. sv.NextToken = ptr.String(jtv)
  411. }
  412. default:
  413. _, _ = key, value
  414. }
  415. }
  416. *v = sv
  417. return nil
  418. }
  419. type awsRestjson1_deserializeOpLogout struct {
  420. }
  421. func (*awsRestjson1_deserializeOpLogout) ID() string {
  422. return "OperationDeserializer"
  423. }
  424. func (m *awsRestjson1_deserializeOpLogout) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
  425. out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
  426. ) {
  427. out, metadata, err = next.HandleDeserialize(ctx, in)
  428. if err != nil {
  429. return out, metadata, err
  430. }
  431. response, ok := out.RawResponse.(*smithyhttp.Response)
  432. if !ok {
  433. return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
  434. }
  435. if response.StatusCode < 200 || response.StatusCode >= 300 {
  436. return out, metadata, awsRestjson1_deserializeOpErrorLogout(response, &metadata)
  437. }
  438. output := &LogoutOutput{}
  439. out.Result = output
  440. if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
  441. return out, metadata, &smithy.DeserializationError{
  442. Err: fmt.Errorf("failed to discard response body, %w", err),
  443. }
  444. }
  445. return out, metadata, err
  446. }
  447. func awsRestjson1_deserializeOpErrorLogout(response *smithyhttp.Response, metadata *middleware.Metadata) error {
  448. var errorBuffer bytes.Buffer
  449. if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
  450. return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
  451. }
  452. errorBody := bytes.NewReader(errorBuffer.Bytes())
  453. errorCode := "UnknownError"
  454. errorMessage := errorCode
  455. headerCode := response.Header.Get("X-Amzn-ErrorType")
  456. if len(headerCode) != 0 {
  457. errorCode = restjson.SanitizeErrorCode(headerCode)
  458. }
  459. var buff [1024]byte
  460. ringBuffer := smithyio.NewRingBuffer(buff[:])
  461. body := io.TeeReader(errorBody, ringBuffer)
  462. decoder := json.NewDecoder(body)
  463. decoder.UseNumber()
  464. jsonCode, message, err := restjson.GetErrorInfo(decoder)
  465. if err != nil {
  466. var snapshot bytes.Buffer
  467. io.Copy(&snapshot, ringBuffer)
  468. err = &smithy.DeserializationError{
  469. Err: fmt.Errorf("failed to decode response body, %w", err),
  470. Snapshot: snapshot.Bytes(),
  471. }
  472. return err
  473. }
  474. errorBody.Seek(0, io.SeekStart)
  475. if len(headerCode) == 0 && len(jsonCode) != 0 {
  476. errorCode = restjson.SanitizeErrorCode(jsonCode)
  477. }
  478. if len(message) != 0 {
  479. errorMessage = message
  480. }
  481. switch {
  482. case strings.EqualFold("InvalidRequestException", errorCode):
  483. return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
  484. case strings.EqualFold("TooManyRequestsException", errorCode):
  485. return awsRestjson1_deserializeErrorTooManyRequestsException(response, errorBody)
  486. case strings.EqualFold("UnauthorizedException", errorCode):
  487. return awsRestjson1_deserializeErrorUnauthorizedException(response, errorBody)
  488. default:
  489. genericError := &smithy.GenericAPIError{
  490. Code: errorCode,
  491. Message: errorMessage,
  492. }
  493. return genericError
  494. }
  495. }
  496. func awsRestjson1_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  497. output := &types.InvalidRequestException{}
  498. var buff [1024]byte
  499. ringBuffer := smithyio.NewRingBuffer(buff[:])
  500. body := io.TeeReader(errorBody, ringBuffer)
  501. decoder := json.NewDecoder(body)
  502. decoder.UseNumber()
  503. var shape interface{}
  504. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  505. var snapshot bytes.Buffer
  506. io.Copy(&snapshot, ringBuffer)
  507. err = &smithy.DeserializationError{
  508. Err: fmt.Errorf("failed to decode response body, %w", err),
  509. Snapshot: snapshot.Bytes(),
  510. }
  511. return err
  512. }
  513. err := awsRestjson1_deserializeDocumentInvalidRequestException(&output, shape)
  514. if err != nil {
  515. var snapshot bytes.Buffer
  516. io.Copy(&snapshot, ringBuffer)
  517. err = &smithy.DeserializationError{
  518. Err: fmt.Errorf("failed to decode response body, %w", err),
  519. Snapshot: snapshot.Bytes(),
  520. }
  521. return err
  522. }
  523. errorBody.Seek(0, io.SeekStart)
  524. return output
  525. }
  526. func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  527. output := &types.ResourceNotFoundException{}
  528. var buff [1024]byte
  529. ringBuffer := smithyio.NewRingBuffer(buff[:])
  530. body := io.TeeReader(errorBody, ringBuffer)
  531. decoder := json.NewDecoder(body)
  532. decoder.UseNumber()
  533. var shape interface{}
  534. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  535. var snapshot bytes.Buffer
  536. io.Copy(&snapshot, ringBuffer)
  537. err = &smithy.DeserializationError{
  538. Err: fmt.Errorf("failed to decode response body, %w", err),
  539. Snapshot: snapshot.Bytes(),
  540. }
  541. return err
  542. }
  543. err := awsRestjson1_deserializeDocumentResourceNotFoundException(&output, shape)
  544. if err != nil {
  545. var snapshot bytes.Buffer
  546. io.Copy(&snapshot, ringBuffer)
  547. err = &smithy.DeserializationError{
  548. Err: fmt.Errorf("failed to decode response body, %w", err),
  549. Snapshot: snapshot.Bytes(),
  550. }
  551. return err
  552. }
  553. errorBody.Seek(0, io.SeekStart)
  554. return output
  555. }
  556. func awsRestjson1_deserializeErrorTooManyRequestsException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  557. output := &types.TooManyRequestsException{}
  558. var buff [1024]byte
  559. ringBuffer := smithyio.NewRingBuffer(buff[:])
  560. body := io.TeeReader(errorBody, ringBuffer)
  561. decoder := json.NewDecoder(body)
  562. decoder.UseNumber()
  563. var shape interface{}
  564. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  565. var snapshot bytes.Buffer
  566. io.Copy(&snapshot, ringBuffer)
  567. err = &smithy.DeserializationError{
  568. Err: fmt.Errorf("failed to decode response body, %w", err),
  569. Snapshot: snapshot.Bytes(),
  570. }
  571. return err
  572. }
  573. err := awsRestjson1_deserializeDocumentTooManyRequestsException(&output, shape)
  574. if err != nil {
  575. var snapshot bytes.Buffer
  576. io.Copy(&snapshot, ringBuffer)
  577. err = &smithy.DeserializationError{
  578. Err: fmt.Errorf("failed to decode response body, %w", err),
  579. Snapshot: snapshot.Bytes(),
  580. }
  581. return err
  582. }
  583. errorBody.Seek(0, io.SeekStart)
  584. return output
  585. }
  586. func awsRestjson1_deserializeErrorUnauthorizedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  587. output := &types.UnauthorizedException{}
  588. var buff [1024]byte
  589. ringBuffer := smithyio.NewRingBuffer(buff[:])
  590. body := io.TeeReader(errorBody, ringBuffer)
  591. decoder := json.NewDecoder(body)
  592. decoder.UseNumber()
  593. var shape interface{}
  594. if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  595. var snapshot bytes.Buffer
  596. io.Copy(&snapshot, ringBuffer)
  597. err = &smithy.DeserializationError{
  598. Err: fmt.Errorf("failed to decode response body, %w", err),
  599. Snapshot: snapshot.Bytes(),
  600. }
  601. return err
  602. }
  603. err := awsRestjson1_deserializeDocumentUnauthorizedException(&output, shape)
  604. if err != nil {
  605. var snapshot bytes.Buffer
  606. io.Copy(&snapshot, ringBuffer)
  607. err = &smithy.DeserializationError{
  608. Err: fmt.Errorf("failed to decode response body, %w", err),
  609. Snapshot: snapshot.Bytes(),
  610. }
  611. return err
  612. }
  613. errorBody.Seek(0, io.SeekStart)
  614. return output
  615. }
  616. func awsRestjson1_deserializeDocumentAccountInfo(v **types.AccountInfo, value interface{}) error {
  617. if v == nil {
  618. return fmt.Errorf("unexpected nil of type %T", v)
  619. }
  620. if value == nil {
  621. return nil
  622. }
  623. shape, ok := value.(map[string]interface{})
  624. if !ok {
  625. return fmt.Errorf("unexpected JSON type %v", value)
  626. }
  627. var sv *types.AccountInfo
  628. if *v == nil {
  629. sv = &types.AccountInfo{}
  630. } else {
  631. sv = *v
  632. }
  633. for key, value := range shape {
  634. switch key {
  635. case "accountId":
  636. if value != nil {
  637. jtv, ok := value.(string)
  638. if !ok {
  639. return fmt.Errorf("expected AccountIdType to be of type string, got %T instead", value)
  640. }
  641. sv.AccountId = ptr.String(jtv)
  642. }
  643. case "accountName":
  644. if value != nil {
  645. jtv, ok := value.(string)
  646. if !ok {
  647. return fmt.Errorf("expected AccountNameType to be of type string, got %T instead", value)
  648. }
  649. sv.AccountName = ptr.String(jtv)
  650. }
  651. case "emailAddress":
  652. if value != nil {
  653. jtv, ok := value.(string)
  654. if !ok {
  655. return fmt.Errorf("expected EmailAddressType to be of type string, got %T instead", value)
  656. }
  657. sv.EmailAddress = ptr.String(jtv)
  658. }
  659. default:
  660. _, _ = key, value
  661. }
  662. }
  663. *v = sv
  664. return nil
  665. }
  666. func awsRestjson1_deserializeDocumentAccountListType(v *[]types.AccountInfo, value interface{}) error {
  667. if v == nil {
  668. return fmt.Errorf("unexpected nil of type %T", v)
  669. }
  670. if value == nil {
  671. return nil
  672. }
  673. shape, ok := value.([]interface{})
  674. if !ok {
  675. return fmt.Errorf("unexpected JSON type %v", value)
  676. }
  677. var cv []types.AccountInfo
  678. if *v == nil {
  679. cv = []types.AccountInfo{}
  680. } else {
  681. cv = *v
  682. }
  683. for _, value := range shape {
  684. var col types.AccountInfo
  685. destAddr := &col
  686. if err := awsRestjson1_deserializeDocumentAccountInfo(&destAddr, value); err != nil {
  687. return err
  688. }
  689. col = *destAddr
  690. cv = append(cv, col)
  691. }
  692. *v = cv
  693. return nil
  694. }
  695. func awsRestjson1_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error {
  696. if v == nil {
  697. return fmt.Errorf("unexpected nil of type %T", v)
  698. }
  699. if value == nil {
  700. return nil
  701. }
  702. shape, ok := value.(map[string]interface{})
  703. if !ok {
  704. return fmt.Errorf("unexpected JSON type %v", value)
  705. }
  706. var sv *types.InvalidRequestException
  707. if *v == nil {
  708. sv = &types.InvalidRequestException{}
  709. } else {
  710. sv = *v
  711. }
  712. for key, value := range shape {
  713. switch key {
  714. case "message":
  715. if value != nil {
  716. jtv, ok := value.(string)
  717. if !ok {
  718. return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  719. }
  720. sv.Message = ptr.String(jtv)
  721. }
  722. default:
  723. _, _ = key, value
  724. }
  725. }
  726. *v = sv
  727. return nil
  728. }
  729. func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error {
  730. if v == nil {
  731. return fmt.Errorf("unexpected nil of type %T", v)
  732. }
  733. if value == nil {
  734. return nil
  735. }
  736. shape, ok := value.(map[string]interface{})
  737. if !ok {
  738. return fmt.Errorf("unexpected JSON type %v", value)
  739. }
  740. var sv *types.ResourceNotFoundException
  741. if *v == nil {
  742. sv = &types.ResourceNotFoundException{}
  743. } else {
  744. sv = *v
  745. }
  746. for key, value := range shape {
  747. switch key {
  748. case "message":
  749. if value != nil {
  750. jtv, ok := value.(string)
  751. if !ok {
  752. return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  753. }
  754. sv.Message = ptr.String(jtv)
  755. }
  756. default:
  757. _, _ = key, value
  758. }
  759. }
  760. *v = sv
  761. return nil
  762. }
  763. func awsRestjson1_deserializeDocumentRoleCredentials(v **types.RoleCredentials, value interface{}) error {
  764. if v == nil {
  765. return fmt.Errorf("unexpected nil of type %T", v)
  766. }
  767. if value == nil {
  768. return nil
  769. }
  770. shape, ok := value.(map[string]interface{})
  771. if !ok {
  772. return fmt.Errorf("unexpected JSON type %v", value)
  773. }
  774. var sv *types.RoleCredentials
  775. if *v == nil {
  776. sv = &types.RoleCredentials{}
  777. } else {
  778. sv = *v
  779. }
  780. for key, value := range shape {
  781. switch key {
  782. case "accessKeyId":
  783. if value != nil {
  784. jtv, ok := value.(string)
  785. if !ok {
  786. return fmt.Errorf("expected AccessKeyType to be of type string, got %T instead", value)
  787. }
  788. sv.AccessKeyId = ptr.String(jtv)
  789. }
  790. case "expiration":
  791. if value != nil {
  792. jtv, ok := value.(json.Number)
  793. if !ok {
  794. return fmt.Errorf("expected ExpirationTimestampType to be json.Number, got %T instead", value)
  795. }
  796. i64, err := jtv.Int64()
  797. if err != nil {
  798. return err
  799. }
  800. sv.Expiration = i64
  801. }
  802. case "secretAccessKey":
  803. if value != nil {
  804. jtv, ok := value.(string)
  805. if !ok {
  806. return fmt.Errorf("expected SecretAccessKeyType to be of type string, got %T instead", value)
  807. }
  808. sv.SecretAccessKey = ptr.String(jtv)
  809. }
  810. case "sessionToken":
  811. if value != nil {
  812. jtv, ok := value.(string)
  813. if !ok {
  814. return fmt.Errorf("expected SessionTokenType to be of type string, got %T instead", value)
  815. }
  816. sv.SessionToken = ptr.String(jtv)
  817. }
  818. default:
  819. _, _ = key, value
  820. }
  821. }
  822. *v = sv
  823. return nil
  824. }
  825. func awsRestjson1_deserializeDocumentRoleInfo(v **types.RoleInfo, value interface{}) error {
  826. if v == nil {
  827. return fmt.Errorf("unexpected nil of type %T", v)
  828. }
  829. if value == nil {
  830. return nil
  831. }
  832. shape, ok := value.(map[string]interface{})
  833. if !ok {
  834. return fmt.Errorf("unexpected JSON type %v", value)
  835. }
  836. var sv *types.RoleInfo
  837. if *v == nil {
  838. sv = &types.RoleInfo{}
  839. } else {
  840. sv = *v
  841. }
  842. for key, value := range shape {
  843. switch key {
  844. case "accountId":
  845. if value != nil {
  846. jtv, ok := value.(string)
  847. if !ok {
  848. return fmt.Errorf("expected AccountIdType to be of type string, got %T instead", value)
  849. }
  850. sv.AccountId = ptr.String(jtv)
  851. }
  852. case "roleName":
  853. if value != nil {
  854. jtv, ok := value.(string)
  855. if !ok {
  856. return fmt.Errorf("expected RoleNameType to be of type string, got %T instead", value)
  857. }
  858. sv.RoleName = ptr.String(jtv)
  859. }
  860. default:
  861. _, _ = key, value
  862. }
  863. }
  864. *v = sv
  865. return nil
  866. }
  867. func awsRestjson1_deserializeDocumentRoleListType(v *[]types.RoleInfo, value interface{}) error {
  868. if v == nil {
  869. return fmt.Errorf("unexpected nil of type %T", v)
  870. }
  871. if value == nil {
  872. return nil
  873. }
  874. shape, ok := value.([]interface{})
  875. if !ok {
  876. return fmt.Errorf("unexpected JSON type %v", value)
  877. }
  878. var cv []types.RoleInfo
  879. if *v == nil {
  880. cv = []types.RoleInfo{}
  881. } else {
  882. cv = *v
  883. }
  884. for _, value := range shape {
  885. var col types.RoleInfo
  886. destAddr := &col
  887. if err := awsRestjson1_deserializeDocumentRoleInfo(&destAddr, value); err != nil {
  888. return err
  889. }
  890. col = *destAddr
  891. cv = append(cv, col)
  892. }
  893. *v = cv
  894. return nil
  895. }
  896. func awsRestjson1_deserializeDocumentTooManyRequestsException(v **types.TooManyRequestsException, value interface{}) error {
  897. if v == nil {
  898. return fmt.Errorf("unexpected nil of type %T", v)
  899. }
  900. if value == nil {
  901. return nil
  902. }
  903. shape, ok := value.(map[string]interface{})
  904. if !ok {
  905. return fmt.Errorf("unexpected JSON type %v", value)
  906. }
  907. var sv *types.TooManyRequestsException
  908. if *v == nil {
  909. sv = &types.TooManyRequestsException{}
  910. } else {
  911. sv = *v
  912. }
  913. for key, value := range shape {
  914. switch key {
  915. case "message":
  916. if value != nil {
  917. jtv, ok := value.(string)
  918. if !ok {
  919. return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  920. }
  921. sv.Message = ptr.String(jtv)
  922. }
  923. default:
  924. _, _ = key, value
  925. }
  926. }
  927. *v = sv
  928. return nil
  929. }
  930. func awsRestjson1_deserializeDocumentUnauthorizedException(v **types.UnauthorizedException, value interface{}) error {
  931. if v == nil {
  932. return fmt.Errorf("unexpected nil of type %T", v)
  933. }
  934. if value == nil {
  935. return nil
  936. }
  937. shape, ok := value.(map[string]interface{})
  938. if !ok {
  939. return fmt.Errorf("unexpected JSON type %v", value)
  940. }
  941. var sv *types.UnauthorizedException
  942. if *v == nil {
  943. sv = &types.UnauthorizedException{}
  944. } else {
  945. sv = *v
  946. }
  947. for key, value := range shape {
  948. switch key {
  949. case "message":
  950. if value != nil {
  951. jtv, ok := value.(string)
  952. if !ok {
  953. return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  954. }
  955. sv.Message = ptr.String(jtv)
  956. }
  957. default:
  958. _, _ = key, value
  959. }
  960. }
  961. *v = sv
  962. return nil
  963. }