...

Source file src/github.com/aws/aws-sdk-go-v2/service/ssooidc/deserializers.go

Documentation: github.com/aws/aws-sdk-go-v2/service/ssooidc

     1  // Code generated by smithy-go-codegen DO NOT EDIT.
     2  
     3  package ssooidc
     4  
     5  import (
     6  	"bytes"
     7  	"context"
     8  	"encoding/json"
     9  	"fmt"
    10  	"github.com/aws/aws-sdk-go-v2/aws/protocol/restjson"
    11  	"github.com/aws/aws-sdk-go-v2/service/ssooidc/types"
    12  	smithy "github.com/aws/smithy-go"
    13  	smithyio "github.com/aws/smithy-go/io"
    14  	"github.com/aws/smithy-go/middleware"
    15  	"github.com/aws/smithy-go/ptr"
    16  	smithyhttp "github.com/aws/smithy-go/transport/http"
    17  	"io"
    18  	"strings"
    19  )
    20  
    21  type awsRestjson1_deserializeOpCreateToken struct {
    22  }
    23  
    24  func (*awsRestjson1_deserializeOpCreateToken) ID() string {
    25  	return "OperationDeserializer"
    26  }
    27  
    28  func (m *awsRestjson1_deserializeOpCreateToken) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
    29  	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
    30  ) {
    31  	out, metadata, err = next.HandleDeserialize(ctx, in)
    32  	if err != nil {
    33  		return out, metadata, err
    34  	}
    35  
    36  	response, ok := out.RawResponse.(*smithyhttp.Response)
    37  	if !ok {
    38  		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
    39  	}
    40  
    41  	if response.StatusCode < 200 || response.StatusCode >= 300 {
    42  		return out, metadata, awsRestjson1_deserializeOpErrorCreateToken(response, &metadata)
    43  	}
    44  	output := &CreateTokenOutput{}
    45  	out.Result = output
    46  
    47  	var buff [1024]byte
    48  	ringBuffer := smithyio.NewRingBuffer(buff[:])
    49  
    50  	body := io.TeeReader(response.Body, ringBuffer)
    51  
    52  	decoder := json.NewDecoder(body)
    53  	decoder.UseNumber()
    54  	var shape interface{}
    55  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
    56  		var snapshot bytes.Buffer
    57  		io.Copy(&snapshot, ringBuffer)
    58  		err = &smithy.DeserializationError{
    59  			Err:      fmt.Errorf("failed to decode response body, %w", err),
    60  			Snapshot: snapshot.Bytes(),
    61  		}
    62  		return out, metadata, err
    63  	}
    64  
    65  	err = awsRestjson1_deserializeOpDocumentCreateTokenOutput(&output, shape)
    66  	if err != nil {
    67  		var snapshot bytes.Buffer
    68  		io.Copy(&snapshot, ringBuffer)
    69  		return out, metadata, &smithy.DeserializationError{
    70  			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
    71  			Snapshot: snapshot.Bytes(),
    72  		}
    73  	}
    74  
    75  	return out, metadata, err
    76  }
    77  
    78  func awsRestjson1_deserializeOpErrorCreateToken(response *smithyhttp.Response, metadata *middleware.Metadata) error {
    79  	var errorBuffer bytes.Buffer
    80  	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
    81  		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
    82  	}
    83  	errorBody := bytes.NewReader(errorBuffer.Bytes())
    84  
    85  	errorCode := "UnknownError"
    86  	errorMessage := errorCode
    87  
    88  	headerCode := response.Header.Get("X-Amzn-ErrorType")
    89  	if len(headerCode) != 0 {
    90  		errorCode = restjson.SanitizeErrorCode(headerCode)
    91  	}
    92  
    93  	var buff [1024]byte
    94  	ringBuffer := smithyio.NewRingBuffer(buff[:])
    95  
    96  	body := io.TeeReader(errorBody, ringBuffer)
    97  	decoder := json.NewDecoder(body)
    98  	decoder.UseNumber()
    99  	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   100  	if err != nil {
   101  		var snapshot bytes.Buffer
   102  		io.Copy(&snapshot, ringBuffer)
   103  		err = &smithy.DeserializationError{
   104  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   105  			Snapshot: snapshot.Bytes(),
   106  		}
   107  		return err
   108  	}
   109  
   110  	errorBody.Seek(0, io.SeekStart)
   111  	if len(headerCode) == 0 && len(jsonCode) != 0 {
   112  		errorCode = restjson.SanitizeErrorCode(jsonCode)
   113  	}
   114  	if len(message) != 0 {
   115  		errorMessage = message
   116  	}
   117  
   118  	switch {
   119  	case strings.EqualFold("AccessDeniedException", errorCode):
   120  		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   121  
   122  	case strings.EqualFold("AuthorizationPendingException", errorCode):
   123  		return awsRestjson1_deserializeErrorAuthorizationPendingException(response, errorBody)
   124  
   125  	case strings.EqualFold("ExpiredTokenException", errorCode):
   126  		return awsRestjson1_deserializeErrorExpiredTokenException(response, errorBody)
   127  
   128  	case strings.EqualFold("InternalServerException", errorCode):
   129  		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   130  
   131  	case strings.EqualFold("InvalidClientException", errorCode):
   132  		return awsRestjson1_deserializeErrorInvalidClientException(response, errorBody)
   133  
   134  	case strings.EqualFold("InvalidGrantException", errorCode):
   135  		return awsRestjson1_deserializeErrorInvalidGrantException(response, errorBody)
   136  
   137  	case strings.EqualFold("InvalidRequestException", errorCode):
   138  		return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
   139  
   140  	case strings.EqualFold("InvalidScopeException", errorCode):
   141  		return awsRestjson1_deserializeErrorInvalidScopeException(response, errorBody)
   142  
   143  	case strings.EqualFold("SlowDownException", errorCode):
   144  		return awsRestjson1_deserializeErrorSlowDownException(response, errorBody)
   145  
   146  	case strings.EqualFold("UnauthorizedClientException", errorCode):
   147  		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
   148  
   149  	case strings.EqualFold("UnsupportedGrantTypeException", errorCode):
   150  		return awsRestjson1_deserializeErrorUnsupportedGrantTypeException(response, errorBody)
   151  
   152  	default:
   153  		genericError := &smithy.GenericAPIError{
   154  			Code:    errorCode,
   155  			Message: errorMessage,
   156  		}
   157  		return genericError
   158  
   159  	}
   160  }
   161  
   162  func awsRestjson1_deserializeOpDocumentCreateTokenOutput(v **CreateTokenOutput, value interface{}) error {
   163  	if v == nil {
   164  		return fmt.Errorf("unexpected nil of type %T", v)
   165  	}
   166  	if value == nil {
   167  		return nil
   168  	}
   169  
   170  	shape, ok := value.(map[string]interface{})
   171  	if !ok {
   172  		return fmt.Errorf("unexpected JSON type %v", value)
   173  	}
   174  
   175  	var sv *CreateTokenOutput
   176  	if *v == nil {
   177  		sv = &CreateTokenOutput{}
   178  	} else {
   179  		sv = *v
   180  	}
   181  
   182  	for key, value := range shape {
   183  		switch key {
   184  		case "accessToken":
   185  			if value != nil {
   186  				jtv, ok := value.(string)
   187  				if !ok {
   188  					return fmt.Errorf("expected AccessToken to be of type string, got %T instead", value)
   189  				}
   190  				sv.AccessToken = ptr.String(jtv)
   191  			}
   192  
   193  		case "expiresIn":
   194  			if value != nil {
   195  				jtv, ok := value.(json.Number)
   196  				if !ok {
   197  					return fmt.Errorf("expected ExpirationInSeconds to be json.Number, got %T instead", value)
   198  				}
   199  				i64, err := jtv.Int64()
   200  				if err != nil {
   201  					return err
   202  				}
   203  				sv.ExpiresIn = int32(i64)
   204  			}
   205  
   206  		case "idToken":
   207  			if value != nil {
   208  				jtv, ok := value.(string)
   209  				if !ok {
   210  					return fmt.Errorf("expected IdToken to be of type string, got %T instead", value)
   211  				}
   212  				sv.IdToken = ptr.String(jtv)
   213  			}
   214  
   215  		case "refreshToken":
   216  			if value != nil {
   217  				jtv, ok := value.(string)
   218  				if !ok {
   219  					return fmt.Errorf("expected RefreshToken to be of type string, got %T instead", value)
   220  				}
   221  				sv.RefreshToken = ptr.String(jtv)
   222  			}
   223  
   224  		case "tokenType":
   225  			if value != nil {
   226  				jtv, ok := value.(string)
   227  				if !ok {
   228  					return fmt.Errorf("expected TokenType to be of type string, got %T instead", value)
   229  				}
   230  				sv.TokenType = ptr.String(jtv)
   231  			}
   232  
   233  		default:
   234  			_, _ = key, value
   235  
   236  		}
   237  	}
   238  	*v = sv
   239  	return nil
   240  }
   241  
   242  type awsRestjson1_deserializeOpCreateTokenWithIAM struct {
   243  }
   244  
   245  func (*awsRestjson1_deserializeOpCreateTokenWithIAM) ID() string {
   246  	return "OperationDeserializer"
   247  }
   248  
   249  func (m *awsRestjson1_deserializeOpCreateTokenWithIAM) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   250  	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   251  ) {
   252  	out, metadata, err = next.HandleDeserialize(ctx, in)
   253  	if err != nil {
   254  		return out, metadata, err
   255  	}
   256  
   257  	response, ok := out.RawResponse.(*smithyhttp.Response)
   258  	if !ok {
   259  		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   260  	}
   261  
   262  	if response.StatusCode < 200 || response.StatusCode >= 300 {
   263  		return out, metadata, awsRestjson1_deserializeOpErrorCreateTokenWithIAM(response, &metadata)
   264  	}
   265  	output := &CreateTokenWithIAMOutput{}
   266  	out.Result = output
   267  
   268  	var buff [1024]byte
   269  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   270  
   271  	body := io.TeeReader(response.Body, ringBuffer)
   272  
   273  	decoder := json.NewDecoder(body)
   274  	decoder.UseNumber()
   275  	var shape interface{}
   276  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   277  		var snapshot bytes.Buffer
   278  		io.Copy(&snapshot, ringBuffer)
   279  		err = &smithy.DeserializationError{
   280  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   281  			Snapshot: snapshot.Bytes(),
   282  		}
   283  		return out, metadata, err
   284  	}
   285  
   286  	err = awsRestjson1_deserializeOpDocumentCreateTokenWithIAMOutput(&output, shape)
   287  	if err != nil {
   288  		var snapshot bytes.Buffer
   289  		io.Copy(&snapshot, ringBuffer)
   290  		return out, metadata, &smithy.DeserializationError{
   291  			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   292  			Snapshot: snapshot.Bytes(),
   293  		}
   294  	}
   295  
   296  	return out, metadata, err
   297  }
   298  
   299  func awsRestjson1_deserializeOpErrorCreateTokenWithIAM(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   300  	var errorBuffer bytes.Buffer
   301  	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   302  		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   303  	}
   304  	errorBody := bytes.NewReader(errorBuffer.Bytes())
   305  
   306  	errorCode := "UnknownError"
   307  	errorMessage := errorCode
   308  
   309  	headerCode := response.Header.Get("X-Amzn-ErrorType")
   310  	if len(headerCode) != 0 {
   311  		errorCode = restjson.SanitizeErrorCode(headerCode)
   312  	}
   313  
   314  	var buff [1024]byte
   315  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   316  
   317  	body := io.TeeReader(errorBody, ringBuffer)
   318  	decoder := json.NewDecoder(body)
   319  	decoder.UseNumber()
   320  	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   321  	if err != nil {
   322  		var snapshot bytes.Buffer
   323  		io.Copy(&snapshot, ringBuffer)
   324  		err = &smithy.DeserializationError{
   325  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   326  			Snapshot: snapshot.Bytes(),
   327  		}
   328  		return err
   329  	}
   330  
   331  	errorBody.Seek(0, io.SeekStart)
   332  	if len(headerCode) == 0 && len(jsonCode) != 0 {
   333  		errorCode = restjson.SanitizeErrorCode(jsonCode)
   334  	}
   335  	if len(message) != 0 {
   336  		errorMessage = message
   337  	}
   338  
   339  	switch {
   340  	case strings.EqualFold("AccessDeniedException", errorCode):
   341  		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
   342  
   343  	case strings.EqualFold("AuthorizationPendingException", errorCode):
   344  		return awsRestjson1_deserializeErrorAuthorizationPendingException(response, errorBody)
   345  
   346  	case strings.EqualFold("ExpiredTokenException", errorCode):
   347  		return awsRestjson1_deserializeErrorExpiredTokenException(response, errorBody)
   348  
   349  	case strings.EqualFold("InternalServerException", errorCode):
   350  		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   351  
   352  	case strings.EqualFold("InvalidClientException", errorCode):
   353  		return awsRestjson1_deserializeErrorInvalidClientException(response, errorBody)
   354  
   355  	case strings.EqualFold("InvalidGrantException", errorCode):
   356  		return awsRestjson1_deserializeErrorInvalidGrantException(response, errorBody)
   357  
   358  	case strings.EqualFold("InvalidRequestException", errorCode):
   359  		return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
   360  
   361  	case strings.EqualFold("InvalidRequestRegionException", errorCode):
   362  		return awsRestjson1_deserializeErrorInvalidRequestRegionException(response, errorBody)
   363  
   364  	case strings.EqualFold("InvalidScopeException", errorCode):
   365  		return awsRestjson1_deserializeErrorInvalidScopeException(response, errorBody)
   366  
   367  	case strings.EqualFold("SlowDownException", errorCode):
   368  		return awsRestjson1_deserializeErrorSlowDownException(response, errorBody)
   369  
   370  	case strings.EqualFold("UnauthorizedClientException", errorCode):
   371  		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
   372  
   373  	case strings.EqualFold("UnsupportedGrantTypeException", errorCode):
   374  		return awsRestjson1_deserializeErrorUnsupportedGrantTypeException(response, errorBody)
   375  
   376  	default:
   377  		genericError := &smithy.GenericAPIError{
   378  			Code:    errorCode,
   379  			Message: errorMessage,
   380  		}
   381  		return genericError
   382  
   383  	}
   384  }
   385  
   386  func awsRestjson1_deserializeOpDocumentCreateTokenWithIAMOutput(v **CreateTokenWithIAMOutput, value interface{}) error {
   387  	if v == nil {
   388  		return fmt.Errorf("unexpected nil of type %T", v)
   389  	}
   390  	if value == nil {
   391  		return nil
   392  	}
   393  
   394  	shape, ok := value.(map[string]interface{})
   395  	if !ok {
   396  		return fmt.Errorf("unexpected JSON type %v", value)
   397  	}
   398  
   399  	var sv *CreateTokenWithIAMOutput
   400  	if *v == nil {
   401  		sv = &CreateTokenWithIAMOutput{}
   402  	} else {
   403  		sv = *v
   404  	}
   405  
   406  	for key, value := range shape {
   407  		switch key {
   408  		case "accessToken":
   409  			if value != nil {
   410  				jtv, ok := value.(string)
   411  				if !ok {
   412  					return fmt.Errorf("expected AccessToken to be of type string, got %T instead", value)
   413  				}
   414  				sv.AccessToken = ptr.String(jtv)
   415  			}
   416  
   417  		case "expiresIn":
   418  			if value != nil {
   419  				jtv, ok := value.(json.Number)
   420  				if !ok {
   421  					return fmt.Errorf("expected ExpirationInSeconds to be json.Number, got %T instead", value)
   422  				}
   423  				i64, err := jtv.Int64()
   424  				if err != nil {
   425  					return err
   426  				}
   427  				sv.ExpiresIn = int32(i64)
   428  			}
   429  
   430  		case "idToken":
   431  			if value != nil {
   432  				jtv, ok := value.(string)
   433  				if !ok {
   434  					return fmt.Errorf("expected IdToken to be of type string, got %T instead", value)
   435  				}
   436  				sv.IdToken = ptr.String(jtv)
   437  			}
   438  
   439  		case "issuedTokenType":
   440  			if value != nil {
   441  				jtv, ok := value.(string)
   442  				if !ok {
   443  					return fmt.Errorf("expected TokenTypeURI to be of type string, got %T instead", value)
   444  				}
   445  				sv.IssuedTokenType = ptr.String(jtv)
   446  			}
   447  
   448  		case "refreshToken":
   449  			if value != nil {
   450  				jtv, ok := value.(string)
   451  				if !ok {
   452  					return fmt.Errorf("expected RefreshToken to be of type string, got %T instead", value)
   453  				}
   454  				sv.RefreshToken = ptr.String(jtv)
   455  			}
   456  
   457  		case "scope":
   458  			if err := awsRestjson1_deserializeDocumentScopes(&sv.Scope, value); err != nil {
   459  				return err
   460  			}
   461  
   462  		case "tokenType":
   463  			if value != nil {
   464  				jtv, ok := value.(string)
   465  				if !ok {
   466  					return fmt.Errorf("expected TokenType to be of type string, got %T instead", value)
   467  				}
   468  				sv.TokenType = ptr.String(jtv)
   469  			}
   470  
   471  		default:
   472  			_, _ = key, value
   473  
   474  		}
   475  	}
   476  	*v = sv
   477  	return nil
   478  }
   479  
   480  type awsRestjson1_deserializeOpRegisterClient struct {
   481  }
   482  
   483  func (*awsRestjson1_deserializeOpRegisterClient) ID() string {
   484  	return "OperationDeserializer"
   485  }
   486  
   487  func (m *awsRestjson1_deserializeOpRegisterClient) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   488  	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   489  ) {
   490  	out, metadata, err = next.HandleDeserialize(ctx, in)
   491  	if err != nil {
   492  		return out, metadata, err
   493  	}
   494  
   495  	response, ok := out.RawResponse.(*smithyhttp.Response)
   496  	if !ok {
   497  		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   498  	}
   499  
   500  	if response.StatusCode < 200 || response.StatusCode >= 300 {
   501  		return out, metadata, awsRestjson1_deserializeOpErrorRegisterClient(response, &metadata)
   502  	}
   503  	output := &RegisterClientOutput{}
   504  	out.Result = output
   505  
   506  	var buff [1024]byte
   507  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   508  
   509  	body := io.TeeReader(response.Body, ringBuffer)
   510  
   511  	decoder := json.NewDecoder(body)
   512  	decoder.UseNumber()
   513  	var shape interface{}
   514  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   515  		var snapshot bytes.Buffer
   516  		io.Copy(&snapshot, ringBuffer)
   517  		err = &smithy.DeserializationError{
   518  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   519  			Snapshot: snapshot.Bytes(),
   520  		}
   521  		return out, metadata, err
   522  	}
   523  
   524  	err = awsRestjson1_deserializeOpDocumentRegisterClientOutput(&output, shape)
   525  	if err != nil {
   526  		var snapshot bytes.Buffer
   527  		io.Copy(&snapshot, ringBuffer)
   528  		return out, metadata, &smithy.DeserializationError{
   529  			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   530  			Snapshot: snapshot.Bytes(),
   531  		}
   532  	}
   533  
   534  	return out, metadata, err
   535  }
   536  
   537  func awsRestjson1_deserializeOpErrorRegisterClient(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   538  	var errorBuffer bytes.Buffer
   539  	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   540  		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   541  	}
   542  	errorBody := bytes.NewReader(errorBuffer.Bytes())
   543  
   544  	errorCode := "UnknownError"
   545  	errorMessage := errorCode
   546  
   547  	headerCode := response.Header.Get("X-Amzn-ErrorType")
   548  	if len(headerCode) != 0 {
   549  		errorCode = restjson.SanitizeErrorCode(headerCode)
   550  	}
   551  
   552  	var buff [1024]byte
   553  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   554  
   555  	body := io.TeeReader(errorBody, ringBuffer)
   556  	decoder := json.NewDecoder(body)
   557  	decoder.UseNumber()
   558  	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   559  	if err != nil {
   560  		var snapshot bytes.Buffer
   561  		io.Copy(&snapshot, ringBuffer)
   562  		err = &smithy.DeserializationError{
   563  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   564  			Snapshot: snapshot.Bytes(),
   565  		}
   566  		return err
   567  	}
   568  
   569  	errorBody.Seek(0, io.SeekStart)
   570  	if len(headerCode) == 0 && len(jsonCode) != 0 {
   571  		errorCode = restjson.SanitizeErrorCode(jsonCode)
   572  	}
   573  	if len(message) != 0 {
   574  		errorMessage = message
   575  	}
   576  
   577  	switch {
   578  	case strings.EqualFold("InternalServerException", errorCode):
   579  		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   580  
   581  	case strings.EqualFold("InvalidClientMetadataException", errorCode):
   582  		return awsRestjson1_deserializeErrorInvalidClientMetadataException(response, errorBody)
   583  
   584  	case strings.EqualFold("InvalidRequestException", errorCode):
   585  		return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
   586  
   587  	case strings.EqualFold("InvalidScopeException", errorCode):
   588  		return awsRestjson1_deserializeErrorInvalidScopeException(response, errorBody)
   589  
   590  	default:
   591  		genericError := &smithy.GenericAPIError{
   592  			Code:    errorCode,
   593  			Message: errorMessage,
   594  		}
   595  		return genericError
   596  
   597  	}
   598  }
   599  
   600  func awsRestjson1_deserializeOpDocumentRegisterClientOutput(v **RegisterClientOutput, value interface{}) error {
   601  	if v == nil {
   602  		return fmt.Errorf("unexpected nil of type %T", v)
   603  	}
   604  	if value == nil {
   605  		return nil
   606  	}
   607  
   608  	shape, ok := value.(map[string]interface{})
   609  	if !ok {
   610  		return fmt.Errorf("unexpected JSON type %v", value)
   611  	}
   612  
   613  	var sv *RegisterClientOutput
   614  	if *v == nil {
   615  		sv = &RegisterClientOutput{}
   616  	} else {
   617  		sv = *v
   618  	}
   619  
   620  	for key, value := range shape {
   621  		switch key {
   622  		case "authorizationEndpoint":
   623  			if value != nil {
   624  				jtv, ok := value.(string)
   625  				if !ok {
   626  					return fmt.Errorf("expected URI to be of type string, got %T instead", value)
   627  				}
   628  				sv.AuthorizationEndpoint = ptr.String(jtv)
   629  			}
   630  
   631  		case "clientId":
   632  			if value != nil {
   633  				jtv, ok := value.(string)
   634  				if !ok {
   635  					return fmt.Errorf("expected ClientId to be of type string, got %T instead", value)
   636  				}
   637  				sv.ClientId = ptr.String(jtv)
   638  			}
   639  
   640  		case "clientIdIssuedAt":
   641  			if value != nil {
   642  				jtv, ok := value.(json.Number)
   643  				if !ok {
   644  					return fmt.Errorf("expected LongTimeStampType to be json.Number, got %T instead", value)
   645  				}
   646  				i64, err := jtv.Int64()
   647  				if err != nil {
   648  					return err
   649  				}
   650  				sv.ClientIdIssuedAt = i64
   651  			}
   652  
   653  		case "clientSecret":
   654  			if value != nil {
   655  				jtv, ok := value.(string)
   656  				if !ok {
   657  					return fmt.Errorf("expected ClientSecret to be of type string, got %T instead", value)
   658  				}
   659  				sv.ClientSecret = ptr.String(jtv)
   660  			}
   661  
   662  		case "clientSecretExpiresAt":
   663  			if value != nil {
   664  				jtv, ok := value.(json.Number)
   665  				if !ok {
   666  					return fmt.Errorf("expected LongTimeStampType to be json.Number, got %T instead", value)
   667  				}
   668  				i64, err := jtv.Int64()
   669  				if err != nil {
   670  					return err
   671  				}
   672  				sv.ClientSecretExpiresAt = i64
   673  			}
   674  
   675  		case "tokenEndpoint":
   676  			if value != nil {
   677  				jtv, ok := value.(string)
   678  				if !ok {
   679  					return fmt.Errorf("expected URI to be of type string, got %T instead", value)
   680  				}
   681  				sv.TokenEndpoint = ptr.String(jtv)
   682  			}
   683  
   684  		default:
   685  			_, _ = key, value
   686  
   687  		}
   688  	}
   689  	*v = sv
   690  	return nil
   691  }
   692  
   693  type awsRestjson1_deserializeOpStartDeviceAuthorization struct {
   694  }
   695  
   696  func (*awsRestjson1_deserializeOpStartDeviceAuthorization) ID() string {
   697  	return "OperationDeserializer"
   698  }
   699  
   700  func (m *awsRestjson1_deserializeOpStartDeviceAuthorization) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
   701  	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
   702  ) {
   703  	out, metadata, err = next.HandleDeserialize(ctx, in)
   704  	if err != nil {
   705  		return out, metadata, err
   706  	}
   707  
   708  	response, ok := out.RawResponse.(*smithyhttp.Response)
   709  	if !ok {
   710  		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
   711  	}
   712  
   713  	if response.StatusCode < 200 || response.StatusCode >= 300 {
   714  		return out, metadata, awsRestjson1_deserializeOpErrorStartDeviceAuthorization(response, &metadata)
   715  	}
   716  	output := &StartDeviceAuthorizationOutput{}
   717  	out.Result = output
   718  
   719  	var buff [1024]byte
   720  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   721  
   722  	body := io.TeeReader(response.Body, ringBuffer)
   723  
   724  	decoder := json.NewDecoder(body)
   725  	decoder.UseNumber()
   726  	var shape interface{}
   727  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   728  		var snapshot bytes.Buffer
   729  		io.Copy(&snapshot, ringBuffer)
   730  		err = &smithy.DeserializationError{
   731  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   732  			Snapshot: snapshot.Bytes(),
   733  		}
   734  		return out, metadata, err
   735  	}
   736  
   737  	err = awsRestjson1_deserializeOpDocumentStartDeviceAuthorizationOutput(&output, shape)
   738  	if err != nil {
   739  		var snapshot bytes.Buffer
   740  		io.Copy(&snapshot, ringBuffer)
   741  		return out, metadata, &smithy.DeserializationError{
   742  			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
   743  			Snapshot: snapshot.Bytes(),
   744  		}
   745  	}
   746  
   747  	return out, metadata, err
   748  }
   749  
   750  func awsRestjson1_deserializeOpErrorStartDeviceAuthorization(response *smithyhttp.Response, metadata *middleware.Metadata) error {
   751  	var errorBuffer bytes.Buffer
   752  	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
   753  		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
   754  	}
   755  	errorBody := bytes.NewReader(errorBuffer.Bytes())
   756  
   757  	errorCode := "UnknownError"
   758  	errorMessage := errorCode
   759  
   760  	headerCode := response.Header.Get("X-Amzn-ErrorType")
   761  	if len(headerCode) != 0 {
   762  		errorCode = restjson.SanitizeErrorCode(headerCode)
   763  	}
   764  
   765  	var buff [1024]byte
   766  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   767  
   768  	body := io.TeeReader(errorBody, ringBuffer)
   769  	decoder := json.NewDecoder(body)
   770  	decoder.UseNumber()
   771  	jsonCode, message, err := restjson.GetErrorInfo(decoder)
   772  	if err != nil {
   773  		var snapshot bytes.Buffer
   774  		io.Copy(&snapshot, ringBuffer)
   775  		err = &smithy.DeserializationError{
   776  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   777  			Snapshot: snapshot.Bytes(),
   778  		}
   779  		return err
   780  	}
   781  
   782  	errorBody.Seek(0, io.SeekStart)
   783  	if len(headerCode) == 0 && len(jsonCode) != 0 {
   784  		errorCode = restjson.SanitizeErrorCode(jsonCode)
   785  	}
   786  	if len(message) != 0 {
   787  		errorMessage = message
   788  	}
   789  
   790  	switch {
   791  	case strings.EqualFold("InternalServerException", errorCode):
   792  		return awsRestjson1_deserializeErrorInternalServerException(response, errorBody)
   793  
   794  	case strings.EqualFold("InvalidClientException", errorCode):
   795  		return awsRestjson1_deserializeErrorInvalidClientException(response, errorBody)
   796  
   797  	case strings.EqualFold("InvalidRequestException", errorCode):
   798  		return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody)
   799  
   800  	case strings.EqualFold("SlowDownException", errorCode):
   801  		return awsRestjson1_deserializeErrorSlowDownException(response, errorBody)
   802  
   803  	case strings.EqualFold("UnauthorizedClientException", errorCode):
   804  		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
   805  
   806  	default:
   807  		genericError := &smithy.GenericAPIError{
   808  			Code:    errorCode,
   809  			Message: errorMessage,
   810  		}
   811  		return genericError
   812  
   813  	}
   814  }
   815  
   816  func awsRestjson1_deserializeOpDocumentStartDeviceAuthorizationOutput(v **StartDeviceAuthorizationOutput, value interface{}) error {
   817  	if v == nil {
   818  		return fmt.Errorf("unexpected nil of type %T", v)
   819  	}
   820  	if value == nil {
   821  		return nil
   822  	}
   823  
   824  	shape, ok := value.(map[string]interface{})
   825  	if !ok {
   826  		return fmt.Errorf("unexpected JSON type %v", value)
   827  	}
   828  
   829  	var sv *StartDeviceAuthorizationOutput
   830  	if *v == nil {
   831  		sv = &StartDeviceAuthorizationOutput{}
   832  	} else {
   833  		sv = *v
   834  	}
   835  
   836  	for key, value := range shape {
   837  		switch key {
   838  		case "deviceCode":
   839  			if value != nil {
   840  				jtv, ok := value.(string)
   841  				if !ok {
   842  					return fmt.Errorf("expected DeviceCode to be of type string, got %T instead", value)
   843  				}
   844  				sv.DeviceCode = ptr.String(jtv)
   845  			}
   846  
   847  		case "expiresIn":
   848  			if value != nil {
   849  				jtv, ok := value.(json.Number)
   850  				if !ok {
   851  					return fmt.Errorf("expected ExpirationInSeconds to be json.Number, got %T instead", value)
   852  				}
   853  				i64, err := jtv.Int64()
   854  				if err != nil {
   855  					return err
   856  				}
   857  				sv.ExpiresIn = int32(i64)
   858  			}
   859  
   860  		case "interval":
   861  			if value != nil {
   862  				jtv, ok := value.(json.Number)
   863  				if !ok {
   864  					return fmt.Errorf("expected IntervalInSeconds to be json.Number, got %T instead", value)
   865  				}
   866  				i64, err := jtv.Int64()
   867  				if err != nil {
   868  					return err
   869  				}
   870  				sv.Interval = int32(i64)
   871  			}
   872  
   873  		case "userCode":
   874  			if value != nil {
   875  				jtv, ok := value.(string)
   876  				if !ok {
   877  					return fmt.Errorf("expected UserCode to be of type string, got %T instead", value)
   878  				}
   879  				sv.UserCode = ptr.String(jtv)
   880  			}
   881  
   882  		case "verificationUri":
   883  			if value != nil {
   884  				jtv, ok := value.(string)
   885  				if !ok {
   886  					return fmt.Errorf("expected URI to be of type string, got %T instead", value)
   887  				}
   888  				sv.VerificationUri = ptr.String(jtv)
   889  			}
   890  
   891  		case "verificationUriComplete":
   892  			if value != nil {
   893  				jtv, ok := value.(string)
   894  				if !ok {
   895  					return fmt.Errorf("expected URI to be of type string, got %T instead", value)
   896  				}
   897  				sv.VerificationUriComplete = ptr.String(jtv)
   898  			}
   899  
   900  		default:
   901  			_, _ = key, value
   902  
   903  		}
   904  	}
   905  	*v = sv
   906  	return nil
   907  }
   908  
   909  func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   910  	output := &types.AccessDeniedException{}
   911  	var buff [1024]byte
   912  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   913  
   914  	body := io.TeeReader(errorBody, ringBuffer)
   915  	decoder := json.NewDecoder(body)
   916  	decoder.UseNumber()
   917  	var shape interface{}
   918  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   919  		var snapshot bytes.Buffer
   920  		io.Copy(&snapshot, ringBuffer)
   921  		err = &smithy.DeserializationError{
   922  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   923  			Snapshot: snapshot.Bytes(),
   924  		}
   925  		return err
   926  	}
   927  
   928  	err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape)
   929  
   930  	if err != nil {
   931  		var snapshot bytes.Buffer
   932  		io.Copy(&snapshot, ringBuffer)
   933  		err = &smithy.DeserializationError{
   934  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   935  			Snapshot: snapshot.Bytes(),
   936  		}
   937  		return err
   938  	}
   939  
   940  	errorBody.Seek(0, io.SeekStart)
   941  
   942  	return output
   943  }
   944  
   945  func awsRestjson1_deserializeErrorAuthorizationPendingException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   946  	output := &types.AuthorizationPendingException{}
   947  	var buff [1024]byte
   948  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   949  
   950  	body := io.TeeReader(errorBody, ringBuffer)
   951  	decoder := json.NewDecoder(body)
   952  	decoder.UseNumber()
   953  	var shape interface{}
   954  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   955  		var snapshot bytes.Buffer
   956  		io.Copy(&snapshot, ringBuffer)
   957  		err = &smithy.DeserializationError{
   958  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   959  			Snapshot: snapshot.Bytes(),
   960  		}
   961  		return err
   962  	}
   963  
   964  	err := awsRestjson1_deserializeDocumentAuthorizationPendingException(&output, shape)
   965  
   966  	if err != nil {
   967  		var snapshot bytes.Buffer
   968  		io.Copy(&snapshot, ringBuffer)
   969  		err = &smithy.DeserializationError{
   970  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   971  			Snapshot: snapshot.Bytes(),
   972  		}
   973  		return err
   974  	}
   975  
   976  	errorBody.Seek(0, io.SeekStart)
   977  
   978  	return output
   979  }
   980  
   981  func awsRestjson1_deserializeErrorExpiredTokenException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
   982  	output := &types.ExpiredTokenException{}
   983  	var buff [1024]byte
   984  	ringBuffer := smithyio.NewRingBuffer(buff[:])
   985  
   986  	body := io.TeeReader(errorBody, ringBuffer)
   987  	decoder := json.NewDecoder(body)
   988  	decoder.UseNumber()
   989  	var shape interface{}
   990  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
   991  		var snapshot bytes.Buffer
   992  		io.Copy(&snapshot, ringBuffer)
   993  		err = &smithy.DeserializationError{
   994  			Err:      fmt.Errorf("failed to decode response body, %w", err),
   995  			Snapshot: snapshot.Bytes(),
   996  		}
   997  		return err
   998  	}
   999  
  1000  	err := awsRestjson1_deserializeDocumentExpiredTokenException(&output, shape)
  1001  
  1002  	if err != nil {
  1003  		var snapshot bytes.Buffer
  1004  		io.Copy(&snapshot, ringBuffer)
  1005  		err = &smithy.DeserializationError{
  1006  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1007  			Snapshot: snapshot.Bytes(),
  1008  		}
  1009  		return err
  1010  	}
  1011  
  1012  	errorBody.Seek(0, io.SeekStart)
  1013  
  1014  	return output
  1015  }
  1016  
  1017  func awsRestjson1_deserializeErrorInternalServerException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1018  	output := &types.InternalServerException{}
  1019  	var buff [1024]byte
  1020  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1021  
  1022  	body := io.TeeReader(errorBody, ringBuffer)
  1023  	decoder := json.NewDecoder(body)
  1024  	decoder.UseNumber()
  1025  	var shape interface{}
  1026  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1027  		var snapshot bytes.Buffer
  1028  		io.Copy(&snapshot, ringBuffer)
  1029  		err = &smithy.DeserializationError{
  1030  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1031  			Snapshot: snapshot.Bytes(),
  1032  		}
  1033  		return err
  1034  	}
  1035  
  1036  	err := awsRestjson1_deserializeDocumentInternalServerException(&output, shape)
  1037  
  1038  	if err != nil {
  1039  		var snapshot bytes.Buffer
  1040  		io.Copy(&snapshot, ringBuffer)
  1041  		err = &smithy.DeserializationError{
  1042  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1043  			Snapshot: snapshot.Bytes(),
  1044  		}
  1045  		return err
  1046  	}
  1047  
  1048  	errorBody.Seek(0, io.SeekStart)
  1049  
  1050  	return output
  1051  }
  1052  
  1053  func awsRestjson1_deserializeErrorInvalidClientException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1054  	output := &types.InvalidClientException{}
  1055  	var buff [1024]byte
  1056  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1057  
  1058  	body := io.TeeReader(errorBody, ringBuffer)
  1059  	decoder := json.NewDecoder(body)
  1060  	decoder.UseNumber()
  1061  	var shape interface{}
  1062  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1063  		var snapshot bytes.Buffer
  1064  		io.Copy(&snapshot, ringBuffer)
  1065  		err = &smithy.DeserializationError{
  1066  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1067  			Snapshot: snapshot.Bytes(),
  1068  		}
  1069  		return err
  1070  	}
  1071  
  1072  	err := awsRestjson1_deserializeDocumentInvalidClientException(&output, shape)
  1073  
  1074  	if err != nil {
  1075  		var snapshot bytes.Buffer
  1076  		io.Copy(&snapshot, ringBuffer)
  1077  		err = &smithy.DeserializationError{
  1078  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1079  			Snapshot: snapshot.Bytes(),
  1080  		}
  1081  		return err
  1082  	}
  1083  
  1084  	errorBody.Seek(0, io.SeekStart)
  1085  
  1086  	return output
  1087  }
  1088  
  1089  func awsRestjson1_deserializeErrorInvalidClientMetadataException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1090  	output := &types.InvalidClientMetadataException{}
  1091  	var buff [1024]byte
  1092  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1093  
  1094  	body := io.TeeReader(errorBody, ringBuffer)
  1095  	decoder := json.NewDecoder(body)
  1096  	decoder.UseNumber()
  1097  	var shape interface{}
  1098  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1099  		var snapshot bytes.Buffer
  1100  		io.Copy(&snapshot, ringBuffer)
  1101  		err = &smithy.DeserializationError{
  1102  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1103  			Snapshot: snapshot.Bytes(),
  1104  		}
  1105  		return err
  1106  	}
  1107  
  1108  	err := awsRestjson1_deserializeDocumentInvalidClientMetadataException(&output, shape)
  1109  
  1110  	if err != nil {
  1111  		var snapshot bytes.Buffer
  1112  		io.Copy(&snapshot, ringBuffer)
  1113  		err = &smithy.DeserializationError{
  1114  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1115  			Snapshot: snapshot.Bytes(),
  1116  		}
  1117  		return err
  1118  	}
  1119  
  1120  	errorBody.Seek(0, io.SeekStart)
  1121  
  1122  	return output
  1123  }
  1124  
  1125  func awsRestjson1_deserializeErrorInvalidGrantException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1126  	output := &types.InvalidGrantException{}
  1127  	var buff [1024]byte
  1128  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1129  
  1130  	body := io.TeeReader(errorBody, ringBuffer)
  1131  	decoder := json.NewDecoder(body)
  1132  	decoder.UseNumber()
  1133  	var shape interface{}
  1134  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1135  		var snapshot bytes.Buffer
  1136  		io.Copy(&snapshot, ringBuffer)
  1137  		err = &smithy.DeserializationError{
  1138  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1139  			Snapshot: snapshot.Bytes(),
  1140  		}
  1141  		return err
  1142  	}
  1143  
  1144  	err := awsRestjson1_deserializeDocumentInvalidGrantException(&output, shape)
  1145  
  1146  	if err != nil {
  1147  		var snapshot bytes.Buffer
  1148  		io.Copy(&snapshot, ringBuffer)
  1149  		err = &smithy.DeserializationError{
  1150  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1151  			Snapshot: snapshot.Bytes(),
  1152  		}
  1153  		return err
  1154  	}
  1155  
  1156  	errorBody.Seek(0, io.SeekStart)
  1157  
  1158  	return output
  1159  }
  1160  
  1161  func awsRestjson1_deserializeErrorInvalidRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1162  	output := &types.InvalidRequestException{}
  1163  	var buff [1024]byte
  1164  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1165  
  1166  	body := io.TeeReader(errorBody, ringBuffer)
  1167  	decoder := json.NewDecoder(body)
  1168  	decoder.UseNumber()
  1169  	var shape interface{}
  1170  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1171  		var snapshot bytes.Buffer
  1172  		io.Copy(&snapshot, ringBuffer)
  1173  		err = &smithy.DeserializationError{
  1174  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1175  			Snapshot: snapshot.Bytes(),
  1176  		}
  1177  		return err
  1178  	}
  1179  
  1180  	err := awsRestjson1_deserializeDocumentInvalidRequestException(&output, shape)
  1181  
  1182  	if err != nil {
  1183  		var snapshot bytes.Buffer
  1184  		io.Copy(&snapshot, ringBuffer)
  1185  		err = &smithy.DeserializationError{
  1186  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1187  			Snapshot: snapshot.Bytes(),
  1188  		}
  1189  		return err
  1190  	}
  1191  
  1192  	errorBody.Seek(0, io.SeekStart)
  1193  
  1194  	return output
  1195  }
  1196  
  1197  func awsRestjson1_deserializeErrorInvalidRequestRegionException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1198  	output := &types.InvalidRequestRegionException{}
  1199  	var buff [1024]byte
  1200  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1201  
  1202  	body := io.TeeReader(errorBody, ringBuffer)
  1203  	decoder := json.NewDecoder(body)
  1204  	decoder.UseNumber()
  1205  	var shape interface{}
  1206  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1207  		var snapshot bytes.Buffer
  1208  		io.Copy(&snapshot, ringBuffer)
  1209  		err = &smithy.DeserializationError{
  1210  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1211  			Snapshot: snapshot.Bytes(),
  1212  		}
  1213  		return err
  1214  	}
  1215  
  1216  	err := awsRestjson1_deserializeDocumentInvalidRequestRegionException(&output, shape)
  1217  
  1218  	if err != nil {
  1219  		var snapshot bytes.Buffer
  1220  		io.Copy(&snapshot, ringBuffer)
  1221  		err = &smithy.DeserializationError{
  1222  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1223  			Snapshot: snapshot.Bytes(),
  1224  		}
  1225  		return err
  1226  	}
  1227  
  1228  	errorBody.Seek(0, io.SeekStart)
  1229  
  1230  	return output
  1231  }
  1232  
  1233  func awsRestjson1_deserializeErrorInvalidScopeException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1234  	output := &types.InvalidScopeException{}
  1235  	var buff [1024]byte
  1236  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1237  
  1238  	body := io.TeeReader(errorBody, ringBuffer)
  1239  	decoder := json.NewDecoder(body)
  1240  	decoder.UseNumber()
  1241  	var shape interface{}
  1242  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1243  		var snapshot bytes.Buffer
  1244  		io.Copy(&snapshot, ringBuffer)
  1245  		err = &smithy.DeserializationError{
  1246  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1247  			Snapshot: snapshot.Bytes(),
  1248  		}
  1249  		return err
  1250  	}
  1251  
  1252  	err := awsRestjson1_deserializeDocumentInvalidScopeException(&output, shape)
  1253  
  1254  	if err != nil {
  1255  		var snapshot bytes.Buffer
  1256  		io.Copy(&snapshot, ringBuffer)
  1257  		err = &smithy.DeserializationError{
  1258  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1259  			Snapshot: snapshot.Bytes(),
  1260  		}
  1261  		return err
  1262  	}
  1263  
  1264  	errorBody.Seek(0, io.SeekStart)
  1265  
  1266  	return output
  1267  }
  1268  
  1269  func awsRestjson1_deserializeErrorSlowDownException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1270  	output := &types.SlowDownException{}
  1271  	var buff [1024]byte
  1272  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1273  
  1274  	body := io.TeeReader(errorBody, ringBuffer)
  1275  	decoder := json.NewDecoder(body)
  1276  	decoder.UseNumber()
  1277  	var shape interface{}
  1278  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1279  		var snapshot bytes.Buffer
  1280  		io.Copy(&snapshot, ringBuffer)
  1281  		err = &smithy.DeserializationError{
  1282  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1283  			Snapshot: snapshot.Bytes(),
  1284  		}
  1285  		return err
  1286  	}
  1287  
  1288  	err := awsRestjson1_deserializeDocumentSlowDownException(&output, shape)
  1289  
  1290  	if err != nil {
  1291  		var snapshot bytes.Buffer
  1292  		io.Copy(&snapshot, ringBuffer)
  1293  		err = &smithy.DeserializationError{
  1294  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1295  			Snapshot: snapshot.Bytes(),
  1296  		}
  1297  		return err
  1298  	}
  1299  
  1300  	errorBody.Seek(0, io.SeekStart)
  1301  
  1302  	return output
  1303  }
  1304  
  1305  func awsRestjson1_deserializeErrorUnauthorizedClientException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1306  	output := &types.UnauthorizedClientException{}
  1307  	var buff [1024]byte
  1308  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1309  
  1310  	body := io.TeeReader(errorBody, ringBuffer)
  1311  	decoder := json.NewDecoder(body)
  1312  	decoder.UseNumber()
  1313  	var shape interface{}
  1314  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1315  		var snapshot bytes.Buffer
  1316  		io.Copy(&snapshot, ringBuffer)
  1317  		err = &smithy.DeserializationError{
  1318  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1319  			Snapshot: snapshot.Bytes(),
  1320  		}
  1321  		return err
  1322  	}
  1323  
  1324  	err := awsRestjson1_deserializeDocumentUnauthorizedClientException(&output, shape)
  1325  
  1326  	if err != nil {
  1327  		var snapshot bytes.Buffer
  1328  		io.Copy(&snapshot, ringBuffer)
  1329  		err = &smithy.DeserializationError{
  1330  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1331  			Snapshot: snapshot.Bytes(),
  1332  		}
  1333  		return err
  1334  	}
  1335  
  1336  	errorBody.Seek(0, io.SeekStart)
  1337  
  1338  	return output
  1339  }
  1340  
  1341  func awsRestjson1_deserializeErrorUnsupportedGrantTypeException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
  1342  	output := &types.UnsupportedGrantTypeException{}
  1343  	var buff [1024]byte
  1344  	ringBuffer := smithyio.NewRingBuffer(buff[:])
  1345  
  1346  	body := io.TeeReader(errorBody, ringBuffer)
  1347  	decoder := json.NewDecoder(body)
  1348  	decoder.UseNumber()
  1349  	var shape interface{}
  1350  	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
  1351  		var snapshot bytes.Buffer
  1352  		io.Copy(&snapshot, ringBuffer)
  1353  		err = &smithy.DeserializationError{
  1354  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1355  			Snapshot: snapshot.Bytes(),
  1356  		}
  1357  		return err
  1358  	}
  1359  
  1360  	err := awsRestjson1_deserializeDocumentUnsupportedGrantTypeException(&output, shape)
  1361  
  1362  	if err != nil {
  1363  		var snapshot bytes.Buffer
  1364  		io.Copy(&snapshot, ringBuffer)
  1365  		err = &smithy.DeserializationError{
  1366  			Err:      fmt.Errorf("failed to decode response body, %w", err),
  1367  			Snapshot: snapshot.Bytes(),
  1368  		}
  1369  		return err
  1370  	}
  1371  
  1372  	errorBody.Seek(0, io.SeekStart)
  1373  
  1374  	return output
  1375  }
  1376  
  1377  func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error {
  1378  	if v == nil {
  1379  		return fmt.Errorf("unexpected nil of type %T", v)
  1380  	}
  1381  	if value == nil {
  1382  		return nil
  1383  	}
  1384  
  1385  	shape, ok := value.(map[string]interface{})
  1386  	if !ok {
  1387  		return fmt.Errorf("unexpected JSON type %v", value)
  1388  	}
  1389  
  1390  	var sv *types.AccessDeniedException
  1391  	if *v == nil {
  1392  		sv = &types.AccessDeniedException{}
  1393  	} else {
  1394  		sv = *v
  1395  	}
  1396  
  1397  	for key, value := range shape {
  1398  		switch key {
  1399  		case "error":
  1400  			if value != nil {
  1401  				jtv, ok := value.(string)
  1402  				if !ok {
  1403  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1404  				}
  1405  				sv.Error_ = ptr.String(jtv)
  1406  			}
  1407  
  1408  		case "error_description":
  1409  			if value != nil {
  1410  				jtv, ok := value.(string)
  1411  				if !ok {
  1412  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1413  				}
  1414  				sv.Error_description = ptr.String(jtv)
  1415  			}
  1416  
  1417  		default:
  1418  			_, _ = key, value
  1419  
  1420  		}
  1421  	}
  1422  	*v = sv
  1423  	return nil
  1424  }
  1425  
  1426  func awsRestjson1_deserializeDocumentAuthorizationPendingException(v **types.AuthorizationPendingException, value interface{}) error {
  1427  	if v == nil {
  1428  		return fmt.Errorf("unexpected nil of type %T", v)
  1429  	}
  1430  	if value == nil {
  1431  		return nil
  1432  	}
  1433  
  1434  	shape, ok := value.(map[string]interface{})
  1435  	if !ok {
  1436  		return fmt.Errorf("unexpected JSON type %v", value)
  1437  	}
  1438  
  1439  	var sv *types.AuthorizationPendingException
  1440  	if *v == nil {
  1441  		sv = &types.AuthorizationPendingException{}
  1442  	} else {
  1443  		sv = *v
  1444  	}
  1445  
  1446  	for key, value := range shape {
  1447  		switch key {
  1448  		case "error":
  1449  			if value != nil {
  1450  				jtv, ok := value.(string)
  1451  				if !ok {
  1452  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1453  				}
  1454  				sv.Error_ = ptr.String(jtv)
  1455  			}
  1456  
  1457  		case "error_description":
  1458  			if value != nil {
  1459  				jtv, ok := value.(string)
  1460  				if !ok {
  1461  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1462  				}
  1463  				sv.Error_description = ptr.String(jtv)
  1464  			}
  1465  
  1466  		default:
  1467  			_, _ = key, value
  1468  
  1469  		}
  1470  	}
  1471  	*v = sv
  1472  	return nil
  1473  }
  1474  
  1475  func awsRestjson1_deserializeDocumentExpiredTokenException(v **types.ExpiredTokenException, value interface{}) error {
  1476  	if v == nil {
  1477  		return fmt.Errorf("unexpected nil of type %T", v)
  1478  	}
  1479  	if value == nil {
  1480  		return nil
  1481  	}
  1482  
  1483  	shape, ok := value.(map[string]interface{})
  1484  	if !ok {
  1485  		return fmt.Errorf("unexpected JSON type %v", value)
  1486  	}
  1487  
  1488  	var sv *types.ExpiredTokenException
  1489  	if *v == nil {
  1490  		sv = &types.ExpiredTokenException{}
  1491  	} else {
  1492  		sv = *v
  1493  	}
  1494  
  1495  	for key, value := range shape {
  1496  		switch key {
  1497  		case "error":
  1498  			if value != nil {
  1499  				jtv, ok := value.(string)
  1500  				if !ok {
  1501  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1502  				}
  1503  				sv.Error_ = ptr.String(jtv)
  1504  			}
  1505  
  1506  		case "error_description":
  1507  			if value != nil {
  1508  				jtv, ok := value.(string)
  1509  				if !ok {
  1510  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1511  				}
  1512  				sv.Error_description = ptr.String(jtv)
  1513  			}
  1514  
  1515  		default:
  1516  			_, _ = key, value
  1517  
  1518  		}
  1519  	}
  1520  	*v = sv
  1521  	return nil
  1522  }
  1523  
  1524  func awsRestjson1_deserializeDocumentInternalServerException(v **types.InternalServerException, value interface{}) error {
  1525  	if v == nil {
  1526  		return fmt.Errorf("unexpected nil of type %T", v)
  1527  	}
  1528  	if value == nil {
  1529  		return nil
  1530  	}
  1531  
  1532  	shape, ok := value.(map[string]interface{})
  1533  	if !ok {
  1534  		return fmt.Errorf("unexpected JSON type %v", value)
  1535  	}
  1536  
  1537  	var sv *types.InternalServerException
  1538  	if *v == nil {
  1539  		sv = &types.InternalServerException{}
  1540  	} else {
  1541  		sv = *v
  1542  	}
  1543  
  1544  	for key, value := range shape {
  1545  		switch key {
  1546  		case "error":
  1547  			if value != nil {
  1548  				jtv, ok := value.(string)
  1549  				if !ok {
  1550  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1551  				}
  1552  				sv.Error_ = ptr.String(jtv)
  1553  			}
  1554  
  1555  		case "error_description":
  1556  			if value != nil {
  1557  				jtv, ok := value.(string)
  1558  				if !ok {
  1559  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1560  				}
  1561  				sv.Error_description = ptr.String(jtv)
  1562  			}
  1563  
  1564  		default:
  1565  			_, _ = key, value
  1566  
  1567  		}
  1568  	}
  1569  	*v = sv
  1570  	return nil
  1571  }
  1572  
  1573  func awsRestjson1_deserializeDocumentInvalidClientException(v **types.InvalidClientException, value interface{}) error {
  1574  	if v == nil {
  1575  		return fmt.Errorf("unexpected nil of type %T", v)
  1576  	}
  1577  	if value == nil {
  1578  		return nil
  1579  	}
  1580  
  1581  	shape, ok := value.(map[string]interface{})
  1582  	if !ok {
  1583  		return fmt.Errorf("unexpected JSON type %v", value)
  1584  	}
  1585  
  1586  	var sv *types.InvalidClientException
  1587  	if *v == nil {
  1588  		sv = &types.InvalidClientException{}
  1589  	} else {
  1590  		sv = *v
  1591  	}
  1592  
  1593  	for key, value := range shape {
  1594  		switch key {
  1595  		case "error":
  1596  			if value != nil {
  1597  				jtv, ok := value.(string)
  1598  				if !ok {
  1599  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1600  				}
  1601  				sv.Error_ = ptr.String(jtv)
  1602  			}
  1603  
  1604  		case "error_description":
  1605  			if value != nil {
  1606  				jtv, ok := value.(string)
  1607  				if !ok {
  1608  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1609  				}
  1610  				sv.Error_description = ptr.String(jtv)
  1611  			}
  1612  
  1613  		default:
  1614  			_, _ = key, value
  1615  
  1616  		}
  1617  	}
  1618  	*v = sv
  1619  	return nil
  1620  }
  1621  
  1622  func awsRestjson1_deserializeDocumentInvalidClientMetadataException(v **types.InvalidClientMetadataException, value interface{}) error {
  1623  	if v == nil {
  1624  		return fmt.Errorf("unexpected nil of type %T", v)
  1625  	}
  1626  	if value == nil {
  1627  		return nil
  1628  	}
  1629  
  1630  	shape, ok := value.(map[string]interface{})
  1631  	if !ok {
  1632  		return fmt.Errorf("unexpected JSON type %v", value)
  1633  	}
  1634  
  1635  	var sv *types.InvalidClientMetadataException
  1636  	if *v == nil {
  1637  		sv = &types.InvalidClientMetadataException{}
  1638  	} else {
  1639  		sv = *v
  1640  	}
  1641  
  1642  	for key, value := range shape {
  1643  		switch key {
  1644  		case "error":
  1645  			if value != nil {
  1646  				jtv, ok := value.(string)
  1647  				if !ok {
  1648  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1649  				}
  1650  				sv.Error_ = ptr.String(jtv)
  1651  			}
  1652  
  1653  		case "error_description":
  1654  			if value != nil {
  1655  				jtv, ok := value.(string)
  1656  				if !ok {
  1657  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1658  				}
  1659  				sv.Error_description = ptr.String(jtv)
  1660  			}
  1661  
  1662  		default:
  1663  			_, _ = key, value
  1664  
  1665  		}
  1666  	}
  1667  	*v = sv
  1668  	return nil
  1669  }
  1670  
  1671  func awsRestjson1_deserializeDocumentInvalidGrantException(v **types.InvalidGrantException, value interface{}) error {
  1672  	if v == nil {
  1673  		return fmt.Errorf("unexpected nil of type %T", v)
  1674  	}
  1675  	if value == nil {
  1676  		return nil
  1677  	}
  1678  
  1679  	shape, ok := value.(map[string]interface{})
  1680  	if !ok {
  1681  		return fmt.Errorf("unexpected JSON type %v", value)
  1682  	}
  1683  
  1684  	var sv *types.InvalidGrantException
  1685  	if *v == nil {
  1686  		sv = &types.InvalidGrantException{}
  1687  	} else {
  1688  		sv = *v
  1689  	}
  1690  
  1691  	for key, value := range shape {
  1692  		switch key {
  1693  		case "error":
  1694  			if value != nil {
  1695  				jtv, ok := value.(string)
  1696  				if !ok {
  1697  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1698  				}
  1699  				sv.Error_ = ptr.String(jtv)
  1700  			}
  1701  
  1702  		case "error_description":
  1703  			if value != nil {
  1704  				jtv, ok := value.(string)
  1705  				if !ok {
  1706  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1707  				}
  1708  				sv.Error_description = ptr.String(jtv)
  1709  			}
  1710  
  1711  		default:
  1712  			_, _ = key, value
  1713  
  1714  		}
  1715  	}
  1716  	*v = sv
  1717  	return nil
  1718  }
  1719  
  1720  func awsRestjson1_deserializeDocumentInvalidRequestException(v **types.InvalidRequestException, value interface{}) error {
  1721  	if v == nil {
  1722  		return fmt.Errorf("unexpected nil of type %T", v)
  1723  	}
  1724  	if value == nil {
  1725  		return nil
  1726  	}
  1727  
  1728  	shape, ok := value.(map[string]interface{})
  1729  	if !ok {
  1730  		return fmt.Errorf("unexpected JSON type %v", value)
  1731  	}
  1732  
  1733  	var sv *types.InvalidRequestException
  1734  	if *v == nil {
  1735  		sv = &types.InvalidRequestException{}
  1736  	} else {
  1737  		sv = *v
  1738  	}
  1739  
  1740  	for key, value := range shape {
  1741  		switch key {
  1742  		case "error":
  1743  			if value != nil {
  1744  				jtv, ok := value.(string)
  1745  				if !ok {
  1746  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1747  				}
  1748  				sv.Error_ = ptr.String(jtv)
  1749  			}
  1750  
  1751  		case "error_description":
  1752  			if value != nil {
  1753  				jtv, ok := value.(string)
  1754  				if !ok {
  1755  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1756  				}
  1757  				sv.Error_description = ptr.String(jtv)
  1758  			}
  1759  
  1760  		default:
  1761  			_, _ = key, value
  1762  
  1763  		}
  1764  	}
  1765  	*v = sv
  1766  	return nil
  1767  }
  1768  
  1769  func awsRestjson1_deserializeDocumentInvalidRequestRegionException(v **types.InvalidRequestRegionException, value interface{}) error {
  1770  	if v == nil {
  1771  		return fmt.Errorf("unexpected nil of type %T", v)
  1772  	}
  1773  	if value == nil {
  1774  		return nil
  1775  	}
  1776  
  1777  	shape, ok := value.(map[string]interface{})
  1778  	if !ok {
  1779  		return fmt.Errorf("unexpected JSON type %v", value)
  1780  	}
  1781  
  1782  	var sv *types.InvalidRequestRegionException
  1783  	if *v == nil {
  1784  		sv = &types.InvalidRequestRegionException{}
  1785  	} else {
  1786  		sv = *v
  1787  	}
  1788  
  1789  	for key, value := range shape {
  1790  		switch key {
  1791  		case "endpoint":
  1792  			if value != nil {
  1793  				jtv, ok := value.(string)
  1794  				if !ok {
  1795  					return fmt.Errorf("expected Location to be of type string, got %T instead", value)
  1796  				}
  1797  				sv.Endpoint = ptr.String(jtv)
  1798  			}
  1799  
  1800  		case "error":
  1801  			if value != nil {
  1802  				jtv, ok := value.(string)
  1803  				if !ok {
  1804  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1805  				}
  1806  				sv.Error_ = ptr.String(jtv)
  1807  			}
  1808  
  1809  		case "error_description":
  1810  			if value != nil {
  1811  				jtv, ok := value.(string)
  1812  				if !ok {
  1813  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1814  				}
  1815  				sv.Error_description = ptr.String(jtv)
  1816  			}
  1817  
  1818  		case "region":
  1819  			if value != nil {
  1820  				jtv, ok := value.(string)
  1821  				if !ok {
  1822  					return fmt.Errorf("expected Region to be of type string, got %T instead", value)
  1823  				}
  1824  				sv.Region = ptr.String(jtv)
  1825  			}
  1826  
  1827  		default:
  1828  			_, _ = key, value
  1829  
  1830  		}
  1831  	}
  1832  	*v = sv
  1833  	return nil
  1834  }
  1835  
  1836  func awsRestjson1_deserializeDocumentInvalidScopeException(v **types.InvalidScopeException, value interface{}) error {
  1837  	if v == nil {
  1838  		return fmt.Errorf("unexpected nil of type %T", v)
  1839  	}
  1840  	if value == nil {
  1841  		return nil
  1842  	}
  1843  
  1844  	shape, ok := value.(map[string]interface{})
  1845  	if !ok {
  1846  		return fmt.Errorf("unexpected JSON type %v", value)
  1847  	}
  1848  
  1849  	var sv *types.InvalidScopeException
  1850  	if *v == nil {
  1851  		sv = &types.InvalidScopeException{}
  1852  	} else {
  1853  		sv = *v
  1854  	}
  1855  
  1856  	for key, value := range shape {
  1857  		switch key {
  1858  		case "error":
  1859  			if value != nil {
  1860  				jtv, ok := value.(string)
  1861  				if !ok {
  1862  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1863  				}
  1864  				sv.Error_ = ptr.String(jtv)
  1865  			}
  1866  
  1867  		case "error_description":
  1868  			if value != nil {
  1869  				jtv, ok := value.(string)
  1870  				if !ok {
  1871  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1872  				}
  1873  				sv.Error_description = ptr.String(jtv)
  1874  			}
  1875  
  1876  		default:
  1877  			_, _ = key, value
  1878  
  1879  		}
  1880  	}
  1881  	*v = sv
  1882  	return nil
  1883  }
  1884  
  1885  func awsRestjson1_deserializeDocumentScopes(v *[]string, value interface{}) error {
  1886  	if v == nil {
  1887  		return fmt.Errorf("unexpected nil of type %T", v)
  1888  	}
  1889  	if value == nil {
  1890  		return nil
  1891  	}
  1892  
  1893  	shape, ok := value.([]interface{})
  1894  	if !ok {
  1895  		return fmt.Errorf("unexpected JSON type %v", value)
  1896  	}
  1897  
  1898  	var cv []string
  1899  	if *v == nil {
  1900  		cv = []string{}
  1901  	} else {
  1902  		cv = *v
  1903  	}
  1904  
  1905  	for _, value := range shape {
  1906  		var col string
  1907  		if value != nil {
  1908  			jtv, ok := value.(string)
  1909  			if !ok {
  1910  				return fmt.Errorf("expected Scope to be of type string, got %T instead", value)
  1911  			}
  1912  			col = jtv
  1913  		}
  1914  		cv = append(cv, col)
  1915  
  1916  	}
  1917  	*v = cv
  1918  	return nil
  1919  }
  1920  
  1921  func awsRestjson1_deserializeDocumentSlowDownException(v **types.SlowDownException, value interface{}) error {
  1922  	if v == nil {
  1923  		return fmt.Errorf("unexpected nil of type %T", v)
  1924  	}
  1925  	if value == nil {
  1926  		return nil
  1927  	}
  1928  
  1929  	shape, ok := value.(map[string]interface{})
  1930  	if !ok {
  1931  		return fmt.Errorf("unexpected JSON type %v", value)
  1932  	}
  1933  
  1934  	var sv *types.SlowDownException
  1935  	if *v == nil {
  1936  		sv = &types.SlowDownException{}
  1937  	} else {
  1938  		sv = *v
  1939  	}
  1940  
  1941  	for key, value := range shape {
  1942  		switch key {
  1943  		case "error":
  1944  			if value != nil {
  1945  				jtv, ok := value.(string)
  1946  				if !ok {
  1947  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1948  				}
  1949  				sv.Error_ = ptr.String(jtv)
  1950  			}
  1951  
  1952  		case "error_description":
  1953  			if value != nil {
  1954  				jtv, ok := value.(string)
  1955  				if !ok {
  1956  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  1957  				}
  1958  				sv.Error_description = ptr.String(jtv)
  1959  			}
  1960  
  1961  		default:
  1962  			_, _ = key, value
  1963  
  1964  		}
  1965  	}
  1966  	*v = sv
  1967  	return nil
  1968  }
  1969  
  1970  func awsRestjson1_deserializeDocumentUnauthorizedClientException(v **types.UnauthorizedClientException, value interface{}) error {
  1971  	if v == nil {
  1972  		return fmt.Errorf("unexpected nil of type %T", v)
  1973  	}
  1974  	if value == nil {
  1975  		return nil
  1976  	}
  1977  
  1978  	shape, ok := value.(map[string]interface{})
  1979  	if !ok {
  1980  		return fmt.Errorf("unexpected JSON type %v", value)
  1981  	}
  1982  
  1983  	var sv *types.UnauthorizedClientException
  1984  	if *v == nil {
  1985  		sv = &types.UnauthorizedClientException{}
  1986  	} else {
  1987  		sv = *v
  1988  	}
  1989  
  1990  	for key, value := range shape {
  1991  		switch key {
  1992  		case "error":
  1993  			if value != nil {
  1994  				jtv, ok := value.(string)
  1995  				if !ok {
  1996  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  1997  				}
  1998  				sv.Error_ = ptr.String(jtv)
  1999  			}
  2000  
  2001  		case "error_description":
  2002  			if value != nil {
  2003  				jtv, ok := value.(string)
  2004  				if !ok {
  2005  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  2006  				}
  2007  				sv.Error_description = ptr.String(jtv)
  2008  			}
  2009  
  2010  		default:
  2011  			_, _ = key, value
  2012  
  2013  		}
  2014  	}
  2015  	*v = sv
  2016  	return nil
  2017  }
  2018  
  2019  func awsRestjson1_deserializeDocumentUnsupportedGrantTypeException(v **types.UnsupportedGrantTypeException, value interface{}) error {
  2020  	if v == nil {
  2021  		return fmt.Errorf("unexpected nil of type %T", v)
  2022  	}
  2023  	if value == nil {
  2024  		return nil
  2025  	}
  2026  
  2027  	shape, ok := value.(map[string]interface{})
  2028  	if !ok {
  2029  		return fmt.Errorf("unexpected JSON type %v", value)
  2030  	}
  2031  
  2032  	var sv *types.UnsupportedGrantTypeException
  2033  	if *v == nil {
  2034  		sv = &types.UnsupportedGrantTypeException{}
  2035  	} else {
  2036  		sv = *v
  2037  	}
  2038  
  2039  	for key, value := range shape {
  2040  		switch key {
  2041  		case "error":
  2042  			if value != nil {
  2043  				jtv, ok := value.(string)
  2044  				if !ok {
  2045  					return fmt.Errorf("expected Error to be of type string, got %T instead", value)
  2046  				}
  2047  				sv.Error_ = ptr.String(jtv)
  2048  			}
  2049  
  2050  		case "error_description":
  2051  			if value != nil {
  2052  				jtv, ok := value.(string)
  2053  				if !ok {
  2054  					return fmt.Errorf("expected ErrorDescription to be of type string, got %T instead", value)
  2055  				}
  2056  				sv.Error_description = ptr.String(jtv)
  2057  			}
  2058  
  2059  		default:
  2060  			_, _ = key, value
  2061  
  2062  		}
  2063  	}
  2064  	*v = sv
  2065  	return nil
  2066  }
  2067  

View as plain text