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