src

Go monorepo.
git clone git://code.dwrz.net/src
Log | Files | Refs

deserializers.go (82152B)


      1 // Code generated by smithy-go-codegen DO NOT EDIT.
      2 
      3 package signin
      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/signin/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_deserializeOpCreateOAuth2Token struct {
     24 }
     25 
     26 func (*awsRestjson1_deserializeOpCreateOAuth2Token) ID() string {
     27 	return "OperationDeserializer"
     28 }
     29 
     30 func (m *awsRestjson1_deserializeOpCreateOAuth2Token) 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_deserializeOpErrorCreateOAuth2Token(response, &metadata)
     52 	}
     53 	output := &CreateOAuth2TokenOutput{}
     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_deserializeDocumentCreateOAuth2TokenResponseBody(&output.TokenOutput, 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_deserializeOpErrorCreateOAuth2Token(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("AccessDeniedException", errorCode):
    130 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
    131 
    132 	case strings.EqualFold("InternalServerException", errorCode):
    133 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
    134 
    135 	case strings.EqualFold("TooManyRequestsError", errorCode):
    136 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
    137 
    138 	case strings.EqualFold("ValidationException", errorCode):
    139 		return awsRestjson1_deserializeErrorValidationException(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_deserializeOpDocumentCreateOAuth2TokenOutput(v **CreateOAuth2TokenOutput, 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 *CreateOAuth2TokenOutput
    165 	if *v == nil {
    166 		sv = &CreateOAuth2TokenOutput{}
    167 	} else {
    168 		sv = *v
    169 	}
    170 
    171 	for key, value := range shape {
    172 		switch key {
    173 		case "tokenOutput":
    174 			if err := awsRestjson1_deserializeDocumentCreateOAuth2TokenResponseBody(&sv.TokenOutput, 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_deserializeOpCreateOAuth2TokenWithIAM struct {
    188 }
    189 
    190 func (*awsRestjson1_deserializeOpCreateOAuth2TokenWithIAM) ID() string {
    191 	return "OperationDeserializer"
    192 }
    193 
    194 func (m *awsRestjson1_deserializeOpCreateOAuth2TokenWithIAM) 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_deserializeOpErrorCreateOAuth2TokenWithIAM(response, &metadata)
    216 	}
    217 	output := &CreateOAuth2TokenWithIAMOutput{}
    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_deserializeOpDocumentCreateOAuth2TokenWithIAMOutput(&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_deserializeOpErrorCreateOAuth2TokenWithIAM(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("AccessDeniedException", errorCode):
    294 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
    295 
    296 	case strings.EqualFold("InternalServerException", errorCode):
    297 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
    298 
    299 	case strings.EqualFold("TooManyRequestsError", errorCode):
    300 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
    301 
    302 	case strings.EqualFold("ValidationException", errorCode):
    303 		return awsRestjson1_deserializeErrorValidationException(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_deserializeOpDocumentCreateOAuth2TokenWithIAMOutput(v **CreateOAuth2TokenWithIAMOutput, 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 *CreateOAuth2TokenWithIAMOutput
    329 	if *v == nil {
    330 		sv = &CreateOAuth2TokenWithIAMOutput{}
    331 	} else {
    332 		sv = *v
    333 	}
    334 
    335 	for key, value := range shape {
    336 		switch key {
    337 		case "access_token":
    338 			if value != nil {
    339 				jtv, ok := value.(string)
    340 				if !ok {
    341 					return fmt.Errorf("expected OAuthAccessToken to be of type string, got %T instead", value)
    342 				}
    343 				sv.AccessToken = ptr.String(jtv)
    344 			}
    345 
    346 		case "expires_in":
    347 			if value != nil {
    348 				jtv, ok := value.(json.Number)
    349 				if !ok {
    350 					return fmt.Errorf("expected TokenExpiresIn to be json.Number, got %T instead", value)
    351 				}
    352 				i64, err := jtv.Int64()
    353 				if err != nil {
    354 					return err
    355 				}
    356 				sv.ExpiresIn = ptr.Int32(int32(i64))
    357 			}
    358 
    359 		case "token_type":
    360 			if value != nil {
    361 				jtv, ok := value.(string)
    362 				if !ok {
    363 					return fmt.Errorf("expected BearerTokenType to be of type string, got %T instead", value)
    364 				}
    365 				sv.TokenType = ptr.String(jtv)
    366 			}
    367 
    368 		default:
    369 			_, _ = key, value
    370 
    371 		}
    372 	}
    373 	*v = sv
    374 	return nil
    375 }
    376 
    377 type awsRestjson1_deserializeOpDeleteConsoleAuthorizationConfiguration struct {
    378 }
    379 
    380 func (*awsRestjson1_deserializeOpDeleteConsoleAuthorizationConfiguration) ID() string {
    381 	return "OperationDeserializer"
    382 }
    383 
    384 func (m *awsRestjson1_deserializeOpDeleteConsoleAuthorizationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
    385 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
    386 ) {
    387 	out, metadata, err = next.HandleDeserialize(ctx, in)
    388 	if err != nil {
    389 		return out, metadata, err
    390 	}
    391 
    392 	response, ok := out.RawResponse.(*smithyhttp.Response)
    393 	if !ok {
    394 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
    395 	}
    396 
    397 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
    398 
    399 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
    400 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
    401 	defer endTimer()
    402 	defer span.End()
    403 
    404 	if response.StatusCode < 200 || response.StatusCode >= 300 {
    405 		return out, metadata, awsRestjson1_deserializeOpErrorDeleteConsoleAuthorizationConfiguration(response, &metadata)
    406 	}
    407 	output := &DeleteConsoleAuthorizationConfigurationOutput{}
    408 	out.Result = output
    409 
    410 	var buff [1024]byte
    411 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    412 
    413 	body := io.TeeReader(response.Body, ringBuffer)
    414 
    415 	decoder := json.NewDecoder(body)
    416 	decoder.UseNumber()
    417 	var shape interface{}
    418 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
    419 		var snapshot bytes.Buffer
    420 		io.Copy(&snapshot, ringBuffer)
    421 		err = &smithy.DeserializationError{
    422 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    423 			Snapshot: snapshot.Bytes(),
    424 		}
    425 		return out, metadata, err
    426 	}
    427 
    428 	err = awsRestjson1_deserializeOpDocumentDeleteConsoleAuthorizationConfigurationOutput(&output, shape)
    429 	if err != nil {
    430 		var snapshot bytes.Buffer
    431 		io.Copy(&snapshot, ringBuffer)
    432 		return out, metadata, &smithy.DeserializationError{
    433 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
    434 			Snapshot: snapshot.Bytes(),
    435 		}
    436 	}
    437 
    438 	span.End()
    439 	return out, metadata, err
    440 }
    441 
    442 func awsRestjson1_deserializeOpErrorDeleteConsoleAuthorizationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
    443 	var errorBuffer bytes.Buffer
    444 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
    445 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
    446 	}
    447 	errorBody := bytes.NewReader(errorBuffer.Bytes())
    448 
    449 	errorCode := "UnknownError"
    450 	errorMessage := errorCode
    451 
    452 	headerCode := response.Header.Get("X-Amzn-ErrorType")
    453 	if len(headerCode) != 0 {
    454 		errorCode = restjson.SanitizeErrorCode(headerCode)
    455 	}
    456 
    457 	var buff [1024]byte
    458 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    459 
    460 	body := io.TeeReader(errorBody, ringBuffer)
    461 	decoder := json.NewDecoder(body)
    462 	decoder.UseNumber()
    463 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
    464 	if err != nil {
    465 		var snapshot bytes.Buffer
    466 		io.Copy(&snapshot, ringBuffer)
    467 		err = &smithy.DeserializationError{
    468 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    469 			Snapshot: snapshot.Bytes(),
    470 		}
    471 		return err
    472 	}
    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 
    482 	switch {
    483 	case strings.EqualFold("AccessDeniedException", errorCode):
    484 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
    485 
    486 	case strings.EqualFold("InternalServerException", errorCode):
    487 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
    488 
    489 	case strings.EqualFold("ResourceNotFoundException", errorCode):
    490 		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
    491 
    492 	case strings.EqualFold("TooManyRequestsError", errorCode):
    493 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
    494 
    495 	case strings.EqualFold("ValidationException", errorCode):
    496 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
    497 
    498 	default:
    499 		genericError := &smithy.GenericAPIError{
    500 			Code:    errorCode,
    501 			Message: errorMessage,
    502 		}
    503 		return genericError
    504 
    505 	}
    506 }
    507 
    508 func awsRestjson1_deserializeOpDocumentDeleteConsoleAuthorizationConfigurationOutput(v **DeleteConsoleAuthorizationConfigurationOutput, value interface{}) error {
    509 	if v == nil {
    510 		return fmt.Errorf("unexpected nil of type %T", v)
    511 	}
    512 	if value == nil {
    513 		return nil
    514 	}
    515 
    516 	shape, ok := value.(map[string]interface{})
    517 	if !ok {
    518 		return fmt.Errorf("unexpected JSON type %v", value)
    519 	}
    520 
    521 	var sv *DeleteConsoleAuthorizationConfigurationOutput
    522 	if *v == nil {
    523 		sv = &DeleteConsoleAuthorizationConfigurationOutput{}
    524 	} else {
    525 		sv = *v
    526 	}
    527 
    528 	for key, value := range shape {
    529 		switch key {
    530 		case "consoleAuthorizationEnabled":
    531 			if value != nil {
    532 				jtv, ok := value.(bool)
    533 				if !ok {
    534 					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
    535 				}
    536 				sv.ConsoleAuthorizationEnabled = ptr.Bool(jtv)
    537 			}
    538 
    539 		case "scope":
    540 			if value != nil {
    541 				jtv, ok := value.(string)
    542 				if !ok {
    543 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
    544 				}
    545 				sv.Scope = ptr.String(jtv)
    546 			}
    547 
    548 		case "targetId":
    549 			if value != nil {
    550 				jtv, ok := value.(string)
    551 				if !ok {
    552 					return fmt.Errorf("expected TargetId to be of type string, got %T instead", value)
    553 				}
    554 				sv.TargetId = ptr.String(jtv)
    555 			}
    556 
    557 		default:
    558 			_, _ = key, value
    559 
    560 		}
    561 	}
    562 	*v = sv
    563 	return nil
    564 }
    565 
    566 type awsRestjson1_deserializeOpDeleteResourcePermissionStatement struct {
    567 }
    568 
    569 func (*awsRestjson1_deserializeOpDeleteResourcePermissionStatement) ID() string {
    570 	return "OperationDeserializer"
    571 }
    572 
    573 func (m *awsRestjson1_deserializeOpDeleteResourcePermissionStatement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
    574 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
    575 ) {
    576 	out, metadata, err = next.HandleDeserialize(ctx, in)
    577 	if err != nil {
    578 		return out, metadata, err
    579 	}
    580 
    581 	response, ok := out.RawResponse.(*smithyhttp.Response)
    582 	if !ok {
    583 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
    584 	}
    585 
    586 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
    587 
    588 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
    589 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
    590 	defer endTimer()
    591 	defer span.End()
    592 
    593 	if response.StatusCode < 200 || response.StatusCode >= 300 {
    594 		return out, metadata, awsRestjson1_deserializeOpErrorDeleteResourcePermissionStatement(response, &metadata)
    595 	}
    596 	output := &DeleteResourcePermissionStatementOutput{}
    597 	out.Result = output
    598 
    599 	span.End()
    600 	return out, metadata, err
    601 }
    602 
    603 func awsRestjson1_deserializeOpErrorDeleteResourcePermissionStatement(response *smithyhttp.Response, metadata *middleware.Metadata) error {
    604 	var errorBuffer bytes.Buffer
    605 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
    606 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
    607 	}
    608 	errorBody := bytes.NewReader(errorBuffer.Bytes())
    609 
    610 	errorCode := "UnknownError"
    611 	errorMessage := errorCode
    612 
    613 	headerCode := response.Header.Get("X-Amzn-ErrorType")
    614 	if len(headerCode) != 0 {
    615 		errorCode = restjson.SanitizeErrorCode(headerCode)
    616 	}
    617 
    618 	var buff [1024]byte
    619 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    620 
    621 	body := io.TeeReader(errorBody, ringBuffer)
    622 	decoder := json.NewDecoder(body)
    623 	decoder.UseNumber()
    624 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
    625 	if err != nil {
    626 		var snapshot bytes.Buffer
    627 		io.Copy(&snapshot, ringBuffer)
    628 		err = &smithy.DeserializationError{
    629 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    630 			Snapshot: snapshot.Bytes(),
    631 		}
    632 		return err
    633 	}
    634 
    635 	errorBody.Seek(0, io.SeekStart)
    636 	if len(headerCode) == 0 && len(jsonCode) != 0 {
    637 		errorCode = restjson.SanitizeErrorCode(jsonCode)
    638 	}
    639 	if len(message) != 0 {
    640 		errorMessage = message
    641 	}
    642 
    643 	switch {
    644 	case strings.EqualFold("AccessDeniedException", errorCode):
    645 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
    646 
    647 	case strings.EqualFold("InternalServerException", errorCode):
    648 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
    649 
    650 	case strings.EqualFold("ResourceNotFoundException", errorCode):
    651 		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
    652 
    653 	case strings.EqualFold("TooManyRequestsError", errorCode):
    654 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
    655 
    656 	case strings.EqualFold("ValidationException", errorCode):
    657 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
    658 
    659 	default:
    660 		genericError := &smithy.GenericAPIError{
    661 			Code:    errorCode,
    662 			Message: errorMessage,
    663 		}
    664 		return genericError
    665 
    666 	}
    667 }
    668 
    669 type awsRestjson1_deserializeOpGetConsoleAuthorizationConfiguration struct {
    670 }
    671 
    672 func (*awsRestjson1_deserializeOpGetConsoleAuthorizationConfiguration) ID() string {
    673 	return "OperationDeserializer"
    674 }
    675 
    676 func (m *awsRestjson1_deserializeOpGetConsoleAuthorizationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
    677 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
    678 ) {
    679 	out, metadata, err = next.HandleDeserialize(ctx, in)
    680 	if err != nil {
    681 		return out, metadata, err
    682 	}
    683 
    684 	response, ok := out.RawResponse.(*smithyhttp.Response)
    685 	if !ok {
    686 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
    687 	}
    688 
    689 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
    690 
    691 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
    692 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
    693 	defer endTimer()
    694 	defer span.End()
    695 
    696 	if response.StatusCode < 200 || response.StatusCode >= 300 {
    697 		return out, metadata, awsRestjson1_deserializeOpErrorGetConsoleAuthorizationConfiguration(response, &metadata)
    698 	}
    699 	output := &GetConsoleAuthorizationConfigurationOutput{}
    700 	out.Result = output
    701 
    702 	var buff [1024]byte
    703 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    704 
    705 	body := io.TeeReader(response.Body, ringBuffer)
    706 
    707 	decoder := json.NewDecoder(body)
    708 	decoder.UseNumber()
    709 	var shape interface{}
    710 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
    711 		var snapshot bytes.Buffer
    712 		io.Copy(&snapshot, ringBuffer)
    713 		err = &smithy.DeserializationError{
    714 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    715 			Snapshot: snapshot.Bytes(),
    716 		}
    717 		return out, metadata, err
    718 	}
    719 
    720 	err = awsRestjson1_deserializeOpDocumentGetConsoleAuthorizationConfigurationOutput(&output, shape)
    721 	if err != nil {
    722 		var snapshot bytes.Buffer
    723 		io.Copy(&snapshot, ringBuffer)
    724 		return out, metadata, &smithy.DeserializationError{
    725 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
    726 			Snapshot: snapshot.Bytes(),
    727 		}
    728 	}
    729 
    730 	span.End()
    731 	return out, metadata, err
    732 }
    733 
    734 func awsRestjson1_deserializeOpErrorGetConsoleAuthorizationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
    735 	var errorBuffer bytes.Buffer
    736 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
    737 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
    738 	}
    739 	errorBody := bytes.NewReader(errorBuffer.Bytes())
    740 
    741 	errorCode := "UnknownError"
    742 	errorMessage := errorCode
    743 
    744 	headerCode := response.Header.Get("X-Amzn-ErrorType")
    745 	if len(headerCode) != 0 {
    746 		errorCode = restjson.SanitizeErrorCode(headerCode)
    747 	}
    748 
    749 	var buff [1024]byte
    750 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    751 
    752 	body := io.TeeReader(errorBody, ringBuffer)
    753 	decoder := json.NewDecoder(body)
    754 	decoder.UseNumber()
    755 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
    756 	if err != nil {
    757 		var snapshot bytes.Buffer
    758 		io.Copy(&snapshot, ringBuffer)
    759 		err = &smithy.DeserializationError{
    760 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    761 			Snapshot: snapshot.Bytes(),
    762 		}
    763 		return err
    764 	}
    765 
    766 	errorBody.Seek(0, io.SeekStart)
    767 	if len(headerCode) == 0 && len(jsonCode) != 0 {
    768 		errorCode = restjson.SanitizeErrorCode(jsonCode)
    769 	}
    770 	if len(message) != 0 {
    771 		errorMessage = message
    772 	}
    773 
    774 	switch {
    775 	case strings.EqualFold("AccessDeniedException", errorCode):
    776 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
    777 
    778 	case strings.EqualFold("InternalServerException", errorCode):
    779 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
    780 
    781 	case strings.EqualFold("ResourceNotFoundException", errorCode):
    782 		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
    783 
    784 	case strings.EqualFold("TooManyRequestsError", errorCode):
    785 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
    786 
    787 	case strings.EqualFold("ValidationException", errorCode):
    788 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
    789 
    790 	default:
    791 		genericError := &smithy.GenericAPIError{
    792 			Code:    errorCode,
    793 			Message: errorMessage,
    794 		}
    795 		return genericError
    796 
    797 	}
    798 }
    799 
    800 func awsRestjson1_deserializeOpDocumentGetConsoleAuthorizationConfigurationOutput(v **GetConsoleAuthorizationConfigurationOutput, value interface{}) error {
    801 	if v == nil {
    802 		return fmt.Errorf("unexpected nil of type %T", v)
    803 	}
    804 	if value == nil {
    805 		return nil
    806 	}
    807 
    808 	shape, ok := value.(map[string]interface{})
    809 	if !ok {
    810 		return fmt.Errorf("unexpected JSON type %v", value)
    811 	}
    812 
    813 	var sv *GetConsoleAuthorizationConfigurationOutput
    814 	if *v == nil {
    815 		sv = &GetConsoleAuthorizationConfigurationOutput{}
    816 	} else {
    817 		sv = *v
    818 	}
    819 
    820 	for key, value := range shape {
    821 		switch key {
    822 		case "consoleAuthorizationEnabled":
    823 			if value != nil {
    824 				jtv, ok := value.(bool)
    825 				if !ok {
    826 					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
    827 				}
    828 				sv.ConsoleAuthorizationEnabled = ptr.Bool(jtv)
    829 			}
    830 
    831 		case "scope":
    832 			if value != nil {
    833 				jtv, ok := value.(string)
    834 				if !ok {
    835 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
    836 				}
    837 				sv.Scope = ptr.String(jtv)
    838 			}
    839 
    840 		case "targetId":
    841 			if value != nil {
    842 				jtv, ok := value.(string)
    843 				if !ok {
    844 					return fmt.Errorf("expected TargetId to be of type string, got %T instead", value)
    845 				}
    846 				sv.TargetId = ptr.String(jtv)
    847 			}
    848 
    849 		default:
    850 			_, _ = key, value
    851 
    852 		}
    853 	}
    854 	*v = sv
    855 	return nil
    856 }
    857 
    858 type awsRestjson1_deserializeOpGetResourcePolicy struct {
    859 }
    860 
    861 func (*awsRestjson1_deserializeOpGetResourcePolicy) ID() string {
    862 	return "OperationDeserializer"
    863 }
    864 
    865 func (m *awsRestjson1_deserializeOpGetResourcePolicy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
    866 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
    867 ) {
    868 	out, metadata, err = next.HandleDeserialize(ctx, in)
    869 	if err != nil {
    870 		return out, metadata, err
    871 	}
    872 
    873 	response, ok := out.RawResponse.(*smithyhttp.Response)
    874 	if !ok {
    875 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
    876 	}
    877 
    878 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
    879 
    880 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
    881 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
    882 	defer endTimer()
    883 	defer span.End()
    884 
    885 	if response.StatusCode < 200 || response.StatusCode >= 300 {
    886 		return out, metadata, awsRestjson1_deserializeOpErrorGetResourcePolicy(response, &metadata)
    887 	}
    888 	output := &GetResourcePolicyOutput{}
    889 	out.Result = output
    890 
    891 	var buff [1024]byte
    892 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    893 
    894 	body := io.TeeReader(response.Body, ringBuffer)
    895 
    896 	decoder := json.NewDecoder(body)
    897 	decoder.UseNumber()
    898 	var shape interface{}
    899 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
    900 		var snapshot bytes.Buffer
    901 		io.Copy(&snapshot, ringBuffer)
    902 		err = &smithy.DeserializationError{
    903 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    904 			Snapshot: snapshot.Bytes(),
    905 		}
    906 		return out, metadata, err
    907 	}
    908 
    909 	err = awsRestjson1_deserializeOpDocumentGetResourcePolicyOutput(&output, shape)
    910 	if err != nil {
    911 		var snapshot bytes.Buffer
    912 		io.Copy(&snapshot, ringBuffer)
    913 		return out, metadata, &smithy.DeserializationError{
    914 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
    915 			Snapshot: snapshot.Bytes(),
    916 		}
    917 	}
    918 
    919 	span.End()
    920 	return out, metadata, err
    921 }
    922 
    923 func awsRestjson1_deserializeOpErrorGetResourcePolicy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
    924 	var errorBuffer bytes.Buffer
    925 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
    926 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
    927 	}
    928 	errorBody := bytes.NewReader(errorBuffer.Bytes())
    929 
    930 	errorCode := "UnknownError"
    931 	errorMessage := errorCode
    932 
    933 	headerCode := response.Header.Get("X-Amzn-ErrorType")
    934 	if len(headerCode) != 0 {
    935 		errorCode = restjson.SanitizeErrorCode(headerCode)
    936 	}
    937 
    938 	var buff [1024]byte
    939 	ringBuffer := smithyio.NewRingBuffer(buff[:])
    940 
    941 	body := io.TeeReader(errorBody, ringBuffer)
    942 	decoder := json.NewDecoder(body)
    943 	decoder.UseNumber()
    944 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
    945 	if err != nil {
    946 		var snapshot bytes.Buffer
    947 		io.Copy(&snapshot, ringBuffer)
    948 		err = &smithy.DeserializationError{
    949 			Err:      fmt.Errorf("failed to decode response body, %w", err),
    950 			Snapshot: snapshot.Bytes(),
    951 		}
    952 		return err
    953 	}
    954 
    955 	errorBody.Seek(0, io.SeekStart)
    956 	if len(headerCode) == 0 && len(jsonCode) != 0 {
    957 		errorCode = restjson.SanitizeErrorCode(jsonCode)
    958 	}
    959 	if len(message) != 0 {
    960 		errorMessage = message
    961 	}
    962 
    963 	switch {
    964 	case strings.EqualFold("AccessDeniedException", errorCode):
    965 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
    966 
    967 	case strings.EqualFold("InternalServerException", errorCode):
    968 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
    969 
    970 	case strings.EqualFold("ResourceNotFoundException", errorCode):
    971 		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
    972 
    973 	case strings.EqualFold("TooManyRequestsError", errorCode):
    974 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
    975 
    976 	default:
    977 		genericError := &smithy.GenericAPIError{
    978 			Code:    errorCode,
    979 			Message: errorMessage,
    980 		}
    981 		return genericError
    982 
    983 	}
    984 }
    985 
    986 func awsRestjson1_deserializeOpDocumentGetResourcePolicyOutput(v **GetResourcePolicyOutput, value interface{}) error {
    987 	if v == nil {
    988 		return fmt.Errorf("unexpected nil of type %T", v)
    989 	}
    990 	if value == nil {
    991 		return nil
    992 	}
    993 
    994 	shape, ok := value.(map[string]interface{})
    995 	if !ok {
    996 		return fmt.Errorf("unexpected JSON type %v", value)
    997 	}
    998 
    999 	var sv *GetResourcePolicyOutput
   1000 	if *v == nil {
   1001 		sv = &GetResourcePolicyOutput{}
   1002 	} else {
   1003 		sv = *v
   1004 	}
   1005 
   1006 	for key, value := range shape {
   1007 		switch key {
   1008 		case "signinResourceBasedPolicy":
   1009 			if err := awsRestjson1_deserializeDocumentSigninResourceBasedPolicy(&sv.SigninResourceBasedPolicy, value); err != nil {
   1010 				return err
   1011 			}
   1012 
   1013 		default:
   1014 			_, _ = key, value
   1015 
   1016 		}
   1017 	}
   1018 	*v = sv
   1019 	return nil
   1020 }
   1021 
   1022 type awsRestjson1_deserializeOpIntrospectOAuth2TokenWithIAM struct {
   1023 }
   1024 
   1025 func (*awsRestjson1_deserializeOpIntrospectOAuth2TokenWithIAM) ID() string {
   1026 	return "OperationDeserializer"
   1027 }
   1028 
   1029 func (m *awsRestjson1_deserializeOpIntrospectOAuth2TokenWithIAM) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   1030 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   1031 ) {
   1032 	out, metadata, err = next.HandleDeserialize(ctx, in)
   1033 	if err != nil {
   1034 		return out, metadata, err
   1035 	}
   1036 
   1037 	response, ok := out.RawResponse.(*smithyhttp.Response)
   1038 	if !ok {
   1039 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   1040 	}
   1041 
   1042 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
   1043 
   1044 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
   1045 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
   1046 	defer endTimer()
   1047 	defer span.End()
   1048 
   1049 	if response.StatusCode < 200 || response.StatusCode >= 300 {
   1050 		return out, metadata, awsRestjson1_deserializeOpErrorIntrospectOAuth2TokenWithIAM(response, &metadata)
   1051 	}
   1052 	output := &IntrospectOAuth2TokenWithIAMOutput{}
   1053 	out.Result = output
   1054 
   1055 	var buff [1024]byte
   1056 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1057 
   1058 	body := io.TeeReader(response.Body, ringBuffer)
   1059 
   1060 	decoder := json.NewDecoder(body)
   1061 	decoder.UseNumber()
   1062 	var shape interface{}
   1063 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   1064 		var snapshot bytes.Buffer
   1065 		io.Copy(&snapshot, ringBuffer)
   1066 		err = &smithy.DeserializationError{
   1067 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1068 			Snapshot: snapshot.Bytes(),
   1069 		}
   1070 		return out, metadata, err
   1071 	}
   1072 
   1073 	err = awsRestjson1_deserializeOpDocumentIntrospectOAuth2TokenWithIAMOutput(&output, shape)
   1074 	if err != nil {
   1075 		var snapshot bytes.Buffer
   1076 		io.Copy(&snapshot, ringBuffer)
   1077 		return out, metadata, &smithy.DeserializationError{
   1078 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   1079 			Snapshot: snapshot.Bytes(),
   1080 		}
   1081 	}
   1082 
   1083 	span.End()
   1084 	return out, metadata, err
   1085 }
   1086 
   1087 func awsRestjson1_deserializeOpErrorIntrospectOAuth2TokenWithIAM(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   1088 	var errorBuffer bytes.Buffer
   1089 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   1090 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   1091 	}
   1092 	errorBody := bytes.NewReader(errorBuffer.Bytes())
   1093 
   1094 	errorCode := "UnknownError"
   1095 	errorMessage := errorCode
   1096 
   1097 	headerCode := response.Header.Get("X-Amzn-ErrorType")
   1098 	if len(headerCode) != 0 {
   1099 		errorCode = restjson.SanitizeErrorCode(headerCode)
   1100 	}
   1101 
   1102 	var buff [1024]byte
   1103 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1104 
   1105 	body := io.TeeReader(errorBody, ringBuffer)
   1106 	decoder := json.NewDecoder(body)
   1107 	decoder.UseNumber()
   1108 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   1109 	if err != nil {
   1110 		var snapshot bytes.Buffer
   1111 		io.Copy(&snapshot, ringBuffer)
   1112 		err = &smithy.DeserializationError{
   1113 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1114 			Snapshot: snapshot.Bytes(),
   1115 		}
   1116 		return err
   1117 	}
   1118 
   1119 	errorBody.Seek(0, io.SeekStart)
   1120 	if len(headerCode) == 0 && len(jsonCode) != 0 {
   1121 		errorCode = restjson.SanitizeErrorCode(jsonCode)
   1122 	}
   1123 	if len(message) != 0 {
   1124 		errorMessage = message
   1125 	}
   1126 
   1127 	switch {
   1128 	case strings.EqualFold("AccessDeniedException", errorCode):
   1129 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   1130 
   1131 	case strings.EqualFold("InternalServerException", errorCode):
   1132 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   1133 
   1134 	case strings.EqualFold("TooManyRequestsError", errorCode):
   1135 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
   1136 
   1137 	case strings.EqualFold("ValidationException", errorCode):
   1138 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
   1139 
   1140 	default:
   1141 		genericError := &smithy.GenericAPIError{
   1142 			Code:    errorCode,
   1143 			Message: errorMessage,
   1144 		}
   1145 		return genericError
   1146 
   1147 	}
   1148 }
   1149 
   1150 func awsRestjson1_deserializeOpDocumentIntrospectOAuth2TokenWithIAMOutput(v **IntrospectOAuth2TokenWithIAMOutput, value interface{}) error {
   1151 	if v == nil {
   1152 		return fmt.Errorf("unexpected nil of type %T", v)
   1153 	}
   1154 	if value == nil {
   1155 		return nil
   1156 	}
   1157 
   1158 	shape, ok := value.(map[string]interface{})
   1159 	if !ok {
   1160 		return fmt.Errorf("unexpected JSON type %v", value)
   1161 	}
   1162 
   1163 	var sv *IntrospectOAuth2TokenWithIAMOutput
   1164 	if *v == nil {
   1165 		sv = &IntrospectOAuth2TokenWithIAMOutput{}
   1166 	} else {
   1167 		sv = *v
   1168 	}
   1169 
   1170 	for key, value := range shape {
   1171 		switch key {
   1172 		case "account_id":
   1173 			if value != nil {
   1174 				jtv, ok := value.(string)
   1175 				if !ok {
   1176 					return fmt.Errorf("expected AccountId to be of type string, got %T instead", value)
   1177 				}
   1178 				sv.AccountId = ptr.String(jtv)
   1179 			}
   1180 
   1181 		case "active":
   1182 			if value != nil {
   1183 				jtv, ok := value.(bool)
   1184 				if !ok {
   1185 					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
   1186 				}
   1187 				sv.Active = ptr.Bool(jtv)
   1188 			}
   1189 
   1190 		case "aud":
   1191 			if value != nil {
   1192 				jtv, ok := value.(string)
   1193 				if !ok {
   1194 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1195 				}
   1196 				sv.Aud = ptr.String(jtv)
   1197 			}
   1198 
   1199 		case "client_id":
   1200 			if value != nil {
   1201 				jtv, ok := value.(string)
   1202 				if !ok {
   1203 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1204 				}
   1205 				sv.ClientId = ptr.String(jtv)
   1206 			}
   1207 
   1208 		case "exp":
   1209 			if value != nil {
   1210 				jtv, ok := value.(json.Number)
   1211 				if !ok {
   1212 					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
   1213 				}
   1214 				i64, err := jtv.Int64()
   1215 				if err != nil {
   1216 					return err
   1217 				}
   1218 				sv.Exp = ptr.Int64(i64)
   1219 			}
   1220 
   1221 		case "iat":
   1222 			if value != nil {
   1223 				jtv, ok := value.(json.Number)
   1224 				if !ok {
   1225 					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
   1226 				}
   1227 				i64, err := jtv.Int64()
   1228 				if err != nil {
   1229 					return err
   1230 				}
   1231 				sv.Iat = ptr.Int64(i64)
   1232 			}
   1233 
   1234 		case "iss":
   1235 			if value != nil {
   1236 				jtv, ok := value.(string)
   1237 				if !ok {
   1238 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1239 				}
   1240 				sv.Iss = ptr.String(jtv)
   1241 			}
   1242 
   1243 		case "jti":
   1244 			if value != nil {
   1245 				jtv, ok := value.(string)
   1246 				if !ok {
   1247 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1248 				}
   1249 				sv.Jti = ptr.String(jtv)
   1250 			}
   1251 
   1252 		case "nbf":
   1253 			if value != nil {
   1254 				jtv, ok := value.(json.Number)
   1255 				if !ok {
   1256 					return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
   1257 				}
   1258 				i64, err := jtv.Int64()
   1259 				if err != nil {
   1260 					return err
   1261 				}
   1262 				sv.Nbf = ptr.Int64(i64)
   1263 			}
   1264 
   1265 		case "resource":
   1266 			if value != nil {
   1267 				jtv, ok := value.(string)
   1268 				if !ok {
   1269 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1270 				}
   1271 				sv.Resource = ptr.String(jtv)
   1272 			}
   1273 
   1274 		case "signin_session":
   1275 			if value != nil {
   1276 				jtv, ok := value.(string)
   1277 				if !ok {
   1278 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1279 				}
   1280 				sv.SigninSession = ptr.String(jtv)
   1281 			}
   1282 
   1283 		case "sub":
   1284 			if value != nil {
   1285 				jtv, ok := value.(string)
   1286 				if !ok {
   1287 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1288 				}
   1289 				sv.Sub = ptr.String(jtv)
   1290 			}
   1291 
   1292 		case "token_type":
   1293 			if value != nil {
   1294 				jtv, ok := value.(string)
   1295 				if !ok {
   1296 					return fmt.Errorf("expected IntrospectedTokenType to be of type string, got %T instead", value)
   1297 				}
   1298 				sv.TokenType = ptr.String(jtv)
   1299 			}
   1300 
   1301 		case "user_id":
   1302 			if value != nil {
   1303 				jtv, ok := value.(string)
   1304 				if !ok {
   1305 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1306 				}
   1307 				sv.UserId = ptr.String(jtv)
   1308 			}
   1309 
   1310 		default:
   1311 			_, _ = key, value
   1312 
   1313 		}
   1314 	}
   1315 	*v = sv
   1316 	return nil
   1317 }
   1318 
   1319 type awsRestjson1_deserializeOpListResourcePermissionStatements struct {
   1320 }
   1321 
   1322 func (*awsRestjson1_deserializeOpListResourcePermissionStatements) ID() string {
   1323 	return "OperationDeserializer"
   1324 }
   1325 
   1326 func (m *awsRestjson1_deserializeOpListResourcePermissionStatements) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   1327 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   1328 ) {
   1329 	out, metadata, err = next.HandleDeserialize(ctx, in)
   1330 	if err != nil {
   1331 		return out, metadata, err
   1332 	}
   1333 
   1334 	response, ok := out.RawResponse.(*smithyhttp.Response)
   1335 	if !ok {
   1336 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   1337 	}
   1338 
   1339 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
   1340 
   1341 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
   1342 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
   1343 	defer endTimer()
   1344 	defer span.End()
   1345 
   1346 	if response.StatusCode < 200 || response.StatusCode >= 300 {
   1347 		return out, metadata, awsRestjson1_deserializeOpErrorListResourcePermissionStatements(response, &metadata)
   1348 	}
   1349 	output := &ListResourcePermissionStatementsOutput{}
   1350 	out.Result = output
   1351 
   1352 	var buff [1024]byte
   1353 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1354 
   1355 	body := io.TeeReader(response.Body, ringBuffer)
   1356 
   1357 	decoder := json.NewDecoder(body)
   1358 	decoder.UseNumber()
   1359 	var shape interface{}
   1360 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   1361 		var snapshot bytes.Buffer
   1362 		io.Copy(&snapshot, ringBuffer)
   1363 		err = &smithy.DeserializationError{
   1364 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1365 			Snapshot: snapshot.Bytes(),
   1366 		}
   1367 		return out, metadata, err
   1368 	}
   1369 
   1370 	err = awsRestjson1_deserializeOpDocumentListResourcePermissionStatementsOutput(&output, shape)
   1371 	if err != nil {
   1372 		var snapshot bytes.Buffer
   1373 		io.Copy(&snapshot, ringBuffer)
   1374 		return out, metadata, &smithy.DeserializationError{
   1375 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   1376 			Snapshot: snapshot.Bytes(),
   1377 		}
   1378 	}
   1379 
   1380 	span.End()
   1381 	return out, metadata, err
   1382 }
   1383 
   1384 func awsRestjson1_deserializeOpErrorListResourcePermissionStatements(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   1385 	var errorBuffer bytes.Buffer
   1386 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   1387 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   1388 	}
   1389 	errorBody := bytes.NewReader(errorBuffer.Bytes())
   1390 
   1391 	errorCode := "UnknownError"
   1392 	errorMessage := errorCode
   1393 
   1394 	headerCode := response.Header.Get("X-Amzn-ErrorType")
   1395 	if len(headerCode) != 0 {
   1396 		errorCode = restjson.SanitizeErrorCode(headerCode)
   1397 	}
   1398 
   1399 	var buff [1024]byte
   1400 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1401 
   1402 	body := io.TeeReader(errorBody, ringBuffer)
   1403 	decoder := json.NewDecoder(body)
   1404 	decoder.UseNumber()
   1405 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   1406 	if err != nil {
   1407 		var snapshot bytes.Buffer
   1408 		io.Copy(&snapshot, ringBuffer)
   1409 		err = &smithy.DeserializationError{
   1410 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1411 			Snapshot: snapshot.Bytes(),
   1412 		}
   1413 		return err
   1414 	}
   1415 
   1416 	errorBody.Seek(0, io.SeekStart)
   1417 	if len(headerCode) == 0 && len(jsonCode) != 0 {
   1418 		errorCode = restjson.SanitizeErrorCode(jsonCode)
   1419 	}
   1420 	if len(message) != 0 {
   1421 		errorMessage = message
   1422 	}
   1423 
   1424 	switch {
   1425 	case strings.EqualFold("AccessDeniedException", errorCode):
   1426 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   1427 
   1428 	case strings.EqualFold("InternalServerException", errorCode):
   1429 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   1430 
   1431 	case strings.EqualFold("ResourceNotFoundException", errorCode):
   1432 		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
   1433 
   1434 	case strings.EqualFold("TooManyRequestsError", errorCode):
   1435 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
   1436 
   1437 	case strings.EqualFold("ValidationException", errorCode):
   1438 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
   1439 
   1440 	default:
   1441 		genericError := &smithy.GenericAPIError{
   1442 			Code:    errorCode,
   1443 			Message: errorMessage,
   1444 		}
   1445 		return genericError
   1446 
   1447 	}
   1448 }
   1449 
   1450 func awsRestjson1_deserializeOpDocumentListResourcePermissionStatementsOutput(v **ListResourcePermissionStatementsOutput, value interface{}) error {
   1451 	if v == nil {
   1452 		return fmt.Errorf("unexpected nil of type %T", v)
   1453 	}
   1454 	if value == nil {
   1455 		return nil
   1456 	}
   1457 
   1458 	shape, ok := value.(map[string]interface{})
   1459 	if !ok {
   1460 		return fmt.Errorf("unexpected JSON type %v", value)
   1461 	}
   1462 
   1463 	var sv *ListResourcePermissionStatementsOutput
   1464 	if *v == nil {
   1465 		sv = &ListResourcePermissionStatementsOutput{}
   1466 	} else {
   1467 		sv = *v
   1468 	}
   1469 
   1470 	for key, value := range shape {
   1471 		switch key {
   1472 		case "nextToken":
   1473 			if value != nil {
   1474 				jtv, ok := value.(string)
   1475 				if !ok {
   1476 					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
   1477 				}
   1478 				sv.NextToken = ptr.String(jtv)
   1479 			}
   1480 
   1481 		case "permissionStatements":
   1482 			if err := awsRestjson1_deserializeDocumentPermissionStatementSummaries(&sv.PermissionStatements, value); err != nil {
   1483 				return err
   1484 			}
   1485 
   1486 		default:
   1487 			_, _ = key, value
   1488 
   1489 		}
   1490 	}
   1491 	*v = sv
   1492 	return nil
   1493 }
   1494 
   1495 type awsRestjson1_deserializeOpPutConsoleAuthorizationConfiguration struct {
   1496 }
   1497 
   1498 func (*awsRestjson1_deserializeOpPutConsoleAuthorizationConfiguration) ID() string {
   1499 	return "OperationDeserializer"
   1500 }
   1501 
   1502 func (m *awsRestjson1_deserializeOpPutConsoleAuthorizationConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   1503 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   1504 ) {
   1505 	out, metadata, err = next.HandleDeserialize(ctx, in)
   1506 	if err != nil {
   1507 		return out, metadata, err
   1508 	}
   1509 
   1510 	response, ok := out.RawResponse.(*smithyhttp.Response)
   1511 	if !ok {
   1512 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   1513 	}
   1514 
   1515 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
   1516 
   1517 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
   1518 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
   1519 	defer endTimer()
   1520 	defer span.End()
   1521 
   1522 	if response.StatusCode < 200 || response.StatusCode >= 300 {
   1523 		return out, metadata, awsRestjson1_deserializeOpErrorPutConsoleAuthorizationConfiguration(response, &metadata)
   1524 	}
   1525 	output := &PutConsoleAuthorizationConfigurationOutput{}
   1526 	out.Result = output
   1527 
   1528 	var buff [1024]byte
   1529 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1530 
   1531 	body := io.TeeReader(response.Body, ringBuffer)
   1532 
   1533 	decoder := json.NewDecoder(body)
   1534 	decoder.UseNumber()
   1535 	var shape interface{}
   1536 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   1537 		var snapshot bytes.Buffer
   1538 		io.Copy(&snapshot, ringBuffer)
   1539 		err = &smithy.DeserializationError{
   1540 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1541 			Snapshot: snapshot.Bytes(),
   1542 		}
   1543 		return out, metadata, err
   1544 	}
   1545 
   1546 	err = awsRestjson1_deserializeOpDocumentPutConsoleAuthorizationConfigurationOutput(&output, shape)
   1547 	if err != nil {
   1548 		var snapshot bytes.Buffer
   1549 		io.Copy(&snapshot, ringBuffer)
   1550 		return out, metadata, &smithy.DeserializationError{
   1551 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   1552 			Snapshot: snapshot.Bytes(),
   1553 		}
   1554 	}
   1555 
   1556 	span.End()
   1557 	return out, metadata, err
   1558 }
   1559 
   1560 func awsRestjson1_deserializeOpErrorPutConsoleAuthorizationConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   1561 	var errorBuffer bytes.Buffer
   1562 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   1563 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   1564 	}
   1565 	errorBody := bytes.NewReader(errorBuffer.Bytes())
   1566 
   1567 	errorCode := "UnknownError"
   1568 	errorMessage := errorCode
   1569 
   1570 	headerCode := response.Header.Get("X-Amzn-ErrorType")
   1571 	if len(headerCode) != 0 {
   1572 		errorCode = restjson.SanitizeErrorCode(headerCode)
   1573 	}
   1574 
   1575 	var buff [1024]byte
   1576 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1577 
   1578 	body := io.TeeReader(errorBody, ringBuffer)
   1579 	decoder := json.NewDecoder(body)
   1580 	decoder.UseNumber()
   1581 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   1582 	if err != nil {
   1583 		var snapshot bytes.Buffer
   1584 		io.Copy(&snapshot, ringBuffer)
   1585 		err = &smithy.DeserializationError{
   1586 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1587 			Snapshot: snapshot.Bytes(),
   1588 		}
   1589 		return err
   1590 	}
   1591 
   1592 	errorBody.Seek(0, io.SeekStart)
   1593 	if len(headerCode) == 0 && len(jsonCode) != 0 {
   1594 		errorCode = restjson.SanitizeErrorCode(jsonCode)
   1595 	}
   1596 	if len(message) != 0 {
   1597 		errorMessage = message
   1598 	}
   1599 
   1600 	switch {
   1601 	case strings.EqualFold("AccessDeniedException", errorCode):
   1602 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   1603 
   1604 	case strings.EqualFold("ConflictException", errorCode):
   1605 		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
   1606 
   1607 	case strings.EqualFold("InternalServerException", errorCode):
   1608 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   1609 
   1610 	case strings.EqualFold("ResourceNotFoundException", errorCode):
   1611 		return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody)
   1612 
   1613 	case strings.EqualFold("TooManyRequestsError", errorCode):
   1614 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
   1615 
   1616 	case strings.EqualFold("ValidationException", errorCode):
   1617 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
   1618 
   1619 	default:
   1620 		genericError := &smithy.GenericAPIError{
   1621 			Code:    errorCode,
   1622 			Message: errorMessage,
   1623 		}
   1624 		return genericError
   1625 
   1626 	}
   1627 }
   1628 
   1629 func awsRestjson1_deserializeOpDocumentPutConsoleAuthorizationConfigurationOutput(v **PutConsoleAuthorizationConfigurationOutput, value interface{}) error {
   1630 	if v == nil {
   1631 		return fmt.Errorf("unexpected nil of type %T", v)
   1632 	}
   1633 	if value == nil {
   1634 		return nil
   1635 	}
   1636 
   1637 	shape, ok := value.(map[string]interface{})
   1638 	if !ok {
   1639 		return fmt.Errorf("unexpected JSON type %v", value)
   1640 	}
   1641 
   1642 	var sv *PutConsoleAuthorizationConfigurationOutput
   1643 	if *v == nil {
   1644 		sv = &PutConsoleAuthorizationConfigurationOutput{}
   1645 	} else {
   1646 		sv = *v
   1647 	}
   1648 
   1649 	for key, value := range shape {
   1650 		switch key {
   1651 		case "consoleAuthorizationEnabled":
   1652 			if value != nil {
   1653 				jtv, ok := value.(bool)
   1654 				if !ok {
   1655 					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
   1656 				}
   1657 				sv.ConsoleAuthorizationEnabled = ptr.Bool(jtv)
   1658 			}
   1659 
   1660 		case "scope":
   1661 			if value != nil {
   1662 				jtv, ok := value.(string)
   1663 				if !ok {
   1664 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   1665 				}
   1666 				sv.Scope = ptr.String(jtv)
   1667 			}
   1668 
   1669 		case "targetId":
   1670 			if value != nil {
   1671 				jtv, ok := value.(string)
   1672 				if !ok {
   1673 					return fmt.Errorf("expected TargetId to be of type string, got %T instead", value)
   1674 				}
   1675 				sv.TargetId = ptr.String(jtv)
   1676 			}
   1677 
   1678 		default:
   1679 			_, _ = key, value
   1680 
   1681 		}
   1682 	}
   1683 	*v = sv
   1684 	return nil
   1685 }
   1686 
   1687 type awsRestjson1_deserializeOpPutResourcePermissionStatement struct {
   1688 }
   1689 
   1690 func (*awsRestjson1_deserializeOpPutResourcePermissionStatement) ID() string {
   1691 	return "OperationDeserializer"
   1692 }
   1693 
   1694 func (m *awsRestjson1_deserializeOpPutResourcePermissionStatement) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   1695 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   1696 ) {
   1697 	out, metadata, err = next.HandleDeserialize(ctx, in)
   1698 	if err != nil {
   1699 		return out, metadata, err
   1700 	}
   1701 
   1702 	response, ok := out.RawResponse.(*smithyhttp.Response)
   1703 	if !ok {
   1704 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   1705 	}
   1706 
   1707 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
   1708 
   1709 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
   1710 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
   1711 	defer endTimer()
   1712 	defer span.End()
   1713 
   1714 	if response.StatusCode < 200 || response.StatusCode >= 300 {
   1715 		return out, metadata, awsRestjson1_deserializeOpErrorPutResourcePermissionStatement(response, &metadata)
   1716 	}
   1717 	output := &PutResourcePermissionStatementOutput{}
   1718 	out.Result = output
   1719 
   1720 	var buff [1024]byte
   1721 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1722 
   1723 	body := io.TeeReader(response.Body, ringBuffer)
   1724 
   1725 	decoder := json.NewDecoder(body)
   1726 	decoder.UseNumber()
   1727 	var shape interface{}
   1728 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   1729 		var snapshot bytes.Buffer
   1730 		io.Copy(&snapshot, ringBuffer)
   1731 		err = &smithy.DeserializationError{
   1732 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1733 			Snapshot: snapshot.Bytes(),
   1734 		}
   1735 		return out, metadata, err
   1736 	}
   1737 
   1738 	err = awsRestjson1_deserializeOpDocumentPutResourcePermissionStatementOutput(&output, shape)
   1739 	if err != nil {
   1740 		var snapshot bytes.Buffer
   1741 		io.Copy(&snapshot, ringBuffer)
   1742 		return out, metadata, &smithy.DeserializationError{
   1743 			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   1744 			Snapshot: snapshot.Bytes(),
   1745 		}
   1746 	}
   1747 
   1748 	span.End()
   1749 	return out, metadata, err
   1750 }
   1751 
   1752 func awsRestjson1_deserializeOpErrorPutResourcePermissionStatement(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   1753 	var errorBuffer bytes.Buffer
   1754 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   1755 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   1756 	}
   1757 	errorBody := bytes.NewReader(errorBuffer.Bytes())
   1758 
   1759 	errorCode := "UnknownError"
   1760 	errorMessage := errorCode
   1761 
   1762 	headerCode := response.Header.Get("X-Amzn-ErrorType")
   1763 	if len(headerCode) != 0 {
   1764 		errorCode = restjson.SanitizeErrorCode(headerCode)
   1765 	}
   1766 
   1767 	var buff [1024]byte
   1768 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1769 
   1770 	body := io.TeeReader(errorBody, ringBuffer)
   1771 	decoder := json.NewDecoder(body)
   1772 	decoder.UseNumber()
   1773 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   1774 	if err != nil {
   1775 		var snapshot bytes.Buffer
   1776 		io.Copy(&snapshot, ringBuffer)
   1777 		err = &smithy.DeserializationError{
   1778 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1779 			Snapshot: snapshot.Bytes(),
   1780 		}
   1781 		return err
   1782 	}
   1783 
   1784 	errorBody.Seek(0, io.SeekStart)
   1785 	if len(headerCode) == 0 && len(jsonCode) != 0 {
   1786 		errorCode = restjson.SanitizeErrorCode(jsonCode)
   1787 	}
   1788 	if len(message) != 0 {
   1789 		errorMessage = message
   1790 	}
   1791 
   1792 	switch {
   1793 	case strings.EqualFold("AccessDeniedException", errorCode):
   1794 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   1795 
   1796 	case strings.EqualFold("ConflictException", errorCode):
   1797 		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
   1798 
   1799 	case strings.EqualFold("InternalServerException", errorCode):
   1800 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   1801 
   1802 	case strings.EqualFold("ServiceQuotaExceededException", errorCode):
   1803 		return awsRestjson1_deserializeErrorServiceQuotaExceededException(response, errorBody)
   1804 
   1805 	case strings.EqualFold("TooManyRequestsError", errorCode):
   1806 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
   1807 
   1808 	case strings.EqualFold("ValidationException", errorCode):
   1809 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
   1810 
   1811 	default:
   1812 		genericError := &smithy.GenericAPIError{
   1813 			Code:    errorCode,
   1814 			Message: errorMessage,
   1815 		}
   1816 		return genericError
   1817 
   1818 	}
   1819 }
   1820 
   1821 func awsRestjson1_deserializeOpDocumentPutResourcePermissionStatementOutput(v **PutResourcePermissionStatementOutput, value interface{}) error {
   1822 	if v == nil {
   1823 		return fmt.Errorf("unexpected nil of type %T", v)
   1824 	}
   1825 	if value == nil {
   1826 		return nil
   1827 	}
   1828 
   1829 	shape, ok := value.(map[string]interface{})
   1830 	if !ok {
   1831 		return fmt.Errorf("unexpected JSON type %v", value)
   1832 	}
   1833 
   1834 	var sv *PutResourcePermissionStatementOutput
   1835 	if *v == nil {
   1836 		sv = &PutResourcePermissionStatementOutput{}
   1837 	} else {
   1838 		sv = *v
   1839 	}
   1840 
   1841 	for key, value := range shape {
   1842 		switch key {
   1843 		case "statementId":
   1844 			if value != nil {
   1845 				jtv, ok := value.(string)
   1846 				if !ok {
   1847 					return fmt.Errorf("expected StatementId to be of type string, got %T instead", value)
   1848 				}
   1849 				sv.StatementId = ptr.String(jtv)
   1850 			}
   1851 
   1852 		default:
   1853 			_, _ = key, value
   1854 
   1855 		}
   1856 	}
   1857 	*v = sv
   1858 	return nil
   1859 }
   1860 
   1861 type awsRestjson1_deserializeOpRevokeOAuth2TokenWithIAM struct {
   1862 }
   1863 
   1864 func (*awsRestjson1_deserializeOpRevokeOAuth2TokenWithIAM) ID() string {
   1865 	return "OperationDeserializer"
   1866 }
   1867 
   1868 func (m *awsRestjson1_deserializeOpRevokeOAuth2TokenWithIAM) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   1869 	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   1870 ) {
   1871 	out, metadata, err = next.HandleDeserialize(ctx, in)
   1872 	if err != nil {
   1873 		return out, metadata, err
   1874 	}
   1875 
   1876 	response, ok := out.RawResponse.(*smithyhttp.Response)
   1877 	if !ok {
   1878 		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   1879 	}
   1880 
   1881 	defer func() { smithyhttp.CloseResponseBody(ctx, response, false, err) }()
   1882 
   1883 	_, span := tracing.StartSpan(ctx, "OperationDeserializer")
   1884 	endTimer := startMetricTimer(ctx, "client.call.deserialization_duration")
   1885 	defer endTimer()
   1886 	defer span.End()
   1887 
   1888 	if response.StatusCode < 200 || response.StatusCode >= 300 {
   1889 		return out, metadata, awsRestjson1_deserializeOpErrorRevokeOAuth2TokenWithIAM(response, &metadata)
   1890 	}
   1891 	output := &RevokeOAuth2TokenWithIAMOutput{}
   1892 	out.Result = output
   1893 
   1894 	span.End()
   1895 	return out, metadata, err
   1896 }
   1897 
   1898 func awsRestjson1_deserializeOpErrorRevokeOAuth2TokenWithIAM(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   1899 	var errorBuffer bytes.Buffer
   1900 	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   1901 		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   1902 	}
   1903 	errorBody := bytes.NewReader(errorBuffer.Bytes())
   1904 
   1905 	errorCode := "UnknownError"
   1906 	errorMessage := errorCode
   1907 
   1908 	headerCode := response.Header.Get("X-Amzn-ErrorType")
   1909 	if len(headerCode) != 0 {
   1910 		errorCode = restjson.SanitizeErrorCode(headerCode)
   1911 	}
   1912 
   1913 	var buff [1024]byte
   1914 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1915 
   1916 	body := io.TeeReader(errorBody, ringBuffer)
   1917 	decoder := json.NewDecoder(body)
   1918 	decoder.UseNumber()
   1919 	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   1920 	if err != nil {
   1921 		var snapshot bytes.Buffer
   1922 		io.Copy(&snapshot, ringBuffer)
   1923 		err = &smithy.DeserializationError{
   1924 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1925 			Snapshot: snapshot.Bytes(),
   1926 		}
   1927 		return err
   1928 	}
   1929 
   1930 	errorBody.Seek(0, io.SeekStart)
   1931 	if len(headerCode) == 0 && len(jsonCode) != 0 {
   1932 		errorCode = restjson.SanitizeErrorCode(jsonCode)
   1933 	}
   1934 	if len(message) != 0 {
   1935 		errorMessage = message
   1936 	}
   1937 
   1938 	switch {
   1939 	case strings.EqualFold("AccessDeniedException", errorCode):
   1940 		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   1941 
   1942 	case strings.EqualFold("InternalServerException", errorCode):
   1943 		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   1944 
   1945 	case strings.EqualFold("TooManyRequestsError", errorCode):
   1946 		return awsRestjson1_deserializeErrorTooManyRequestsError(response, errorBody)
   1947 
   1948 	case strings.EqualFold("ValidationException", errorCode):
   1949 		return awsRestjson1_deserializeErrorValidationException(response, errorBody)
   1950 
   1951 	default:
   1952 		genericError := &smithy.GenericAPIError{
   1953 			Code:    errorCode,
   1954 			Message: errorMessage,
   1955 		}
   1956 		return genericError
   1957 
   1958 	}
   1959 }
   1960 
   1961 func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   1962 	output := &types.AccessDeniedException{}
   1963 	var buff [1024]byte
   1964 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   1965 
   1966 	body := io.TeeReader(errorBody, ringBuffer)
   1967 	decoder := json.NewDecoder(body)
   1968 	decoder.UseNumber()
   1969 	var shape interface{}
   1970 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   1971 		var snapshot bytes.Buffer
   1972 		io.Copy(&snapshot, ringBuffer)
   1973 		err = &smithy.DeserializationError{
   1974 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1975 			Snapshot: snapshot.Bytes(),
   1976 		}
   1977 		return err
   1978 	}
   1979 
   1980 	err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape)
   1981 
   1982 	if err != nil {
   1983 		var snapshot bytes.Buffer
   1984 		io.Copy(&snapshot, ringBuffer)
   1985 		err = &smithy.DeserializationError{
   1986 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   1987 			Snapshot: snapshot.Bytes(),
   1988 		}
   1989 		return err
   1990 	}
   1991 
   1992 	errorBody.Seek(0, io.SeekStart)
   1993 
   1994 	return output
   1995 }
   1996 
   1997 func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   1998 	output := &types.ConflictException{}
   1999 	var buff [1024]byte
   2000 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   2001 
   2002 	body := io.TeeReader(errorBody, ringBuffer)
   2003 	decoder := json.NewDecoder(body)
   2004 	decoder.UseNumber()
   2005 	var shape interface{}
   2006 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   2007 		var snapshot bytes.Buffer
   2008 		io.Copy(&snapshot, ringBuffer)
   2009 		err = &smithy.DeserializationError{
   2010 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2011 			Snapshot: snapshot.Bytes(),
   2012 		}
   2013 		return err
   2014 	}
   2015 
   2016 	err := awsRestjson1_deserializeDocumentConflictException(&output, shape)
   2017 
   2018 	if err != nil {
   2019 		var snapshot bytes.Buffer
   2020 		io.Copy(&snapshot, ringBuffer)
   2021 		err = &smithy.DeserializationError{
   2022 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2023 			Snapshot: snapshot.Bytes(),
   2024 		}
   2025 		return err
   2026 	}
   2027 
   2028 	errorBody.Seek(0, io.SeekStart)
   2029 
   2030 	return output
   2031 }
   2032 
   2033 func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   2034 	output := &types.InternalServerException{}
   2035 	var buff [1024]byte
   2036 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   2037 
   2038 	body := io.TeeReader(errorBody, ringBuffer)
   2039 	decoder := json.NewDecoder(body)
   2040 	decoder.UseNumber()
   2041 	var shape interface{}
   2042 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   2043 		var snapshot bytes.Buffer
   2044 		io.Copy(&snapshot, ringBuffer)
   2045 		err = &smithy.DeserializationError{
   2046 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2047 			Snapshot: snapshot.Bytes(),
   2048 		}
   2049 		return err
   2050 	}
   2051 
   2052 	err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape)
   2053 
   2054 	if err != nil {
   2055 		var snapshot bytes.Buffer
   2056 		io.Copy(&snapshot, ringBuffer)
   2057 		err = &smithy.DeserializationError{
   2058 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2059 			Snapshot: snapshot.Bytes(),
   2060 		}
   2061 		return err
   2062 	}
   2063 
   2064 	errorBody.Seek(0, io.SeekStart)
   2065 
   2066 	return output
   2067 }
   2068 
   2069 func awsRestjson1_deserializeErrorResourceNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   2070 	output := &types.ResourceNotFoundException{}
   2071 	var buff [1024]byte
   2072 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   2073 
   2074 	body := io.TeeReader(errorBody, ringBuffer)
   2075 	decoder := json.NewDecoder(body)
   2076 	decoder.UseNumber()
   2077 	var shape interface{}
   2078 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   2079 		var snapshot bytes.Buffer
   2080 		io.Copy(&snapshot, ringBuffer)
   2081 		err = &smithy.DeserializationError{
   2082 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2083 			Snapshot: snapshot.Bytes(),
   2084 		}
   2085 		return err
   2086 	}
   2087 
   2088 	err := awsRestjson1_deserializeDocumentResourceNotFoundException(&output, shape)
   2089 
   2090 	if err != nil {
   2091 		var snapshot bytes.Buffer
   2092 		io.Copy(&snapshot, ringBuffer)
   2093 		err = &smithy.DeserializationError{
   2094 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2095 			Snapshot: snapshot.Bytes(),
   2096 		}
   2097 		return err
   2098 	}
   2099 
   2100 	errorBody.Seek(0, io.SeekStart)
   2101 
   2102 	return output
   2103 }
   2104 
   2105 func awsRestjson1_deserializeErrorServiceQuotaExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   2106 	output := &types.ServiceQuotaExceededException{}
   2107 	var buff [1024]byte
   2108 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   2109 
   2110 	body := io.TeeReader(errorBody, ringBuffer)
   2111 	decoder := json.NewDecoder(body)
   2112 	decoder.UseNumber()
   2113 	var shape interface{}
   2114 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   2115 		var snapshot bytes.Buffer
   2116 		io.Copy(&snapshot, ringBuffer)
   2117 		err = &smithy.DeserializationError{
   2118 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2119 			Snapshot: snapshot.Bytes(),
   2120 		}
   2121 		return err
   2122 	}
   2123 
   2124 	err := awsRestjson1_deserializeDocumentServiceQuotaExceededException(&output, shape)
   2125 
   2126 	if err != nil {
   2127 		var snapshot bytes.Buffer
   2128 		io.Copy(&snapshot, ringBuffer)
   2129 		err = &smithy.DeserializationError{
   2130 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2131 			Snapshot: snapshot.Bytes(),
   2132 		}
   2133 		return err
   2134 	}
   2135 
   2136 	errorBody.Seek(0, io.SeekStart)
   2137 
   2138 	return output
   2139 }
   2140 
   2141 func awsRestjson1_deserializeErrorTooManyRequestsError(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   2142 	output := &types.TooManyRequestsError{}
   2143 	var buff [1024]byte
   2144 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   2145 
   2146 	body := io.TeeReader(errorBody, ringBuffer)
   2147 	decoder := json.NewDecoder(body)
   2148 	decoder.UseNumber()
   2149 	var shape interface{}
   2150 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   2151 		var snapshot bytes.Buffer
   2152 		io.Copy(&snapshot, ringBuffer)
   2153 		err = &smithy.DeserializationError{
   2154 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2155 			Snapshot: snapshot.Bytes(),
   2156 		}
   2157 		return err
   2158 	}
   2159 
   2160 	err := awsRestjson1_deserializeDocumentTooManyRequestsError(&output, shape)
   2161 
   2162 	if err != nil {
   2163 		var snapshot bytes.Buffer
   2164 		io.Copy(&snapshot, ringBuffer)
   2165 		err = &smithy.DeserializationError{
   2166 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2167 			Snapshot: snapshot.Bytes(),
   2168 		}
   2169 		return err
   2170 	}
   2171 
   2172 	errorBody.Seek(0, io.SeekStart)
   2173 
   2174 	return output
   2175 }
   2176 
   2177 func awsRestjson1_deserializeErrorValidationException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   2178 	output := &types.ValidationException{}
   2179 	var buff [1024]byte
   2180 	ringBuffer := smithyio.NewRingBuffer(buff[:])
   2181 
   2182 	body := io.TeeReader(errorBody, ringBuffer)
   2183 	decoder := json.NewDecoder(body)
   2184 	decoder.UseNumber()
   2185 	var shape interface{}
   2186 	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   2187 		var snapshot bytes.Buffer
   2188 		io.Copy(&snapshot, ringBuffer)
   2189 		err = &smithy.DeserializationError{
   2190 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2191 			Snapshot: snapshot.Bytes(),
   2192 		}
   2193 		return err
   2194 	}
   2195 
   2196 	err := awsRestjson1_deserializeDocumentValidationException(&output, shape)
   2197 
   2198 	if err != nil {
   2199 		var snapshot bytes.Buffer
   2200 		io.Copy(&snapshot, ringBuffer)
   2201 		err = &smithy.DeserializationError{
   2202 			Err:      fmt.Errorf("failed to decode response body, %w", err),
   2203 			Snapshot: snapshot.Bytes(),
   2204 		}
   2205 		return err
   2206 	}
   2207 
   2208 	errorBody.Seek(0, io.SeekStart)
   2209 
   2210 	return output
   2211 }
   2212 
   2213 func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error {
   2214 	if v == nil {
   2215 		return fmt.Errorf("unexpected nil of type %T", v)
   2216 	}
   2217 	if value == nil {
   2218 		return nil
   2219 	}
   2220 
   2221 	shape, ok := value.(map[string]interface{})
   2222 	if !ok {
   2223 		return fmt.Errorf("unexpected JSON type %v", value)
   2224 	}
   2225 
   2226 	var sv *types.AccessDeniedException
   2227 	if *v == nil {
   2228 		sv = &types.AccessDeniedException{}
   2229 	} else {
   2230 		sv = *v
   2231 	}
   2232 
   2233 	for key, value := range shape {
   2234 		switch key {
   2235 		case "error":
   2236 			if value != nil {
   2237 				jtv, ok := value.(string)
   2238 				if !ok {
   2239 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   2240 				}
   2241 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   2242 			}
   2243 
   2244 		case "message", "Message":
   2245 			if value != nil {
   2246 				jtv, ok := value.(string)
   2247 				if !ok {
   2248 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2249 				}
   2250 				sv.Message = ptr.String(jtv)
   2251 			}
   2252 
   2253 		default:
   2254 			_, _ = key, value
   2255 
   2256 		}
   2257 	}
   2258 	*v = sv
   2259 	return nil
   2260 }
   2261 
   2262 func awsRestjson1_deserializeDocumentAccessToken(v **types.AccessToken, value interface{}) error {
   2263 	if v == nil {
   2264 		return fmt.Errorf("unexpected nil of type %T", v)
   2265 	}
   2266 	if value == nil {
   2267 		return nil
   2268 	}
   2269 
   2270 	shape, ok := value.(map[string]interface{})
   2271 	if !ok {
   2272 		return fmt.Errorf("unexpected JSON type %v", value)
   2273 	}
   2274 
   2275 	var sv *types.AccessToken
   2276 	if *v == nil {
   2277 		sv = &types.AccessToken{}
   2278 	} else {
   2279 		sv = *v
   2280 	}
   2281 
   2282 	for key, value := range shape {
   2283 		switch key {
   2284 		case "accessKeyId":
   2285 			if value != nil {
   2286 				jtv, ok := value.(string)
   2287 				if !ok {
   2288 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2289 				}
   2290 				sv.AccessKeyId = ptr.String(jtv)
   2291 			}
   2292 
   2293 		case "secretAccessKey":
   2294 			if value != nil {
   2295 				jtv, ok := value.(string)
   2296 				if !ok {
   2297 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2298 				}
   2299 				sv.SecretAccessKey = ptr.String(jtv)
   2300 			}
   2301 
   2302 		case "sessionToken":
   2303 			if value != nil {
   2304 				jtv, ok := value.(string)
   2305 				if !ok {
   2306 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2307 				}
   2308 				sv.SessionToken = ptr.String(jtv)
   2309 			}
   2310 
   2311 		default:
   2312 			_, _ = key, value
   2313 
   2314 		}
   2315 	}
   2316 	*v = sv
   2317 	return nil
   2318 }
   2319 
   2320 func awsRestjson1_deserializeDocumentCondition(v *map[string][]string, value interface{}) error {
   2321 	if v == nil {
   2322 		return fmt.Errorf("unexpected nil of type %T", v)
   2323 	}
   2324 	if value == nil {
   2325 		return nil
   2326 	}
   2327 
   2328 	shape, ok := value.(map[string]interface{})
   2329 	if !ok {
   2330 		return fmt.Errorf("unexpected JSON type %v", value)
   2331 	}
   2332 
   2333 	var mv map[string][]string
   2334 	if *v == nil {
   2335 		mv = map[string][]string{}
   2336 	} else {
   2337 		mv = *v
   2338 	}
   2339 
   2340 	for key, value := range shape {
   2341 		var parsedVal []string
   2342 		mapVar := parsedVal
   2343 		if err := awsRestjson1_deserializeDocumentConditionValues(&mapVar, value); err != nil {
   2344 			return err
   2345 		}
   2346 		parsedVal = mapVar
   2347 		mv[key] = parsedVal
   2348 
   2349 	}
   2350 	*v = mv
   2351 	return nil
   2352 }
   2353 
   2354 func awsRestjson1_deserializeDocumentConditionBlock(v *map[string]map[string][]string, value interface{}) error {
   2355 	if v == nil {
   2356 		return fmt.Errorf("unexpected nil of type %T", v)
   2357 	}
   2358 	if value == nil {
   2359 		return nil
   2360 	}
   2361 
   2362 	shape, ok := value.(map[string]interface{})
   2363 	if !ok {
   2364 		return fmt.Errorf("unexpected JSON type %v", value)
   2365 	}
   2366 
   2367 	var mv map[string]map[string][]string
   2368 	if *v == nil {
   2369 		mv = map[string]map[string][]string{}
   2370 	} else {
   2371 		mv = *v
   2372 	}
   2373 
   2374 	for key, value := range shape {
   2375 		var parsedVal map[string][]string
   2376 		mapVar := parsedVal
   2377 		if err := awsRestjson1_deserializeDocumentCondition(&mapVar, value); err != nil {
   2378 			return err
   2379 		}
   2380 		parsedVal = mapVar
   2381 		mv[key] = parsedVal
   2382 
   2383 	}
   2384 	*v = mv
   2385 	return nil
   2386 }
   2387 
   2388 func awsRestjson1_deserializeDocumentConditionValues(v *[]string, value interface{}) error {
   2389 	if v == nil {
   2390 		return fmt.Errorf("unexpected nil of type %T", v)
   2391 	}
   2392 	if value == nil {
   2393 		return nil
   2394 	}
   2395 
   2396 	shape, ok := value.([]interface{})
   2397 	if !ok {
   2398 		return fmt.Errorf("unexpected JSON type %v", value)
   2399 	}
   2400 
   2401 	var cv []string
   2402 	if *v == nil {
   2403 		cv = []string{}
   2404 	} else {
   2405 		cv = *v
   2406 	}
   2407 
   2408 	for _, value := range shape {
   2409 		var col string
   2410 		if value != nil {
   2411 			jtv, ok := value.(string)
   2412 			if !ok {
   2413 				return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2414 			}
   2415 			col = jtv
   2416 		}
   2417 		cv = append(cv, col)
   2418 
   2419 	}
   2420 	*v = cv
   2421 	return nil
   2422 }
   2423 
   2424 func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error {
   2425 	if v == nil {
   2426 		return fmt.Errorf("unexpected nil of type %T", v)
   2427 	}
   2428 	if value == nil {
   2429 		return nil
   2430 	}
   2431 
   2432 	shape, ok := value.(map[string]interface{})
   2433 	if !ok {
   2434 		return fmt.Errorf("unexpected JSON type %v", value)
   2435 	}
   2436 
   2437 	var sv *types.ConflictException
   2438 	if *v == nil {
   2439 		sv = &types.ConflictException{}
   2440 	} else {
   2441 		sv = *v
   2442 	}
   2443 
   2444 	for key, value := range shape {
   2445 		switch key {
   2446 		case "error":
   2447 			if value != nil {
   2448 				jtv, ok := value.(string)
   2449 				if !ok {
   2450 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   2451 				}
   2452 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   2453 			}
   2454 
   2455 		case "message", "Message":
   2456 			if value != nil {
   2457 				jtv, ok := value.(string)
   2458 				if !ok {
   2459 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2460 				}
   2461 				sv.Message = ptr.String(jtv)
   2462 			}
   2463 
   2464 		default:
   2465 			_, _ = key, value
   2466 
   2467 		}
   2468 	}
   2469 	*v = sv
   2470 	return nil
   2471 }
   2472 
   2473 func awsRestjson1_deserializeDocumentCreateOAuth2TokenResponseBody(v **types.CreateOAuth2TokenResponseBody, value interface{}) error {
   2474 	if v == nil {
   2475 		return fmt.Errorf("unexpected nil of type %T", v)
   2476 	}
   2477 	if value == nil {
   2478 		return nil
   2479 	}
   2480 
   2481 	shape, ok := value.(map[string]interface{})
   2482 	if !ok {
   2483 		return fmt.Errorf("unexpected JSON type %v", value)
   2484 	}
   2485 
   2486 	var sv *types.CreateOAuth2TokenResponseBody
   2487 	if *v == nil {
   2488 		sv = &types.CreateOAuth2TokenResponseBody{}
   2489 	} else {
   2490 		sv = *v
   2491 	}
   2492 
   2493 	for key, value := range shape {
   2494 		switch key {
   2495 		case "accessToken":
   2496 			if err := awsRestjson1_deserializeDocumentAccessToken(&sv.AccessToken, value); err != nil {
   2497 				return err
   2498 			}
   2499 
   2500 		case "expiresIn":
   2501 			if value != nil {
   2502 				jtv, ok := value.(json.Number)
   2503 				if !ok {
   2504 					return fmt.Errorf("expected ExpiresIn to be json.Number, got %T instead", value)
   2505 				}
   2506 				i64, err := jtv.Int64()
   2507 				if err != nil {
   2508 					return err
   2509 				}
   2510 				sv.ExpiresIn = ptr.Int32(int32(i64))
   2511 			}
   2512 
   2513 		case "idToken":
   2514 			if value != nil {
   2515 				jtv, ok := value.(string)
   2516 				if !ok {
   2517 					return fmt.Errorf("expected IdToken to be of type string, got %T instead", value)
   2518 				}
   2519 				sv.IdToken = ptr.String(jtv)
   2520 			}
   2521 
   2522 		case "refreshToken":
   2523 			if value != nil {
   2524 				jtv, ok := value.(string)
   2525 				if !ok {
   2526 					return fmt.Errorf("expected RefreshToken to be of type string, got %T instead", value)
   2527 				}
   2528 				sv.RefreshToken = ptr.String(jtv)
   2529 			}
   2530 
   2531 		case "tokenType":
   2532 			if value != nil {
   2533 				jtv, ok := value.(string)
   2534 				if !ok {
   2535 					return fmt.Errorf("expected TokenType to be of type string, got %T instead", value)
   2536 				}
   2537 				sv.TokenType = ptr.String(jtv)
   2538 			}
   2539 
   2540 		default:
   2541 			_, _ = key, value
   2542 
   2543 		}
   2544 	}
   2545 	*v = sv
   2546 	return nil
   2547 }
   2548 
   2549 func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error {
   2550 	if v == nil {
   2551 		return fmt.Errorf("unexpected nil of type %T", v)
   2552 	}
   2553 	if value == nil {
   2554 		return nil
   2555 	}
   2556 
   2557 	shape, ok := value.(map[string]interface{})
   2558 	if !ok {
   2559 		return fmt.Errorf("unexpected JSON type %v", value)
   2560 	}
   2561 
   2562 	var sv *types.InternalServerException
   2563 	if *v == nil {
   2564 		sv = &types.InternalServerException{}
   2565 	} else {
   2566 		sv = *v
   2567 	}
   2568 
   2569 	for key, value := range shape {
   2570 		switch key {
   2571 		case "error":
   2572 			if value != nil {
   2573 				jtv, ok := value.(string)
   2574 				if !ok {
   2575 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   2576 				}
   2577 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   2578 			}
   2579 
   2580 		case "message", "Message":
   2581 			if value != nil {
   2582 				jtv, ok := value.(string)
   2583 				if !ok {
   2584 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2585 				}
   2586 				sv.Message = ptr.String(jtv)
   2587 			}
   2588 
   2589 		default:
   2590 			_, _ = key, value
   2591 
   2592 		}
   2593 	}
   2594 	*v = sv
   2595 	return nil
   2596 }
   2597 
   2598 func awsRestjson1_deserializeDocumentPermissionStatementSummaries(v *[]types.PermissionStatementSummary, value interface{}) error {
   2599 	if v == nil {
   2600 		return fmt.Errorf("unexpected nil of type %T", v)
   2601 	}
   2602 	if value == nil {
   2603 		return nil
   2604 	}
   2605 
   2606 	shape, ok := value.([]interface{})
   2607 	if !ok {
   2608 		return fmt.Errorf("unexpected JSON type %v", value)
   2609 	}
   2610 
   2611 	var cv []types.PermissionStatementSummary
   2612 	if *v == nil {
   2613 		cv = []types.PermissionStatementSummary{}
   2614 	} else {
   2615 		cv = *v
   2616 	}
   2617 
   2618 	for _, value := range shape {
   2619 		var col types.PermissionStatementSummary
   2620 		destAddr := &col
   2621 		if err := awsRestjson1_deserializeDocumentPermissionStatementSummary(&destAddr, value); err != nil {
   2622 			return err
   2623 		}
   2624 		col = *destAddr
   2625 		cv = append(cv, col)
   2626 
   2627 	}
   2628 	*v = cv
   2629 	return nil
   2630 }
   2631 
   2632 func awsRestjson1_deserializeDocumentPermissionStatementSummary(v **types.PermissionStatementSummary, value interface{}) error {
   2633 	if v == nil {
   2634 		return fmt.Errorf("unexpected nil of type %T", v)
   2635 	}
   2636 	if value == nil {
   2637 		return nil
   2638 	}
   2639 
   2640 	shape, ok := value.(map[string]interface{})
   2641 	if !ok {
   2642 		return fmt.Errorf("unexpected JSON type %v", value)
   2643 	}
   2644 
   2645 	var sv *types.PermissionStatementSummary
   2646 	if *v == nil {
   2647 		sv = &types.PermissionStatementSummary{}
   2648 	} else {
   2649 		sv = *v
   2650 	}
   2651 
   2652 	for key, value := range shape {
   2653 		switch key {
   2654 		case "condition":
   2655 			if err := awsRestjson1_deserializeDocumentConditionBlock(&sv.Condition, value); err != nil {
   2656 				return err
   2657 			}
   2658 
   2659 		case "sid":
   2660 			if value != nil {
   2661 				jtv, ok := value.(string)
   2662 				if !ok {
   2663 					return fmt.Errorf("expected StatementId to be of type string, got %T instead", value)
   2664 				}
   2665 				sv.Sid = ptr.String(jtv)
   2666 			}
   2667 
   2668 		default:
   2669 			_, _ = key, value
   2670 
   2671 		}
   2672 	}
   2673 	*v = sv
   2674 	return nil
   2675 }
   2676 
   2677 func awsRestjson1_deserializeDocumentPolicyActions(v *[]string, value interface{}) error {
   2678 	if v == nil {
   2679 		return fmt.Errorf("unexpected nil of type %T", v)
   2680 	}
   2681 	if value == nil {
   2682 		return nil
   2683 	}
   2684 
   2685 	shape, ok := value.([]interface{})
   2686 	if !ok {
   2687 		return fmt.Errorf("unexpected JSON type %v", value)
   2688 	}
   2689 
   2690 	var cv []string
   2691 	if *v == nil {
   2692 		cv = []string{}
   2693 	} else {
   2694 		cv = *v
   2695 	}
   2696 
   2697 	for _, value := range shape {
   2698 		var col string
   2699 		if value != nil {
   2700 			jtv, ok := value.(string)
   2701 			if !ok {
   2702 				return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2703 			}
   2704 			col = jtv
   2705 		}
   2706 		cv = append(cv, col)
   2707 
   2708 	}
   2709 	*v = cv
   2710 	return nil
   2711 }
   2712 
   2713 func awsRestjson1_deserializeDocumentPolicyStatement(v **types.PolicyStatement, value interface{}) error {
   2714 	if v == nil {
   2715 		return fmt.Errorf("unexpected nil of type %T", v)
   2716 	}
   2717 	if value == nil {
   2718 		return nil
   2719 	}
   2720 
   2721 	shape, ok := value.(map[string]interface{})
   2722 	if !ok {
   2723 		return fmt.Errorf("unexpected JSON type %v", value)
   2724 	}
   2725 
   2726 	var sv *types.PolicyStatement
   2727 	if *v == nil {
   2728 		sv = &types.PolicyStatement{}
   2729 	} else {
   2730 		sv = *v
   2731 	}
   2732 
   2733 	for key, value := range shape {
   2734 		switch key {
   2735 		case "Action":
   2736 			if err := awsRestjson1_deserializeDocumentPolicyActions(&sv.Action, value); err != nil {
   2737 				return err
   2738 			}
   2739 
   2740 		case "Condition":
   2741 			if err := awsRestjson1_deserializeDocumentConditionBlock(&sv.Condition, value); err != nil {
   2742 				return err
   2743 			}
   2744 
   2745 		case "Effect":
   2746 			if value != nil {
   2747 				jtv, ok := value.(string)
   2748 				if !ok {
   2749 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2750 				}
   2751 				sv.Effect = ptr.String(jtv)
   2752 			}
   2753 
   2754 		case "Principal":
   2755 			if err := awsRestjson1_deserializeDocumentPrincipal(&sv.Principal, value); err != nil {
   2756 				return err
   2757 			}
   2758 
   2759 		case "Resource":
   2760 			if value != nil {
   2761 				jtv, ok := value.(string)
   2762 				if !ok {
   2763 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2764 				}
   2765 				sv.Resource = ptr.String(jtv)
   2766 			}
   2767 
   2768 		default:
   2769 			_, _ = key, value
   2770 
   2771 		}
   2772 	}
   2773 	*v = sv
   2774 	return nil
   2775 }
   2776 
   2777 func awsRestjson1_deserializeDocumentPolicyStatements(v *[]types.PolicyStatement, value interface{}) error {
   2778 	if v == nil {
   2779 		return fmt.Errorf("unexpected nil of type %T", v)
   2780 	}
   2781 	if value == nil {
   2782 		return nil
   2783 	}
   2784 
   2785 	shape, ok := value.([]interface{})
   2786 	if !ok {
   2787 		return fmt.Errorf("unexpected JSON type %v", value)
   2788 	}
   2789 
   2790 	var cv []types.PolicyStatement
   2791 	if *v == nil {
   2792 		cv = []types.PolicyStatement{}
   2793 	} else {
   2794 		cv = *v
   2795 	}
   2796 
   2797 	for _, value := range shape {
   2798 		var col types.PolicyStatement
   2799 		destAddr := &col
   2800 		if err := awsRestjson1_deserializeDocumentPolicyStatement(&destAddr, value); err != nil {
   2801 			return err
   2802 		}
   2803 		col = *destAddr
   2804 		cv = append(cv, col)
   2805 
   2806 	}
   2807 	*v = cv
   2808 	return nil
   2809 }
   2810 
   2811 func awsRestjson1_deserializeDocumentPrincipal(v *map[string]string, value interface{}) error {
   2812 	if v == nil {
   2813 		return fmt.Errorf("unexpected nil of type %T", v)
   2814 	}
   2815 	if value == nil {
   2816 		return nil
   2817 	}
   2818 
   2819 	shape, ok := value.(map[string]interface{})
   2820 	if !ok {
   2821 		return fmt.Errorf("unexpected JSON type %v", value)
   2822 	}
   2823 
   2824 	var mv map[string]string
   2825 	if *v == nil {
   2826 		mv = map[string]string{}
   2827 	} else {
   2828 		mv = *v
   2829 	}
   2830 
   2831 	for key, value := range shape {
   2832 		var parsedVal string
   2833 		if value != nil {
   2834 			jtv, ok := value.(string)
   2835 			if !ok {
   2836 				return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2837 			}
   2838 			parsedVal = jtv
   2839 		}
   2840 		mv[key] = parsedVal
   2841 
   2842 	}
   2843 	*v = mv
   2844 	return nil
   2845 }
   2846 
   2847 func awsRestjson1_deserializeDocumentResourceNotFoundException(v **types.ResourceNotFoundException, value interface{}) error {
   2848 	if v == nil {
   2849 		return fmt.Errorf("unexpected nil of type %T", v)
   2850 	}
   2851 	if value == nil {
   2852 		return nil
   2853 	}
   2854 
   2855 	shape, ok := value.(map[string]interface{})
   2856 	if !ok {
   2857 		return fmt.Errorf("unexpected JSON type %v", value)
   2858 	}
   2859 
   2860 	var sv *types.ResourceNotFoundException
   2861 	if *v == nil {
   2862 		sv = &types.ResourceNotFoundException{}
   2863 	} else {
   2864 		sv = *v
   2865 	}
   2866 
   2867 	for key, value := range shape {
   2868 		switch key {
   2869 		case "error":
   2870 			if value != nil {
   2871 				jtv, ok := value.(string)
   2872 				if !ok {
   2873 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   2874 				}
   2875 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   2876 			}
   2877 
   2878 		case "message", "Message":
   2879 			if value != nil {
   2880 				jtv, ok := value.(string)
   2881 				if !ok {
   2882 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2883 				}
   2884 				sv.Message = ptr.String(jtv)
   2885 			}
   2886 
   2887 		default:
   2888 			_, _ = key, value
   2889 
   2890 		}
   2891 	}
   2892 	*v = sv
   2893 	return nil
   2894 }
   2895 
   2896 func awsRestjson1_deserializeDocumentServiceQuotaExceededException(v **types.ServiceQuotaExceededException, value interface{}) error {
   2897 	if v == nil {
   2898 		return fmt.Errorf("unexpected nil of type %T", v)
   2899 	}
   2900 	if value == nil {
   2901 		return nil
   2902 	}
   2903 
   2904 	shape, ok := value.(map[string]interface{})
   2905 	if !ok {
   2906 		return fmt.Errorf("unexpected JSON type %v", value)
   2907 	}
   2908 
   2909 	var sv *types.ServiceQuotaExceededException
   2910 	if *v == nil {
   2911 		sv = &types.ServiceQuotaExceededException{}
   2912 	} else {
   2913 		sv = *v
   2914 	}
   2915 
   2916 	for key, value := range shape {
   2917 		switch key {
   2918 		case "error":
   2919 			if value != nil {
   2920 				jtv, ok := value.(string)
   2921 				if !ok {
   2922 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   2923 				}
   2924 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   2925 			}
   2926 
   2927 		case "message", "Message":
   2928 			if value != nil {
   2929 				jtv, ok := value.(string)
   2930 				if !ok {
   2931 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2932 				}
   2933 				sv.Message = ptr.String(jtv)
   2934 			}
   2935 
   2936 		default:
   2937 			_, _ = key, value
   2938 
   2939 		}
   2940 	}
   2941 	*v = sv
   2942 	return nil
   2943 }
   2944 
   2945 func awsRestjson1_deserializeDocumentSigninResourceBasedPolicy(v **types.SigninResourceBasedPolicy, value interface{}) error {
   2946 	if v == nil {
   2947 		return fmt.Errorf("unexpected nil of type %T", v)
   2948 	}
   2949 	if value == nil {
   2950 		return nil
   2951 	}
   2952 
   2953 	shape, ok := value.(map[string]interface{})
   2954 	if !ok {
   2955 		return fmt.Errorf("unexpected JSON type %v", value)
   2956 	}
   2957 
   2958 	var sv *types.SigninResourceBasedPolicy
   2959 	if *v == nil {
   2960 		sv = &types.SigninResourceBasedPolicy{}
   2961 	} else {
   2962 		sv = *v
   2963 	}
   2964 
   2965 	for key, value := range shape {
   2966 		switch key {
   2967 		case "Statement":
   2968 			if err := awsRestjson1_deserializeDocumentPolicyStatements(&sv.Statement, value); err != nil {
   2969 				return err
   2970 			}
   2971 
   2972 		case "Version":
   2973 			if value != nil {
   2974 				jtv, ok := value.(string)
   2975 				if !ok {
   2976 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   2977 				}
   2978 				sv.Version = ptr.String(jtv)
   2979 			}
   2980 
   2981 		default:
   2982 			_, _ = key, value
   2983 
   2984 		}
   2985 	}
   2986 	*v = sv
   2987 	return nil
   2988 }
   2989 
   2990 func awsRestjson1_deserializeDocumentTooManyRequestsError(v **types.TooManyRequestsError, value interface{}) error {
   2991 	if v == nil {
   2992 		return fmt.Errorf("unexpected nil of type %T", v)
   2993 	}
   2994 	if value == nil {
   2995 		return nil
   2996 	}
   2997 
   2998 	shape, ok := value.(map[string]interface{})
   2999 	if !ok {
   3000 		return fmt.Errorf("unexpected JSON type %v", value)
   3001 	}
   3002 
   3003 	var sv *types.TooManyRequestsError
   3004 	if *v == nil {
   3005 		sv = &types.TooManyRequestsError{}
   3006 	} else {
   3007 		sv = *v
   3008 	}
   3009 
   3010 	for key, value := range shape {
   3011 		switch key {
   3012 		case "error":
   3013 			if value != nil {
   3014 				jtv, ok := value.(string)
   3015 				if !ok {
   3016 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   3017 				}
   3018 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   3019 			}
   3020 
   3021 		case "message", "Message":
   3022 			if value != nil {
   3023 				jtv, ok := value.(string)
   3024 				if !ok {
   3025 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   3026 				}
   3027 				sv.Message = ptr.String(jtv)
   3028 			}
   3029 
   3030 		default:
   3031 			_, _ = key, value
   3032 
   3033 		}
   3034 	}
   3035 	*v = sv
   3036 	return nil
   3037 }
   3038 
   3039 func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationException, value interface{}) error {
   3040 	if v == nil {
   3041 		return fmt.Errorf("unexpected nil of type %T", v)
   3042 	}
   3043 	if value == nil {
   3044 		return nil
   3045 	}
   3046 
   3047 	shape, ok := value.(map[string]interface{})
   3048 	if !ok {
   3049 		return fmt.Errorf("unexpected JSON type %v", value)
   3050 	}
   3051 
   3052 	var sv *types.ValidationException
   3053 	if *v == nil {
   3054 		sv = &types.ValidationException{}
   3055 	} else {
   3056 		sv = *v
   3057 	}
   3058 
   3059 	for key, value := range shape {
   3060 		switch key {
   3061 		case "error":
   3062 			if value != nil {
   3063 				jtv, ok := value.(string)
   3064 				if !ok {
   3065 					return fmt.Errorf("expected OAuth2ErrorCode to be of type string, got %T instead", value)
   3066 				}
   3067 				sv.Error_ = types.OAuth2ErrorCode(jtv)
   3068 			}
   3069 
   3070 		case "message", "Message":
   3071 			if value != nil {
   3072 				jtv, ok := value.(string)
   3073 				if !ok {
   3074 					return fmt.Errorf("expected String to be of type string, got %T instead", value)
   3075 				}
   3076 				sv.Message = ptr.String(jtv)
   3077 			}
   3078 
   3079 		default:
   3080 			_, _ = key, value
   3081 
   3082 		}
   3083 	}
   3084 	*v = sv
   3085 	return nil
   3086 }