1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package chime
4
5import (
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/chime/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	smithytime "github.com/aws/smithy-go/time"
17	smithyhttp "github.com/aws/smithy-go/transport/http"
18	"io"
19	"io/ioutil"
20	"strings"
21)
22
23type awsRestjson1_deserializeOpAssociatePhoneNumbersWithVoiceConnector struct {
24}
25
26func (*awsRestjson1_deserializeOpAssociatePhoneNumbersWithVoiceConnector) ID() string {
27	return "OperationDeserializer"
28}
29
30func (m *awsRestjson1_deserializeOpAssociatePhoneNumbersWithVoiceConnector) 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	if response.StatusCode < 200 || response.StatusCode >= 300 {
44		return out, metadata, awsRestjson1_deserializeOpErrorAssociatePhoneNumbersWithVoiceConnector(response, &metadata)
45	}
46	output := &AssociatePhoneNumbersWithVoiceConnectorOutput{}
47	out.Result = output
48
49	var buff [1024]byte
50	ringBuffer := smithyio.NewRingBuffer(buff[:])
51
52	body := io.TeeReader(response.Body, ringBuffer)
53
54	decoder := json.NewDecoder(body)
55	decoder.UseNumber()
56	var shape interface{}
57	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
58		var snapshot bytes.Buffer
59		io.Copy(&snapshot, ringBuffer)
60		err = &smithy.DeserializationError{
61			Err:      fmt.Errorf("failed to decode response body, %w", err),
62			Snapshot: snapshot.Bytes(),
63		}
64		return out, metadata, err
65	}
66
67	err = awsRestjson1_deserializeOpDocumentAssociatePhoneNumbersWithVoiceConnectorOutput(&output, shape)
68	if err != nil {
69		var snapshot bytes.Buffer
70		io.Copy(&snapshot, ringBuffer)
71		return out, metadata, &smithy.DeserializationError{
72			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
73			Snapshot: snapshot.Bytes(),
74		}
75	}
76
77	return out, metadata, err
78}
79
80func awsRestjson1_deserializeOpErrorAssociatePhoneNumbersWithVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
81	var errorBuffer bytes.Buffer
82	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
83		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
84	}
85	errorBody := bytes.NewReader(errorBuffer.Bytes())
86
87	errorCode := "UnknownError"
88	errorMessage := errorCode
89
90	code := response.Header.Get("X-Amzn-ErrorType")
91	if len(code) != 0 {
92		errorCode = restjson.SanitizeErrorCode(code)
93	}
94
95	var buff [1024]byte
96	ringBuffer := smithyio.NewRingBuffer(buff[:])
97
98	body := io.TeeReader(errorBody, ringBuffer)
99	decoder := json.NewDecoder(body)
100	decoder.UseNumber()
101	code, message, err := restjson.GetErrorInfo(decoder)
102	if err != nil {
103		var snapshot bytes.Buffer
104		io.Copy(&snapshot, ringBuffer)
105		err = &smithy.DeserializationError{
106			Err:      fmt.Errorf("failed to decode response body, %w", err),
107			Snapshot: snapshot.Bytes(),
108		}
109		return err
110	}
111
112	errorBody.Seek(0, io.SeekStart)
113	if len(code) != 0 {
114		errorCode = restjson.SanitizeErrorCode(code)
115	}
116	if len(message) != 0 {
117		errorMessage = message
118	}
119
120	switch {
121	case strings.EqualFold("AccessDeniedException", errorCode):
122		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
123
124	case strings.EqualFold("BadRequestException", errorCode):
125		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
126
127	case strings.EqualFold("ForbiddenException", errorCode):
128		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
129
130	case strings.EqualFold("NotFoundException", errorCode):
131		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
132
133	case strings.EqualFold("ServiceFailureException", errorCode):
134		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
135
136	case strings.EqualFold("ServiceUnavailableException", errorCode):
137		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
138
139	case strings.EqualFold("ThrottledClientException", errorCode):
140		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
141
142	case strings.EqualFold("UnauthorizedClientException", errorCode):
143		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
144
145	default:
146		genericError := &smithy.GenericAPIError{
147			Code:    errorCode,
148			Message: errorMessage,
149		}
150		return genericError
151
152	}
153}
154
155func awsRestjson1_deserializeOpDocumentAssociatePhoneNumbersWithVoiceConnectorOutput(v **AssociatePhoneNumbersWithVoiceConnectorOutput, value interface{}) error {
156	if v == nil {
157		return fmt.Errorf("unexpected nil of type %T", v)
158	}
159	if value == nil {
160		return nil
161	}
162
163	shape, ok := value.(map[string]interface{})
164	if !ok {
165		return fmt.Errorf("unexpected JSON type %v", value)
166	}
167
168	var sv *AssociatePhoneNumbersWithVoiceConnectorOutput
169	if *v == nil {
170		sv = &AssociatePhoneNumbersWithVoiceConnectorOutput{}
171	} else {
172		sv = *v
173	}
174
175	for key, value := range shape {
176		switch key {
177		case "PhoneNumberErrors":
178			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
179				return err
180			}
181
182		default:
183			_, _ = key, value
184
185		}
186	}
187	*v = sv
188	return nil
189}
190
191type awsRestjson1_deserializeOpAssociatePhoneNumbersWithVoiceConnectorGroup struct {
192}
193
194func (*awsRestjson1_deserializeOpAssociatePhoneNumbersWithVoiceConnectorGroup) ID() string {
195	return "OperationDeserializer"
196}
197
198func (m *awsRestjson1_deserializeOpAssociatePhoneNumbersWithVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
199	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
200) {
201	out, metadata, err = next.HandleDeserialize(ctx, in)
202	if err != nil {
203		return out, metadata, err
204	}
205
206	response, ok := out.RawResponse.(*smithyhttp.Response)
207	if !ok {
208		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
209	}
210
211	if response.StatusCode < 200 || response.StatusCode >= 300 {
212		return out, metadata, awsRestjson1_deserializeOpErrorAssociatePhoneNumbersWithVoiceConnectorGroup(response, &metadata)
213	}
214	output := &AssociatePhoneNumbersWithVoiceConnectorGroupOutput{}
215	out.Result = output
216
217	var buff [1024]byte
218	ringBuffer := smithyio.NewRingBuffer(buff[:])
219
220	body := io.TeeReader(response.Body, ringBuffer)
221
222	decoder := json.NewDecoder(body)
223	decoder.UseNumber()
224	var shape interface{}
225	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
226		var snapshot bytes.Buffer
227		io.Copy(&snapshot, ringBuffer)
228		err = &smithy.DeserializationError{
229			Err:      fmt.Errorf("failed to decode response body, %w", err),
230			Snapshot: snapshot.Bytes(),
231		}
232		return out, metadata, err
233	}
234
235	err = awsRestjson1_deserializeOpDocumentAssociatePhoneNumbersWithVoiceConnectorGroupOutput(&output, shape)
236	if err != nil {
237		var snapshot bytes.Buffer
238		io.Copy(&snapshot, ringBuffer)
239		return out, metadata, &smithy.DeserializationError{
240			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
241			Snapshot: snapshot.Bytes(),
242		}
243	}
244
245	return out, metadata, err
246}
247
248func awsRestjson1_deserializeOpErrorAssociatePhoneNumbersWithVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
249	var errorBuffer bytes.Buffer
250	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
251		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
252	}
253	errorBody := bytes.NewReader(errorBuffer.Bytes())
254
255	errorCode := "UnknownError"
256	errorMessage := errorCode
257
258	code := response.Header.Get("X-Amzn-ErrorType")
259	if len(code) != 0 {
260		errorCode = restjson.SanitizeErrorCode(code)
261	}
262
263	var buff [1024]byte
264	ringBuffer := smithyio.NewRingBuffer(buff[:])
265
266	body := io.TeeReader(errorBody, ringBuffer)
267	decoder := json.NewDecoder(body)
268	decoder.UseNumber()
269	code, message, err := restjson.GetErrorInfo(decoder)
270	if err != nil {
271		var snapshot bytes.Buffer
272		io.Copy(&snapshot, ringBuffer)
273		err = &smithy.DeserializationError{
274			Err:      fmt.Errorf("failed to decode response body, %w", err),
275			Snapshot: snapshot.Bytes(),
276		}
277		return err
278	}
279
280	errorBody.Seek(0, io.SeekStart)
281	if len(code) != 0 {
282		errorCode = restjson.SanitizeErrorCode(code)
283	}
284	if len(message) != 0 {
285		errorMessage = message
286	}
287
288	switch {
289	case strings.EqualFold("AccessDeniedException", errorCode):
290		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
291
292	case strings.EqualFold("BadRequestException", errorCode):
293		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
294
295	case strings.EqualFold("ForbiddenException", errorCode):
296		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
297
298	case strings.EqualFold("NotFoundException", errorCode):
299		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
300
301	case strings.EqualFold("ServiceFailureException", errorCode):
302		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
303
304	case strings.EqualFold("ServiceUnavailableException", errorCode):
305		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
306
307	case strings.EqualFold("ThrottledClientException", errorCode):
308		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
309
310	case strings.EqualFold("UnauthorizedClientException", errorCode):
311		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
312
313	default:
314		genericError := &smithy.GenericAPIError{
315			Code:    errorCode,
316			Message: errorMessage,
317		}
318		return genericError
319
320	}
321}
322
323func awsRestjson1_deserializeOpDocumentAssociatePhoneNumbersWithVoiceConnectorGroupOutput(v **AssociatePhoneNumbersWithVoiceConnectorGroupOutput, value interface{}) error {
324	if v == nil {
325		return fmt.Errorf("unexpected nil of type %T", v)
326	}
327	if value == nil {
328		return nil
329	}
330
331	shape, ok := value.(map[string]interface{})
332	if !ok {
333		return fmt.Errorf("unexpected JSON type %v", value)
334	}
335
336	var sv *AssociatePhoneNumbersWithVoiceConnectorGroupOutput
337	if *v == nil {
338		sv = &AssociatePhoneNumbersWithVoiceConnectorGroupOutput{}
339	} else {
340		sv = *v
341	}
342
343	for key, value := range shape {
344		switch key {
345		case "PhoneNumberErrors":
346			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
347				return err
348			}
349
350		default:
351			_, _ = key, value
352
353		}
354	}
355	*v = sv
356	return nil
357}
358
359type awsRestjson1_deserializeOpAssociatePhoneNumberWithUser struct {
360}
361
362func (*awsRestjson1_deserializeOpAssociatePhoneNumberWithUser) ID() string {
363	return "OperationDeserializer"
364}
365
366func (m *awsRestjson1_deserializeOpAssociatePhoneNumberWithUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
367	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
368) {
369	out, metadata, err = next.HandleDeserialize(ctx, in)
370	if err != nil {
371		return out, metadata, err
372	}
373
374	response, ok := out.RawResponse.(*smithyhttp.Response)
375	if !ok {
376		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
377	}
378
379	if response.StatusCode < 200 || response.StatusCode >= 300 {
380		return out, metadata, awsRestjson1_deserializeOpErrorAssociatePhoneNumberWithUser(response, &metadata)
381	}
382	output := &AssociatePhoneNumberWithUserOutput{}
383	out.Result = output
384
385	return out, metadata, err
386}
387
388func awsRestjson1_deserializeOpErrorAssociatePhoneNumberWithUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
389	var errorBuffer bytes.Buffer
390	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
391		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
392	}
393	errorBody := bytes.NewReader(errorBuffer.Bytes())
394
395	errorCode := "UnknownError"
396	errorMessage := errorCode
397
398	code := response.Header.Get("X-Amzn-ErrorType")
399	if len(code) != 0 {
400		errorCode = restjson.SanitizeErrorCode(code)
401	}
402
403	var buff [1024]byte
404	ringBuffer := smithyio.NewRingBuffer(buff[:])
405
406	body := io.TeeReader(errorBody, ringBuffer)
407	decoder := json.NewDecoder(body)
408	decoder.UseNumber()
409	code, message, err := restjson.GetErrorInfo(decoder)
410	if err != nil {
411		var snapshot bytes.Buffer
412		io.Copy(&snapshot, ringBuffer)
413		err = &smithy.DeserializationError{
414			Err:      fmt.Errorf("failed to decode response body, %w", err),
415			Snapshot: snapshot.Bytes(),
416		}
417		return err
418	}
419
420	errorBody.Seek(0, io.SeekStart)
421	if len(code) != 0 {
422		errorCode = restjson.SanitizeErrorCode(code)
423	}
424	if len(message) != 0 {
425		errorMessage = message
426	}
427
428	switch {
429	case strings.EqualFold("AccessDeniedException", errorCode):
430		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
431
432	case strings.EqualFold("BadRequestException", errorCode):
433		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
434
435	case strings.EqualFold("ForbiddenException", errorCode):
436		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
437
438	case strings.EqualFold("NotFoundException", errorCode):
439		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
440
441	case strings.EqualFold("ServiceFailureException", errorCode):
442		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
443
444	case strings.EqualFold("ServiceUnavailableException", errorCode):
445		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
446
447	case strings.EqualFold("ThrottledClientException", errorCode):
448		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
449
450	case strings.EqualFold("UnauthorizedClientException", errorCode):
451		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
452
453	default:
454		genericError := &smithy.GenericAPIError{
455			Code:    errorCode,
456			Message: errorMessage,
457		}
458		return genericError
459
460	}
461}
462
463type awsRestjson1_deserializeOpAssociateSigninDelegateGroupsWithAccount struct {
464}
465
466func (*awsRestjson1_deserializeOpAssociateSigninDelegateGroupsWithAccount) ID() string {
467	return "OperationDeserializer"
468}
469
470func (m *awsRestjson1_deserializeOpAssociateSigninDelegateGroupsWithAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
471	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
472) {
473	out, metadata, err = next.HandleDeserialize(ctx, in)
474	if err != nil {
475		return out, metadata, err
476	}
477
478	response, ok := out.RawResponse.(*smithyhttp.Response)
479	if !ok {
480		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
481	}
482
483	if response.StatusCode < 200 || response.StatusCode >= 300 {
484		return out, metadata, awsRestjson1_deserializeOpErrorAssociateSigninDelegateGroupsWithAccount(response, &metadata)
485	}
486	output := &AssociateSigninDelegateGroupsWithAccountOutput{}
487	out.Result = output
488
489	return out, metadata, err
490}
491
492func awsRestjson1_deserializeOpErrorAssociateSigninDelegateGroupsWithAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
493	var errorBuffer bytes.Buffer
494	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
495		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
496	}
497	errorBody := bytes.NewReader(errorBuffer.Bytes())
498
499	errorCode := "UnknownError"
500	errorMessage := errorCode
501
502	code := response.Header.Get("X-Amzn-ErrorType")
503	if len(code) != 0 {
504		errorCode = restjson.SanitizeErrorCode(code)
505	}
506
507	var buff [1024]byte
508	ringBuffer := smithyio.NewRingBuffer(buff[:])
509
510	body := io.TeeReader(errorBody, ringBuffer)
511	decoder := json.NewDecoder(body)
512	decoder.UseNumber()
513	code, message, err := restjson.GetErrorInfo(decoder)
514	if err != nil {
515		var snapshot bytes.Buffer
516		io.Copy(&snapshot, ringBuffer)
517		err = &smithy.DeserializationError{
518			Err:      fmt.Errorf("failed to decode response body, %w", err),
519			Snapshot: snapshot.Bytes(),
520		}
521		return err
522	}
523
524	errorBody.Seek(0, io.SeekStart)
525	if len(code) != 0 {
526		errorCode = restjson.SanitizeErrorCode(code)
527	}
528	if len(message) != 0 {
529		errorMessage = message
530	}
531
532	switch {
533	case strings.EqualFold("BadRequestException", errorCode):
534		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
535
536	case strings.EqualFold("ForbiddenException", errorCode):
537		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
538
539	case strings.EqualFold("NotFoundException", errorCode):
540		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
541
542	case strings.EqualFold("ServiceFailureException", errorCode):
543		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
544
545	case strings.EqualFold("ServiceUnavailableException", errorCode):
546		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
547
548	case strings.EqualFold("ThrottledClientException", errorCode):
549		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
550
551	case strings.EqualFold("UnauthorizedClientException", errorCode):
552		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
553
554	default:
555		genericError := &smithy.GenericAPIError{
556			Code:    errorCode,
557			Message: errorMessage,
558		}
559		return genericError
560
561	}
562}
563
564type awsRestjson1_deserializeOpBatchCreateAttendee struct {
565}
566
567func (*awsRestjson1_deserializeOpBatchCreateAttendee) ID() string {
568	return "OperationDeserializer"
569}
570
571func (m *awsRestjson1_deserializeOpBatchCreateAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
572	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
573) {
574	out, metadata, err = next.HandleDeserialize(ctx, in)
575	if err != nil {
576		return out, metadata, err
577	}
578
579	response, ok := out.RawResponse.(*smithyhttp.Response)
580	if !ok {
581		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
582	}
583
584	if response.StatusCode < 200 || response.StatusCode >= 300 {
585		return out, metadata, awsRestjson1_deserializeOpErrorBatchCreateAttendee(response, &metadata)
586	}
587	output := &BatchCreateAttendeeOutput{}
588	out.Result = output
589
590	var buff [1024]byte
591	ringBuffer := smithyio.NewRingBuffer(buff[:])
592
593	body := io.TeeReader(response.Body, ringBuffer)
594
595	decoder := json.NewDecoder(body)
596	decoder.UseNumber()
597	var shape interface{}
598	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
599		var snapshot bytes.Buffer
600		io.Copy(&snapshot, ringBuffer)
601		err = &smithy.DeserializationError{
602			Err:      fmt.Errorf("failed to decode response body, %w", err),
603			Snapshot: snapshot.Bytes(),
604		}
605		return out, metadata, err
606	}
607
608	err = awsRestjson1_deserializeOpDocumentBatchCreateAttendeeOutput(&output, shape)
609	if err != nil {
610		var snapshot bytes.Buffer
611		io.Copy(&snapshot, ringBuffer)
612		return out, metadata, &smithy.DeserializationError{
613			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
614			Snapshot: snapshot.Bytes(),
615		}
616	}
617
618	return out, metadata, err
619}
620
621func awsRestjson1_deserializeOpErrorBatchCreateAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
622	var errorBuffer bytes.Buffer
623	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
624		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
625	}
626	errorBody := bytes.NewReader(errorBuffer.Bytes())
627
628	errorCode := "UnknownError"
629	errorMessage := errorCode
630
631	code := response.Header.Get("X-Amzn-ErrorType")
632	if len(code) != 0 {
633		errorCode = restjson.SanitizeErrorCode(code)
634	}
635
636	var buff [1024]byte
637	ringBuffer := smithyio.NewRingBuffer(buff[:])
638
639	body := io.TeeReader(errorBody, ringBuffer)
640	decoder := json.NewDecoder(body)
641	decoder.UseNumber()
642	code, message, err := restjson.GetErrorInfo(decoder)
643	if err != nil {
644		var snapshot bytes.Buffer
645		io.Copy(&snapshot, ringBuffer)
646		err = &smithy.DeserializationError{
647			Err:      fmt.Errorf("failed to decode response body, %w", err),
648			Snapshot: snapshot.Bytes(),
649		}
650		return err
651	}
652
653	errorBody.Seek(0, io.SeekStart)
654	if len(code) != 0 {
655		errorCode = restjson.SanitizeErrorCode(code)
656	}
657	if len(message) != 0 {
658		errorMessage = message
659	}
660
661	switch {
662	case strings.EqualFold("BadRequestException", errorCode):
663		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
664
665	case strings.EqualFold("ForbiddenException", errorCode):
666		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
667
668	case strings.EqualFold("NotFoundException", errorCode):
669		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
670
671	case strings.EqualFold("ResourceLimitExceededException", errorCode):
672		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
673
674	case strings.EqualFold("ServiceFailureException", errorCode):
675		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
676
677	case strings.EqualFold("ServiceUnavailableException", errorCode):
678		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
679
680	case strings.EqualFold("ThrottledClientException", errorCode):
681		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
682
683	case strings.EqualFold("UnauthorizedClientException", errorCode):
684		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
685
686	default:
687		genericError := &smithy.GenericAPIError{
688			Code:    errorCode,
689			Message: errorMessage,
690		}
691		return genericError
692
693	}
694}
695
696func awsRestjson1_deserializeOpDocumentBatchCreateAttendeeOutput(v **BatchCreateAttendeeOutput, value interface{}) error {
697	if v == nil {
698		return fmt.Errorf("unexpected nil of type %T", v)
699	}
700	if value == nil {
701		return nil
702	}
703
704	shape, ok := value.(map[string]interface{})
705	if !ok {
706		return fmt.Errorf("unexpected JSON type %v", value)
707	}
708
709	var sv *BatchCreateAttendeeOutput
710	if *v == nil {
711		sv = &BatchCreateAttendeeOutput{}
712	} else {
713		sv = *v
714	}
715
716	for key, value := range shape {
717		switch key {
718		case "Attendees":
719			if err := awsRestjson1_deserializeDocumentAttendeeList(&sv.Attendees, value); err != nil {
720				return err
721			}
722
723		case "Errors":
724			if err := awsRestjson1_deserializeDocumentBatchCreateAttendeeErrorList(&sv.Errors, value); err != nil {
725				return err
726			}
727
728		default:
729			_, _ = key, value
730
731		}
732	}
733	*v = sv
734	return nil
735}
736
737type awsRestjson1_deserializeOpBatchCreateChannelMembership struct {
738}
739
740func (*awsRestjson1_deserializeOpBatchCreateChannelMembership) ID() string {
741	return "OperationDeserializer"
742}
743
744func (m *awsRestjson1_deserializeOpBatchCreateChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
745	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
746) {
747	out, metadata, err = next.HandleDeserialize(ctx, in)
748	if err != nil {
749		return out, metadata, err
750	}
751
752	response, ok := out.RawResponse.(*smithyhttp.Response)
753	if !ok {
754		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
755	}
756
757	if response.StatusCode < 200 || response.StatusCode >= 300 {
758		return out, metadata, awsRestjson1_deserializeOpErrorBatchCreateChannelMembership(response, &metadata)
759	}
760	output := &BatchCreateChannelMembershipOutput{}
761	out.Result = output
762
763	var buff [1024]byte
764	ringBuffer := smithyio.NewRingBuffer(buff[:])
765
766	body := io.TeeReader(response.Body, ringBuffer)
767
768	decoder := json.NewDecoder(body)
769	decoder.UseNumber()
770	var shape interface{}
771	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
772		var snapshot bytes.Buffer
773		io.Copy(&snapshot, ringBuffer)
774		err = &smithy.DeserializationError{
775			Err:      fmt.Errorf("failed to decode response body, %w", err),
776			Snapshot: snapshot.Bytes(),
777		}
778		return out, metadata, err
779	}
780
781	err = awsRestjson1_deserializeOpDocumentBatchCreateChannelMembershipOutput(&output, shape)
782	if err != nil {
783		var snapshot bytes.Buffer
784		io.Copy(&snapshot, ringBuffer)
785		return out, metadata, &smithy.DeserializationError{
786			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
787			Snapshot: snapshot.Bytes(),
788		}
789	}
790
791	return out, metadata, err
792}
793
794func awsRestjson1_deserializeOpErrorBatchCreateChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
795	var errorBuffer bytes.Buffer
796	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
797		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
798	}
799	errorBody := bytes.NewReader(errorBuffer.Bytes())
800
801	errorCode := "UnknownError"
802	errorMessage := errorCode
803
804	code := response.Header.Get("X-Amzn-ErrorType")
805	if len(code) != 0 {
806		errorCode = restjson.SanitizeErrorCode(code)
807	}
808
809	var buff [1024]byte
810	ringBuffer := smithyio.NewRingBuffer(buff[:])
811
812	body := io.TeeReader(errorBody, ringBuffer)
813	decoder := json.NewDecoder(body)
814	decoder.UseNumber()
815	code, message, err := restjson.GetErrorInfo(decoder)
816	if err != nil {
817		var snapshot bytes.Buffer
818		io.Copy(&snapshot, ringBuffer)
819		err = &smithy.DeserializationError{
820			Err:      fmt.Errorf("failed to decode response body, %w", err),
821			Snapshot: snapshot.Bytes(),
822		}
823		return err
824	}
825
826	errorBody.Seek(0, io.SeekStart)
827	if len(code) != 0 {
828		errorCode = restjson.SanitizeErrorCode(code)
829	}
830	if len(message) != 0 {
831		errorMessage = message
832	}
833
834	switch {
835	case strings.EqualFold("BadRequestException", errorCode):
836		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
837
838	case strings.EqualFold("ForbiddenException", errorCode):
839		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
840
841	case strings.EqualFold("ServiceFailureException", errorCode):
842		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
843
844	case strings.EqualFold("ServiceUnavailableException", errorCode):
845		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
846
847	case strings.EqualFold("ThrottledClientException", errorCode):
848		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
849
850	case strings.EqualFold("UnauthorizedClientException", errorCode):
851		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
852
853	default:
854		genericError := &smithy.GenericAPIError{
855			Code:    errorCode,
856			Message: errorMessage,
857		}
858		return genericError
859
860	}
861}
862
863func awsRestjson1_deserializeOpDocumentBatchCreateChannelMembershipOutput(v **BatchCreateChannelMembershipOutput, value interface{}) error {
864	if v == nil {
865		return fmt.Errorf("unexpected nil of type %T", v)
866	}
867	if value == nil {
868		return nil
869	}
870
871	shape, ok := value.(map[string]interface{})
872	if !ok {
873		return fmt.Errorf("unexpected JSON type %v", value)
874	}
875
876	var sv *BatchCreateChannelMembershipOutput
877	if *v == nil {
878		sv = &BatchCreateChannelMembershipOutput{}
879	} else {
880		sv = *v
881	}
882
883	for key, value := range shape {
884		switch key {
885		case "BatchChannelMemberships":
886			if err := awsRestjson1_deserializeDocumentBatchChannelMemberships(&sv.BatchChannelMemberships, value); err != nil {
887				return err
888			}
889
890		case "Errors":
891			if err := awsRestjson1_deserializeDocumentBatchCreateChannelMembershipErrors(&sv.Errors, value); err != nil {
892				return err
893			}
894
895		default:
896			_, _ = key, value
897
898		}
899	}
900	*v = sv
901	return nil
902}
903
904type awsRestjson1_deserializeOpBatchCreateRoomMembership struct {
905}
906
907func (*awsRestjson1_deserializeOpBatchCreateRoomMembership) ID() string {
908	return "OperationDeserializer"
909}
910
911func (m *awsRestjson1_deserializeOpBatchCreateRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
912	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
913) {
914	out, metadata, err = next.HandleDeserialize(ctx, in)
915	if err != nil {
916		return out, metadata, err
917	}
918
919	response, ok := out.RawResponse.(*smithyhttp.Response)
920	if !ok {
921		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
922	}
923
924	if response.StatusCode < 200 || response.StatusCode >= 300 {
925		return out, metadata, awsRestjson1_deserializeOpErrorBatchCreateRoomMembership(response, &metadata)
926	}
927	output := &BatchCreateRoomMembershipOutput{}
928	out.Result = output
929
930	var buff [1024]byte
931	ringBuffer := smithyio.NewRingBuffer(buff[:])
932
933	body := io.TeeReader(response.Body, ringBuffer)
934
935	decoder := json.NewDecoder(body)
936	decoder.UseNumber()
937	var shape interface{}
938	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
939		var snapshot bytes.Buffer
940		io.Copy(&snapshot, ringBuffer)
941		err = &smithy.DeserializationError{
942			Err:      fmt.Errorf("failed to decode response body, %w", err),
943			Snapshot: snapshot.Bytes(),
944		}
945		return out, metadata, err
946	}
947
948	err = awsRestjson1_deserializeOpDocumentBatchCreateRoomMembershipOutput(&output, shape)
949	if err != nil {
950		var snapshot bytes.Buffer
951		io.Copy(&snapshot, ringBuffer)
952		return out, metadata, &smithy.DeserializationError{
953			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
954			Snapshot: snapshot.Bytes(),
955		}
956	}
957
958	return out, metadata, err
959}
960
961func awsRestjson1_deserializeOpErrorBatchCreateRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
962	var errorBuffer bytes.Buffer
963	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
964		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
965	}
966	errorBody := bytes.NewReader(errorBuffer.Bytes())
967
968	errorCode := "UnknownError"
969	errorMessage := errorCode
970
971	code := response.Header.Get("X-Amzn-ErrorType")
972	if len(code) != 0 {
973		errorCode = restjson.SanitizeErrorCode(code)
974	}
975
976	var buff [1024]byte
977	ringBuffer := smithyio.NewRingBuffer(buff[:])
978
979	body := io.TeeReader(errorBody, ringBuffer)
980	decoder := json.NewDecoder(body)
981	decoder.UseNumber()
982	code, message, err := restjson.GetErrorInfo(decoder)
983	if err != nil {
984		var snapshot bytes.Buffer
985		io.Copy(&snapshot, ringBuffer)
986		err = &smithy.DeserializationError{
987			Err:      fmt.Errorf("failed to decode response body, %w", err),
988			Snapshot: snapshot.Bytes(),
989		}
990		return err
991	}
992
993	errorBody.Seek(0, io.SeekStart)
994	if len(code) != 0 {
995		errorCode = restjson.SanitizeErrorCode(code)
996	}
997	if len(message) != 0 {
998		errorMessage = message
999	}
1000
1001	switch {
1002	case strings.EqualFold("BadRequestException", errorCode):
1003		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1004
1005	case strings.EqualFold("ForbiddenException", errorCode):
1006		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1007
1008	case strings.EqualFold("NotFoundException", errorCode):
1009		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1010
1011	case strings.EqualFold("ServiceFailureException", errorCode):
1012		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1013
1014	case strings.EqualFold("ServiceUnavailableException", errorCode):
1015		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1016
1017	case strings.EqualFold("ThrottledClientException", errorCode):
1018		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1019
1020	case strings.EqualFold("UnauthorizedClientException", errorCode):
1021		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1022
1023	default:
1024		genericError := &smithy.GenericAPIError{
1025			Code:    errorCode,
1026			Message: errorMessage,
1027		}
1028		return genericError
1029
1030	}
1031}
1032
1033func awsRestjson1_deserializeOpDocumentBatchCreateRoomMembershipOutput(v **BatchCreateRoomMembershipOutput, value interface{}) error {
1034	if v == nil {
1035		return fmt.Errorf("unexpected nil of type %T", v)
1036	}
1037	if value == nil {
1038		return nil
1039	}
1040
1041	shape, ok := value.(map[string]interface{})
1042	if !ok {
1043		return fmt.Errorf("unexpected JSON type %v", value)
1044	}
1045
1046	var sv *BatchCreateRoomMembershipOutput
1047	if *v == nil {
1048		sv = &BatchCreateRoomMembershipOutput{}
1049	} else {
1050		sv = *v
1051	}
1052
1053	for key, value := range shape {
1054		switch key {
1055		case "Errors":
1056			if err := awsRestjson1_deserializeDocumentMemberErrorList(&sv.Errors, value); err != nil {
1057				return err
1058			}
1059
1060		default:
1061			_, _ = key, value
1062
1063		}
1064	}
1065	*v = sv
1066	return nil
1067}
1068
1069type awsRestjson1_deserializeOpBatchDeletePhoneNumber struct {
1070}
1071
1072func (*awsRestjson1_deserializeOpBatchDeletePhoneNumber) ID() string {
1073	return "OperationDeserializer"
1074}
1075
1076func (m *awsRestjson1_deserializeOpBatchDeletePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1077	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1078) {
1079	out, metadata, err = next.HandleDeserialize(ctx, in)
1080	if err != nil {
1081		return out, metadata, err
1082	}
1083
1084	response, ok := out.RawResponse.(*smithyhttp.Response)
1085	if !ok {
1086		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1087	}
1088
1089	if response.StatusCode < 200 || response.StatusCode >= 300 {
1090		return out, metadata, awsRestjson1_deserializeOpErrorBatchDeletePhoneNumber(response, &metadata)
1091	}
1092	output := &BatchDeletePhoneNumberOutput{}
1093	out.Result = output
1094
1095	var buff [1024]byte
1096	ringBuffer := smithyio.NewRingBuffer(buff[:])
1097
1098	body := io.TeeReader(response.Body, ringBuffer)
1099
1100	decoder := json.NewDecoder(body)
1101	decoder.UseNumber()
1102	var shape interface{}
1103	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1104		var snapshot bytes.Buffer
1105		io.Copy(&snapshot, ringBuffer)
1106		err = &smithy.DeserializationError{
1107			Err:      fmt.Errorf("failed to decode response body, %w", err),
1108			Snapshot: snapshot.Bytes(),
1109		}
1110		return out, metadata, err
1111	}
1112
1113	err = awsRestjson1_deserializeOpDocumentBatchDeletePhoneNumberOutput(&output, shape)
1114	if err != nil {
1115		var snapshot bytes.Buffer
1116		io.Copy(&snapshot, ringBuffer)
1117		return out, metadata, &smithy.DeserializationError{
1118			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1119			Snapshot: snapshot.Bytes(),
1120		}
1121	}
1122
1123	return out, metadata, err
1124}
1125
1126func awsRestjson1_deserializeOpErrorBatchDeletePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1127	var errorBuffer bytes.Buffer
1128	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1129		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1130	}
1131	errorBody := bytes.NewReader(errorBuffer.Bytes())
1132
1133	errorCode := "UnknownError"
1134	errorMessage := errorCode
1135
1136	code := response.Header.Get("X-Amzn-ErrorType")
1137	if len(code) != 0 {
1138		errorCode = restjson.SanitizeErrorCode(code)
1139	}
1140
1141	var buff [1024]byte
1142	ringBuffer := smithyio.NewRingBuffer(buff[:])
1143
1144	body := io.TeeReader(errorBody, ringBuffer)
1145	decoder := json.NewDecoder(body)
1146	decoder.UseNumber()
1147	code, message, err := restjson.GetErrorInfo(decoder)
1148	if err != nil {
1149		var snapshot bytes.Buffer
1150		io.Copy(&snapshot, ringBuffer)
1151		err = &smithy.DeserializationError{
1152			Err:      fmt.Errorf("failed to decode response body, %w", err),
1153			Snapshot: snapshot.Bytes(),
1154		}
1155		return err
1156	}
1157
1158	errorBody.Seek(0, io.SeekStart)
1159	if len(code) != 0 {
1160		errorCode = restjson.SanitizeErrorCode(code)
1161	}
1162	if len(message) != 0 {
1163		errorMessage = message
1164	}
1165
1166	switch {
1167	case strings.EqualFold("BadRequestException", errorCode):
1168		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1169
1170	case strings.EqualFold("ForbiddenException", errorCode):
1171		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1172
1173	case strings.EqualFold("NotFoundException", errorCode):
1174		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1175
1176	case strings.EqualFold("ServiceFailureException", errorCode):
1177		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1178
1179	case strings.EqualFold("ServiceUnavailableException", errorCode):
1180		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1181
1182	case strings.EqualFold("ThrottledClientException", errorCode):
1183		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1184
1185	case strings.EqualFold("UnauthorizedClientException", errorCode):
1186		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1187
1188	default:
1189		genericError := &smithy.GenericAPIError{
1190			Code:    errorCode,
1191			Message: errorMessage,
1192		}
1193		return genericError
1194
1195	}
1196}
1197
1198func awsRestjson1_deserializeOpDocumentBatchDeletePhoneNumberOutput(v **BatchDeletePhoneNumberOutput, value interface{}) error {
1199	if v == nil {
1200		return fmt.Errorf("unexpected nil of type %T", v)
1201	}
1202	if value == nil {
1203		return nil
1204	}
1205
1206	shape, ok := value.(map[string]interface{})
1207	if !ok {
1208		return fmt.Errorf("unexpected JSON type %v", value)
1209	}
1210
1211	var sv *BatchDeletePhoneNumberOutput
1212	if *v == nil {
1213		sv = &BatchDeletePhoneNumberOutput{}
1214	} else {
1215		sv = *v
1216	}
1217
1218	for key, value := range shape {
1219		switch key {
1220		case "PhoneNumberErrors":
1221			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
1222				return err
1223			}
1224
1225		default:
1226			_, _ = key, value
1227
1228		}
1229	}
1230	*v = sv
1231	return nil
1232}
1233
1234type awsRestjson1_deserializeOpBatchSuspendUser struct {
1235}
1236
1237func (*awsRestjson1_deserializeOpBatchSuspendUser) ID() string {
1238	return "OperationDeserializer"
1239}
1240
1241func (m *awsRestjson1_deserializeOpBatchSuspendUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1242	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1243) {
1244	out, metadata, err = next.HandleDeserialize(ctx, in)
1245	if err != nil {
1246		return out, metadata, err
1247	}
1248
1249	response, ok := out.RawResponse.(*smithyhttp.Response)
1250	if !ok {
1251		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1252	}
1253
1254	if response.StatusCode < 200 || response.StatusCode >= 300 {
1255		return out, metadata, awsRestjson1_deserializeOpErrorBatchSuspendUser(response, &metadata)
1256	}
1257	output := &BatchSuspendUserOutput{}
1258	out.Result = output
1259
1260	var buff [1024]byte
1261	ringBuffer := smithyio.NewRingBuffer(buff[:])
1262
1263	body := io.TeeReader(response.Body, ringBuffer)
1264
1265	decoder := json.NewDecoder(body)
1266	decoder.UseNumber()
1267	var shape interface{}
1268	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1269		var snapshot bytes.Buffer
1270		io.Copy(&snapshot, ringBuffer)
1271		err = &smithy.DeserializationError{
1272			Err:      fmt.Errorf("failed to decode response body, %w", err),
1273			Snapshot: snapshot.Bytes(),
1274		}
1275		return out, metadata, err
1276	}
1277
1278	err = awsRestjson1_deserializeOpDocumentBatchSuspendUserOutput(&output, shape)
1279	if err != nil {
1280		var snapshot bytes.Buffer
1281		io.Copy(&snapshot, ringBuffer)
1282		return out, metadata, &smithy.DeserializationError{
1283			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1284			Snapshot: snapshot.Bytes(),
1285		}
1286	}
1287
1288	return out, metadata, err
1289}
1290
1291func awsRestjson1_deserializeOpErrorBatchSuspendUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1292	var errorBuffer bytes.Buffer
1293	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1294		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1295	}
1296	errorBody := bytes.NewReader(errorBuffer.Bytes())
1297
1298	errorCode := "UnknownError"
1299	errorMessage := errorCode
1300
1301	code := response.Header.Get("X-Amzn-ErrorType")
1302	if len(code) != 0 {
1303		errorCode = restjson.SanitizeErrorCode(code)
1304	}
1305
1306	var buff [1024]byte
1307	ringBuffer := smithyio.NewRingBuffer(buff[:])
1308
1309	body := io.TeeReader(errorBody, ringBuffer)
1310	decoder := json.NewDecoder(body)
1311	decoder.UseNumber()
1312	code, message, err := restjson.GetErrorInfo(decoder)
1313	if err != nil {
1314		var snapshot bytes.Buffer
1315		io.Copy(&snapshot, ringBuffer)
1316		err = &smithy.DeserializationError{
1317			Err:      fmt.Errorf("failed to decode response body, %w", err),
1318			Snapshot: snapshot.Bytes(),
1319		}
1320		return err
1321	}
1322
1323	errorBody.Seek(0, io.SeekStart)
1324	if len(code) != 0 {
1325		errorCode = restjson.SanitizeErrorCode(code)
1326	}
1327	if len(message) != 0 {
1328		errorMessage = message
1329	}
1330
1331	switch {
1332	case strings.EqualFold("BadRequestException", errorCode):
1333		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1334
1335	case strings.EqualFold("ForbiddenException", errorCode):
1336		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1337
1338	case strings.EqualFold("NotFoundException", errorCode):
1339		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1340
1341	case strings.EqualFold("ServiceFailureException", errorCode):
1342		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1343
1344	case strings.EqualFold("ServiceUnavailableException", errorCode):
1345		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1346
1347	case strings.EqualFold("ThrottledClientException", errorCode):
1348		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1349
1350	case strings.EqualFold("UnauthorizedClientException", errorCode):
1351		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1352
1353	default:
1354		genericError := &smithy.GenericAPIError{
1355			Code:    errorCode,
1356			Message: errorMessage,
1357		}
1358		return genericError
1359
1360	}
1361}
1362
1363func awsRestjson1_deserializeOpDocumentBatchSuspendUserOutput(v **BatchSuspendUserOutput, value interface{}) error {
1364	if v == nil {
1365		return fmt.Errorf("unexpected nil of type %T", v)
1366	}
1367	if value == nil {
1368		return nil
1369	}
1370
1371	shape, ok := value.(map[string]interface{})
1372	if !ok {
1373		return fmt.Errorf("unexpected JSON type %v", value)
1374	}
1375
1376	var sv *BatchSuspendUserOutput
1377	if *v == nil {
1378		sv = &BatchSuspendUserOutput{}
1379	} else {
1380		sv = *v
1381	}
1382
1383	for key, value := range shape {
1384		switch key {
1385		case "UserErrors":
1386			if err := awsRestjson1_deserializeDocumentUserErrorList(&sv.UserErrors, value); err != nil {
1387				return err
1388			}
1389
1390		default:
1391			_, _ = key, value
1392
1393		}
1394	}
1395	*v = sv
1396	return nil
1397}
1398
1399type awsRestjson1_deserializeOpBatchUnsuspendUser struct {
1400}
1401
1402func (*awsRestjson1_deserializeOpBatchUnsuspendUser) ID() string {
1403	return "OperationDeserializer"
1404}
1405
1406func (m *awsRestjson1_deserializeOpBatchUnsuspendUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1407	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1408) {
1409	out, metadata, err = next.HandleDeserialize(ctx, in)
1410	if err != nil {
1411		return out, metadata, err
1412	}
1413
1414	response, ok := out.RawResponse.(*smithyhttp.Response)
1415	if !ok {
1416		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1417	}
1418
1419	if response.StatusCode < 200 || response.StatusCode >= 300 {
1420		return out, metadata, awsRestjson1_deserializeOpErrorBatchUnsuspendUser(response, &metadata)
1421	}
1422	output := &BatchUnsuspendUserOutput{}
1423	out.Result = output
1424
1425	var buff [1024]byte
1426	ringBuffer := smithyio.NewRingBuffer(buff[:])
1427
1428	body := io.TeeReader(response.Body, ringBuffer)
1429
1430	decoder := json.NewDecoder(body)
1431	decoder.UseNumber()
1432	var shape interface{}
1433	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1434		var snapshot bytes.Buffer
1435		io.Copy(&snapshot, ringBuffer)
1436		err = &smithy.DeserializationError{
1437			Err:      fmt.Errorf("failed to decode response body, %w", err),
1438			Snapshot: snapshot.Bytes(),
1439		}
1440		return out, metadata, err
1441	}
1442
1443	err = awsRestjson1_deserializeOpDocumentBatchUnsuspendUserOutput(&output, shape)
1444	if err != nil {
1445		var snapshot bytes.Buffer
1446		io.Copy(&snapshot, ringBuffer)
1447		return out, metadata, &smithy.DeserializationError{
1448			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1449			Snapshot: snapshot.Bytes(),
1450		}
1451	}
1452
1453	return out, metadata, err
1454}
1455
1456func awsRestjson1_deserializeOpErrorBatchUnsuspendUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1457	var errorBuffer bytes.Buffer
1458	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1459		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1460	}
1461	errorBody := bytes.NewReader(errorBuffer.Bytes())
1462
1463	errorCode := "UnknownError"
1464	errorMessage := errorCode
1465
1466	code := response.Header.Get("X-Amzn-ErrorType")
1467	if len(code) != 0 {
1468		errorCode = restjson.SanitizeErrorCode(code)
1469	}
1470
1471	var buff [1024]byte
1472	ringBuffer := smithyio.NewRingBuffer(buff[:])
1473
1474	body := io.TeeReader(errorBody, ringBuffer)
1475	decoder := json.NewDecoder(body)
1476	decoder.UseNumber()
1477	code, message, err := restjson.GetErrorInfo(decoder)
1478	if err != nil {
1479		var snapshot bytes.Buffer
1480		io.Copy(&snapshot, ringBuffer)
1481		err = &smithy.DeserializationError{
1482			Err:      fmt.Errorf("failed to decode response body, %w", err),
1483			Snapshot: snapshot.Bytes(),
1484		}
1485		return err
1486	}
1487
1488	errorBody.Seek(0, io.SeekStart)
1489	if len(code) != 0 {
1490		errorCode = restjson.SanitizeErrorCode(code)
1491	}
1492	if len(message) != 0 {
1493		errorMessage = message
1494	}
1495
1496	switch {
1497	case strings.EqualFold("BadRequestException", errorCode):
1498		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1499
1500	case strings.EqualFold("ForbiddenException", errorCode):
1501		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1502
1503	case strings.EqualFold("NotFoundException", errorCode):
1504		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1505
1506	case strings.EqualFold("ServiceFailureException", errorCode):
1507		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1508
1509	case strings.EqualFold("ServiceUnavailableException", errorCode):
1510		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1511
1512	case strings.EqualFold("ThrottledClientException", errorCode):
1513		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1514
1515	case strings.EqualFold("UnauthorizedClientException", errorCode):
1516		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1517
1518	default:
1519		genericError := &smithy.GenericAPIError{
1520			Code:    errorCode,
1521			Message: errorMessage,
1522		}
1523		return genericError
1524
1525	}
1526}
1527
1528func awsRestjson1_deserializeOpDocumentBatchUnsuspendUserOutput(v **BatchUnsuspendUserOutput, value interface{}) error {
1529	if v == nil {
1530		return fmt.Errorf("unexpected nil of type %T", v)
1531	}
1532	if value == nil {
1533		return nil
1534	}
1535
1536	shape, ok := value.(map[string]interface{})
1537	if !ok {
1538		return fmt.Errorf("unexpected JSON type %v", value)
1539	}
1540
1541	var sv *BatchUnsuspendUserOutput
1542	if *v == nil {
1543		sv = &BatchUnsuspendUserOutput{}
1544	} else {
1545		sv = *v
1546	}
1547
1548	for key, value := range shape {
1549		switch key {
1550		case "UserErrors":
1551			if err := awsRestjson1_deserializeDocumentUserErrorList(&sv.UserErrors, value); err != nil {
1552				return err
1553			}
1554
1555		default:
1556			_, _ = key, value
1557
1558		}
1559	}
1560	*v = sv
1561	return nil
1562}
1563
1564type awsRestjson1_deserializeOpBatchUpdatePhoneNumber struct {
1565}
1566
1567func (*awsRestjson1_deserializeOpBatchUpdatePhoneNumber) ID() string {
1568	return "OperationDeserializer"
1569}
1570
1571func (m *awsRestjson1_deserializeOpBatchUpdatePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1572	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1573) {
1574	out, metadata, err = next.HandleDeserialize(ctx, in)
1575	if err != nil {
1576		return out, metadata, err
1577	}
1578
1579	response, ok := out.RawResponse.(*smithyhttp.Response)
1580	if !ok {
1581		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1582	}
1583
1584	if response.StatusCode < 200 || response.StatusCode >= 300 {
1585		return out, metadata, awsRestjson1_deserializeOpErrorBatchUpdatePhoneNumber(response, &metadata)
1586	}
1587	output := &BatchUpdatePhoneNumberOutput{}
1588	out.Result = output
1589
1590	var buff [1024]byte
1591	ringBuffer := smithyio.NewRingBuffer(buff[:])
1592
1593	body := io.TeeReader(response.Body, ringBuffer)
1594
1595	decoder := json.NewDecoder(body)
1596	decoder.UseNumber()
1597	var shape interface{}
1598	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1599		var snapshot bytes.Buffer
1600		io.Copy(&snapshot, ringBuffer)
1601		err = &smithy.DeserializationError{
1602			Err:      fmt.Errorf("failed to decode response body, %w", err),
1603			Snapshot: snapshot.Bytes(),
1604		}
1605		return out, metadata, err
1606	}
1607
1608	err = awsRestjson1_deserializeOpDocumentBatchUpdatePhoneNumberOutput(&output, shape)
1609	if err != nil {
1610		var snapshot bytes.Buffer
1611		io.Copy(&snapshot, ringBuffer)
1612		return out, metadata, &smithy.DeserializationError{
1613			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1614			Snapshot: snapshot.Bytes(),
1615		}
1616	}
1617
1618	return out, metadata, err
1619}
1620
1621func awsRestjson1_deserializeOpErrorBatchUpdatePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1622	var errorBuffer bytes.Buffer
1623	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1624		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1625	}
1626	errorBody := bytes.NewReader(errorBuffer.Bytes())
1627
1628	errorCode := "UnknownError"
1629	errorMessage := errorCode
1630
1631	code := response.Header.Get("X-Amzn-ErrorType")
1632	if len(code) != 0 {
1633		errorCode = restjson.SanitizeErrorCode(code)
1634	}
1635
1636	var buff [1024]byte
1637	ringBuffer := smithyio.NewRingBuffer(buff[:])
1638
1639	body := io.TeeReader(errorBody, ringBuffer)
1640	decoder := json.NewDecoder(body)
1641	decoder.UseNumber()
1642	code, message, err := restjson.GetErrorInfo(decoder)
1643	if err != nil {
1644		var snapshot bytes.Buffer
1645		io.Copy(&snapshot, ringBuffer)
1646		err = &smithy.DeserializationError{
1647			Err:      fmt.Errorf("failed to decode response body, %w", err),
1648			Snapshot: snapshot.Bytes(),
1649		}
1650		return err
1651	}
1652
1653	errorBody.Seek(0, io.SeekStart)
1654	if len(code) != 0 {
1655		errorCode = restjson.SanitizeErrorCode(code)
1656	}
1657	if len(message) != 0 {
1658		errorMessage = message
1659	}
1660
1661	switch {
1662	case strings.EqualFold("BadRequestException", errorCode):
1663		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1664
1665	case strings.EqualFold("ForbiddenException", errorCode):
1666		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1667
1668	case strings.EqualFold("NotFoundException", errorCode):
1669		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1670
1671	case strings.EqualFold("ServiceFailureException", errorCode):
1672		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1673
1674	case strings.EqualFold("ServiceUnavailableException", errorCode):
1675		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1676
1677	case strings.EqualFold("ThrottledClientException", errorCode):
1678		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1679
1680	case strings.EqualFold("UnauthorizedClientException", errorCode):
1681		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1682
1683	default:
1684		genericError := &smithy.GenericAPIError{
1685			Code:    errorCode,
1686			Message: errorMessage,
1687		}
1688		return genericError
1689
1690	}
1691}
1692
1693func awsRestjson1_deserializeOpDocumentBatchUpdatePhoneNumberOutput(v **BatchUpdatePhoneNumberOutput, value interface{}) error {
1694	if v == nil {
1695		return fmt.Errorf("unexpected nil of type %T", v)
1696	}
1697	if value == nil {
1698		return nil
1699	}
1700
1701	shape, ok := value.(map[string]interface{})
1702	if !ok {
1703		return fmt.Errorf("unexpected JSON type %v", value)
1704	}
1705
1706	var sv *BatchUpdatePhoneNumberOutput
1707	if *v == nil {
1708		sv = &BatchUpdatePhoneNumberOutput{}
1709	} else {
1710		sv = *v
1711	}
1712
1713	for key, value := range shape {
1714		switch key {
1715		case "PhoneNumberErrors":
1716			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
1717				return err
1718			}
1719
1720		default:
1721			_, _ = key, value
1722
1723		}
1724	}
1725	*v = sv
1726	return nil
1727}
1728
1729type awsRestjson1_deserializeOpBatchUpdateUser struct {
1730}
1731
1732func (*awsRestjson1_deserializeOpBatchUpdateUser) ID() string {
1733	return "OperationDeserializer"
1734}
1735
1736func (m *awsRestjson1_deserializeOpBatchUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1737	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1738) {
1739	out, metadata, err = next.HandleDeserialize(ctx, in)
1740	if err != nil {
1741		return out, metadata, err
1742	}
1743
1744	response, ok := out.RawResponse.(*smithyhttp.Response)
1745	if !ok {
1746		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1747	}
1748
1749	if response.StatusCode < 200 || response.StatusCode >= 300 {
1750		return out, metadata, awsRestjson1_deserializeOpErrorBatchUpdateUser(response, &metadata)
1751	}
1752	output := &BatchUpdateUserOutput{}
1753	out.Result = output
1754
1755	var buff [1024]byte
1756	ringBuffer := smithyio.NewRingBuffer(buff[:])
1757
1758	body := io.TeeReader(response.Body, ringBuffer)
1759
1760	decoder := json.NewDecoder(body)
1761	decoder.UseNumber()
1762	var shape interface{}
1763	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1764		var snapshot bytes.Buffer
1765		io.Copy(&snapshot, ringBuffer)
1766		err = &smithy.DeserializationError{
1767			Err:      fmt.Errorf("failed to decode response body, %w", err),
1768			Snapshot: snapshot.Bytes(),
1769		}
1770		return out, metadata, err
1771	}
1772
1773	err = awsRestjson1_deserializeOpDocumentBatchUpdateUserOutput(&output, shape)
1774	if err != nil {
1775		var snapshot bytes.Buffer
1776		io.Copy(&snapshot, ringBuffer)
1777		return out, metadata, &smithy.DeserializationError{
1778			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1779			Snapshot: snapshot.Bytes(),
1780		}
1781	}
1782
1783	return out, metadata, err
1784}
1785
1786func awsRestjson1_deserializeOpErrorBatchUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1787	var errorBuffer bytes.Buffer
1788	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1789		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1790	}
1791	errorBody := bytes.NewReader(errorBuffer.Bytes())
1792
1793	errorCode := "UnknownError"
1794	errorMessage := errorCode
1795
1796	code := response.Header.Get("X-Amzn-ErrorType")
1797	if len(code) != 0 {
1798		errorCode = restjson.SanitizeErrorCode(code)
1799	}
1800
1801	var buff [1024]byte
1802	ringBuffer := smithyio.NewRingBuffer(buff[:])
1803
1804	body := io.TeeReader(errorBody, ringBuffer)
1805	decoder := json.NewDecoder(body)
1806	decoder.UseNumber()
1807	code, message, err := restjson.GetErrorInfo(decoder)
1808	if err != nil {
1809		var snapshot bytes.Buffer
1810		io.Copy(&snapshot, ringBuffer)
1811		err = &smithy.DeserializationError{
1812			Err:      fmt.Errorf("failed to decode response body, %w", err),
1813			Snapshot: snapshot.Bytes(),
1814		}
1815		return err
1816	}
1817
1818	errorBody.Seek(0, io.SeekStart)
1819	if len(code) != 0 {
1820		errorCode = restjson.SanitizeErrorCode(code)
1821	}
1822	if len(message) != 0 {
1823		errorMessage = message
1824	}
1825
1826	switch {
1827	case strings.EqualFold("BadRequestException", errorCode):
1828		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1829
1830	case strings.EqualFold("ForbiddenException", errorCode):
1831		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1832
1833	case strings.EqualFold("NotFoundException", errorCode):
1834		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1835
1836	case strings.EqualFold("ServiceFailureException", errorCode):
1837		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1838
1839	case strings.EqualFold("ServiceUnavailableException", errorCode):
1840		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1841
1842	case strings.EqualFold("ThrottledClientException", errorCode):
1843		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1844
1845	case strings.EqualFold("UnauthorizedClientException", errorCode):
1846		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1847
1848	default:
1849		genericError := &smithy.GenericAPIError{
1850			Code:    errorCode,
1851			Message: errorMessage,
1852		}
1853		return genericError
1854
1855	}
1856}
1857
1858func awsRestjson1_deserializeOpDocumentBatchUpdateUserOutput(v **BatchUpdateUserOutput, value interface{}) error {
1859	if v == nil {
1860		return fmt.Errorf("unexpected nil of type %T", v)
1861	}
1862	if value == nil {
1863		return nil
1864	}
1865
1866	shape, ok := value.(map[string]interface{})
1867	if !ok {
1868		return fmt.Errorf("unexpected JSON type %v", value)
1869	}
1870
1871	var sv *BatchUpdateUserOutput
1872	if *v == nil {
1873		sv = &BatchUpdateUserOutput{}
1874	} else {
1875		sv = *v
1876	}
1877
1878	for key, value := range shape {
1879		switch key {
1880		case "UserErrors":
1881			if err := awsRestjson1_deserializeDocumentUserErrorList(&sv.UserErrors, value); err != nil {
1882				return err
1883			}
1884
1885		default:
1886			_, _ = key, value
1887
1888		}
1889	}
1890	*v = sv
1891	return nil
1892}
1893
1894type awsRestjson1_deserializeOpCreateAccount struct {
1895}
1896
1897func (*awsRestjson1_deserializeOpCreateAccount) ID() string {
1898	return "OperationDeserializer"
1899}
1900
1901func (m *awsRestjson1_deserializeOpCreateAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1902	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1903) {
1904	out, metadata, err = next.HandleDeserialize(ctx, in)
1905	if err != nil {
1906		return out, metadata, err
1907	}
1908
1909	response, ok := out.RawResponse.(*smithyhttp.Response)
1910	if !ok {
1911		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1912	}
1913
1914	if response.StatusCode < 200 || response.StatusCode >= 300 {
1915		return out, metadata, awsRestjson1_deserializeOpErrorCreateAccount(response, &metadata)
1916	}
1917	output := &CreateAccountOutput{}
1918	out.Result = output
1919
1920	var buff [1024]byte
1921	ringBuffer := smithyio.NewRingBuffer(buff[:])
1922
1923	body := io.TeeReader(response.Body, ringBuffer)
1924
1925	decoder := json.NewDecoder(body)
1926	decoder.UseNumber()
1927	var shape interface{}
1928	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1929		var snapshot bytes.Buffer
1930		io.Copy(&snapshot, ringBuffer)
1931		err = &smithy.DeserializationError{
1932			Err:      fmt.Errorf("failed to decode response body, %w", err),
1933			Snapshot: snapshot.Bytes(),
1934		}
1935		return out, metadata, err
1936	}
1937
1938	err = awsRestjson1_deserializeOpDocumentCreateAccountOutput(&output, shape)
1939	if err != nil {
1940		var snapshot bytes.Buffer
1941		io.Copy(&snapshot, ringBuffer)
1942		return out, metadata, &smithy.DeserializationError{
1943			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1944			Snapshot: snapshot.Bytes(),
1945		}
1946	}
1947
1948	return out, metadata, err
1949}
1950
1951func awsRestjson1_deserializeOpErrorCreateAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1952	var errorBuffer bytes.Buffer
1953	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1954		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1955	}
1956	errorBody := bytes.NewReader(errorBuffer.Bytes())
1957
1958	errorCode := "UnknownError"
1959	errorMessage := errorCode
1960
1961	code := response.Header.Get("X-Amzn-ErrorType")
1962	if len(code) != 0 {
1963		errorCode = restjson.SanitizeErrorCode(code)
1964	}
1965
1966	var buff [1024]byte
1967	ringBuffer := smithyio.NewRingBuffer(buff[:])
1968
1969	body := io.TeeReader(errorBody, ringBuffer)
1970	decoder := json.NewDecoder(body)
1971	decoder.UseNumber()
1972	code, message, err := restjson.GetErrorInfo(decoder)
1973	if err != nil {
1974		var snapshot bytes.Buffer
1975		io.Copy(&snapshot, ringBuffer)
1976		err = &smithy.DeserializationError{
1977			Err:      fmt.Errorf("failed to decode response body, %w", err),
1978			Snapshot: snapshot.Bytes(),
1979		}
1980		return err
1981	}
1982
1983	errorBody.Seek(0, io.SeekStart)
1984	if len(code) != 0 {
1985		errorCode = restjson.SanitizeErrorCode(code)
1986	}
1987	if len(message) != 0 {
1988		errorMessage = message
1989	}
1990
1991	switch {
1992	case strings.EqualFold("BadRequestException", errorCode):
1993		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1994
1995	case strings.EqualFold("ForbiddenException", errorCode):
1996		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1997
1998	case strings.EqualFold("NotFoundException", errorCode):
1999		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
2000
2001	case strings.EqualFold("ServiceFailureException", errorCode):
2002		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2003
2004	case strings.EqualFold("ServiceUnavailableException", errorCode):
2005		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2006
2007	case strings.EqualFold("ThrottledClientException", errorCode):
2008		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2009
2010	case strings.EqualFold("UnauthorizedClientException", errorCode):
2011		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2012
2013	default:
2014		genericError := &smithy.GenericAPIError{
2015			Code:    errorCode,
2016			Message: errorMessage,
2017		}
2018		return genericError
2019
2020	}
2021}
2022
2023func awsRestjson1_deserializeOpDocumentCreateAccountOutput(v **CreateAccountOutput, value interface{}) error {
2024	if v == nil {
2025		return fmt.Errorf("unexpected nil of type %T", v)
2026	}
2027	if value == nil {
2028		return nil
2029	}
2030
2031	shape, ok := value.(map[string]interface{})
2032	if !ok {
2033		return fmt.Errorf("unexpected JSON type %v", value)
2034	}
2035
2036	var sv *CreateAccountOutput
2037	if *v == nil {
2038		sv = &CreateAccountOutput{}
2039	} else {
2040		sv = *v
2041	}
2042
2043	for key, value := range shape {
2044		switch key {
2045		case "Account":
2046			if err := awsRestjson1_deserializeDocumentAccount(&sv.Account, value); err != nil {
2047				return err
2048			}
2049
2050		default:
2051			_, _ = key, value
2052
2053		}
2054	}
2055	*v = sv
2056	return nil
2057}
2058
2059type awsRestjson1_deserializeOpCreateAppInstance struct {
2060}
2061
2062func (*awsRestjson1_deserializeOpCreateAppInstance) ID() string {
2063	return "OperationDeserializer"
2064}
2065
2066func (m *awsRestjson1_deserializeOpCreateAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2067	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2068) {
2069	out, metadata, err = next.HandleDeserialize(ctx, in)
2070	if err != nil {
2071		return out, metadata, err
2072	}
2073
2074	response, ok := out.RawResponse.(*smithyhttp.Response)
2075	if !ok {
2076		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2077	}
2078
2079	if response.StatusCode < 200 || response.StatusCode >= 300 {
2080		return out, metadata, awsRestjson1_deserializeOpErrorCreateAppInstance(response, &metadata)
2081	}
2082	output := &CreateAppInstanceOutput{}
2083	out.Result = output
2084
2085	var buff [1024]byte
2086	ringBuffer := smithyio.NewRingBuffer(buff[:])
2087
2088	body := io.TeeReader(response.Body, ringBuffer)
2089
2090	decoder := json.NewDecoder(body)
2091	decoder.UseNumber()
2092	var shape interface{}
2093	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2094		var snapshot bytes.Buffer
2095		io.Copy(&snapshot, ringBuffer)
2096		err = &smithy.DeserializationError{
2097			Err:      fmt.Errorf("failed to decode response body, %w", err),
2098			Snapshot: snapshot.Bytes(),
2099		}
2100		return out, metadata, err
2101	}
2102
2103	err = awsRestjson1_deserializeOpDocumentCreateAppInstanceOutput(&output, shape)
2104	if err != nil {
2105		var snapshot bytes.Buffer
2106		io.Copy(&snapshot, ringBuffer)
2107		return out, metadata, &smithy.DeserializationError{
2108			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2109			Snapshot: snapshot.Bytes(),
2110		}
2111	}
2112
2113	return out, metadata, err
2114}
2115
2116func awsRestjson1_deserializeOpErrorCreateAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2117	var errorBuffer bytes.Buffer
2118	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2119		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2120	}
2121	errorBody := bytes.NewReader(errorBuffer.Bytes())
2122
2123	errorCode := "UnknownError"
2124	errorMessage := errorCode
2125
2126	code := response.Header.Get("X-Amzn-ErrorType")
2127	if len(code) != 0 {
2128		errorCode = restjson.SanitizeErrorCode(code)
2129	}
2130
2131	var buff [1024]byte
2132	ringBuffer := smithyio.NewRingBuffer(buff[:])
2133
2134	body := io.TeeReader(errorBody, ringBuffer)
2135	decoder := json.NewDecoder(body)
2136	decoder.UseNumber()
2137	code, message, err := restjson.GetErrorInfo(decoder)
2138	if err != nil {
2139		var snapshot bytes.Buffer
2140		io.Copy(&snapshot, ringBuffer)
2141		err = &smithy.DeserializationError{
2142			Err:      fmt.Errorf("failed to decode response body, %w", err),
2143			Snapshot: snapshot.Bytes(),
2144		}
2145		return err
2146	}
2147
2148	errorBody.Seek(0, io.SeekStart)
2149	if len(code) != 0 {
2150		errorCode = restjson.SanitizeErrorCode(code)
2151	}
2152	if len(message) != 0 {
2153		errorMessage = message
2154	}
2155
2156	switch {
2157	case strings.EqualFold("BadRequestException", errorCode):
2158		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2159
2160	case strings.EqualFold("ConflictException", errorCode):
2161		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
2162
2163	case strings.EqualFold("ForbiddenException", errorCode):
2164		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2165
2166	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2167		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2168
2169	case strings.EqualFold("ServiceFailureException", errorCode):
2170		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2171
2172	case strings.EqualFold("ServiceUnavailableException", errorCode):
2173		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2174
2175	case strings.EqualFold("ThrottledClientException", errorCode):
2176		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2177
2178	case strings.EqualFold("UnauthorizedClientException", errorCode):
2179		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2180
2181	default:
2182		genericError := &smithy.GenericAPIError{
2183			Code:    errorCode,
2184			Message: errorMessage,
2185		}
2186		return genericError
2187
2188	}
2189}
2190
2191func awsRestjson1_deserializeOpDocumentCreateAppInstanceOutput(v **CreateAppInstanceOutput, value interface{}) error {
2192	if v == nil {
2193		return fmt.Errorf("unexpected nil of type %T", v)
2194	}
2195	if value == nil {
2196		return nil
2197	}
2198
2199	shape, ok := value.(map[string]interface{})
2200	if !ok {
2201		return fmt.Errorf("unexpected JSON type %v", value)
2202	}
2203
2204	var sv *CreateAppInstanceOutput
2205	if *v == nil {
2206		sv = &CreateAppInstanceOutput{}
2207	} else {
2208		sv = *v
2209	}
2210
2211	for key, value := range shape {
2212		switch key {
2213		case "AppInstanceArn":
2214			if value != nil {
2215				jtv, ok := value.(string)
2216				if !ok {
2217					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2218				}
2219				sv.AppInstanceArn = ptr.String(jtv)
2220			}
2221
2222		default:
2223			_, _ = key, value
2224
2225		}
2226	}
2227	*v = sv
2228	return nil
2229}
2230
2231type awsRestjson1_deserializeOpCreateAppInstanceAdmin struct {
2232}
2233
2234func (*awsRestjson1_deserializeOpCreateAppInstanceAdmin) ID() string {
2235	return "OperationDeserializer"
2236}
2237
2238func (m *awsRestjson1_deserializeOpCreateAppInstanceAdmin) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2239	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2240) {
2241	out, metadata, err = next.HandleDeserialize(ctx, in)
2242	if err != nil {
2243		return out, metadata, err
2244	}
2245
2246	response, ok := out.RawResponse.(*smithyhttp.Response)
2247	if !ok {
2248		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2249	}
2250
2251	if response.StatusCode < 200 || response.StatusCode >= 300 {
2252		return out, metadata, awsRestjson1_deserializeOpErrorCreateAppInstanceAdmin(response, &metadata)
2253	}
2254	output := &CreateAppInstanceAdminOutput{}
2255	out.Result = output
2256
2257	var buff [1024]byte
2258	ringBuffer := smithyio.NewRingBuffer(buff[:])
2259
2260	body := io.TeeReader(response.Body, ringBuffer)
2261
2262	decoder := json.NewDecoder(body)
2263	decoder.UseNumber()
2264	var shape interface{}
2265	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2266		var snapshot bytes.Buffer
2267		io.Copy(&snapshot, ringBuffer)
2268		err = &smithy.DeserializationError{
2269			Err:      fmt.Errorf("failed to decode response body, %w", err),
2270			Snapshot: snapshot.Bytes(),
2271		}
2272		return out, metadata, err
2273	}
2274
2275	err = awsRestjson1_deserializeOpDocumentCreateAppInstanceAdminOutput(&output, shape)
2276	if err != nil {
2277		var snapshot bytes.Buffer
2278		io.Copy(&snapshot, ringBuffer)
2279		return out, metadata, &smithy.DeserializationError{
2280			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2281			Snapshot: snapshot.Bytes(),
2282		}
2283	}
2284
2285	return out, metadata, err
2286}
2287
2288func awsRestjson1_deserializeOpErrorCreateAppInstanceAdmin(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2289	var errorBuffer bytes.Buffer
2290	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2291		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2292	}
2293	errorBody := bytes.NewReader(errorBuffer.Bytes())
2294
2295	errorCode := "UnknownError"
2296	errorMessage := errorCode
2297
2298	code := response.Header.Get("X-Amzn-ErrorType")
2299	if len(code) != 0 {
2300		errorCode = restjson.SanitizeErrorCode(code)
2301	}
2302
2303	var buff [1024]byte
2304	ringBuffer := smithyio.NewRingBuffer(buff[:])
2305
2306	body := io.TeeReader(errorBody, ringBuffer)
2307	decoder := json.NewDecoder(body)
2308	decoder.UseNumber()
2309	code, message, err := restjson.GetErrorInfo(decoder)
2310	if err != nil {
2311		var snapshot bytes.Buffer
2312		io.Copy(&snapshot, ringBuffer)
2313		err = &smithy.DeserializationError{
2314			Err:      fmt.Errorf("failed to decode response body, %w", err),
2315			Snapshot: snapshot.Bytes(),
2316		}
2317		return err
2318	}
2319
2320	errorBody.Seek(0, io.SeekStart)
2321	if len(code) != 0 {
2322		errorCode = restjson.SanitizeErrorCode(code)
2323	}
2324	if len(message) != 0 {
2325		errorMessage = message
2326	}
2327
2328	switch {
2329	case strings.EqualFold("BadRequestException", errorCode):
2330		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2331
2332	case strings.EqualFold("ConflictException", errorCode):
2333		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
2334
2335	case strings.EqualFold("ForbiddenException", errorCode):
2336		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2337
2338	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2339		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2340
2341	case strings.EqualFold("ServiceFailureException", errorCode):
2342		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2343
2344	case strings.EqualFold("ServiceUnavailableException", errorCode):
2345		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2346
2347	case strings.EqualFold("ThrottledClientException", errorCode):
2348		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2349
2350	case strings.EqualFold("UnauthorizedClientException", errorCode):
2351		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2352
2353	default:
2354		genericError := &smithy.GenericAPIError{
2355			Code:    errorCode,
2356			Message: errorMessage,
2357		}
2358		return genericError
2359
2360	}
2361}
2362
2363func awsRestjson1_deserializeOpDocumentCreateAppInstanceAdminOutput(v **CreateAppInstanceAdminOutput, value interface{}) error {
2364	if v == nil {
2365		return fmt.Errorf("unexpected nil of type %T", v)
2366	}
2367	if value == nil {
2368		return nil
2369	}
2370
2371	shape, ok := value.(map[string]interface{})
2372	if !ok {
2373		return fmt.Errorf("unexpected JSON type %v", value)
2374	}
2375
2376	var sv *CreateAppInstanceAdminOutput
2377	if *v == nil {
2378		sv = &CreateAppInstanceAdminOutput{}
2379	} else {
2380		sv = *v
2381	}
2382
2383	for key, value := range shape {
2384		switch key {
2385		case "AppInstanceAdmin":
2386			if err := awsRestjson1_deserializeDocumentIdentity(&sv.AppInstanceAdmin, value); err != nil {
2387				return err
2388			}
2389
2390		case "AppInstanceArn":
2391			if value != nil {
2392				jtv, ok := value.(string)
2393				if !ok {
2394					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2395				}
2396				sv.AppInstanceArn = ptr.String(jtv)
2397			}
2398
2399		default:
2400			_, _ = key, value
2401
2402		}
2403	}
2404	*v = sv
2405	return nil
2406}
2407
2408type awsRestjson1_deserializeOpCreateAppInstanceUser struct {
2409}
2410
2411func (*awsRestjson1_deserializeOpCreateAppInstanceUser) ID() string {
2412	return "OperationDeserializer"
2413}
2414
2415func (m *awsRestjson1_deserializeOpCreateAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2416	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2417) {
2418	out, metadata, err = next.HandleDeserialize(ctx, in)
2419	if err != nil {
2420		return out, metadata, err
2421	}
2422
2423	response, ok := out.RawResponse.(*smithyhttp.Response)
2424	if !ok {
2425		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2426	}
2427
2428	if response.StatusCode < 200 || response.StatusCode >= 300 {
2429		return out, metadata, awsRestjson1_deserializeOpErrorCreateAppInstanceUser(response, &metadata)
2430	}
2431	output := &CreateAppInstanceUserOutput{}
2432	out.Result = output
2433
2434	var buff [1024]byte
2435	ringBuffer := smithyio.NewRingBuffer(buff[:])
2436
2437	body := io.TeeReader(response.Body, ringBuffer)
2438
2439	decoder := json.NewDecoder(body)
2440	decoder.UseNumber()
2441	var shape interface{}
2442	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2443		var snapshot bytes.Buffer
2444		io.Copy(&snapshot, ringBuffer)
2445		err = &smithy.DeserializationError{
2446			Err:      fmt.Errorf("failed to decode response body, %w", err),
2447			Snapshot: snapshot.Bytes(),
2448		}
2449		return out, metadata, err
2450	}
2451
2452	err = awsRestjson1_deserializeOpDocumentCreateAppInstanceUserOutput(&output, shape)
2453	if err != nil {
2454		var snapshot bytes.Buffer
2455		io.Copy(&snapshot, ringBuffer)
2456		return out, metadata, &smithy.DeserializationError{
2457			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2458			Snapshot: snapshot.Bytes(),
2459		}
2460	}
2461
2462	return out, metadata, err
2463}
2464
2465func awsRestjson1_deserializeOpErrorCreateAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2466	var errorBuffer bytes.Buffer
2467	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2468		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2469	}
2470	errorBody := bytes.NewReader(errorBuffer.Bytes())
2471
2472	errorCode := "UnknownError"
2473	errorMessage := errorCode
2474
2475	code := response.Header.Get("X-Amzn-ErrorType")
2476	if len(code) != 0 {
2477		errorCode = restjson.SanitizeErrorCode(code)
2478	}
2479
2480	var buff [1024]byte
2481	ringBuffer := smithyio.NewRingBuffer(buff[:])
2482
2483	body := io.TeeReader(errorBody, ringBuffer)
2484	decoder := json.NewDecoder(body)
2485	decoder.UseNumber()
2486	code, message, err := restjson.GetErrorInfo(decoder)
2487	if err != nil {
2488		var snapshot bytes.Buffer
2489		io.Copy(&snapshot, ringBuffer)
2490		err = &smithy.DeserializationError{
2491			Err:      fmt.Errorf("failed to decode response body, %w", err),
2492			Snapshot: snapshot.Bytes(),
2493		}
2494		return err
2495	}
2496
2497	errorBody.Seek(0, io.SeekStart)
2498	if len(code) != 0 {
2499		errorCode = restjson.SanitizeErrorCode(code)
2500	}
2501	if len(message) != 0 {
2502		errorMessage = message
2503	}
2504
2505	switch {
2506	case strings.EqualFold("BadRequestException", errorCode):
2507		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2508
2509	case strings.EqualFold("ConflictException", errorCode):
2510		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
2511
2512	case strings.EqualFold("ForbiddenException", errorCode):
2513		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2514
2515	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2516		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2517
2518	case strings.EqualFold("ServiceFailureException", errorCode):
2519		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2520
2521	case strings.EqualFold("ServiceUnavailableException", errorCode):
2522		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2523
2524	case strings.EqualFold("ThrottledClientException", errorCode):
2525		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2526
2527	case strings.EqualFold("UnauthorizedClientException", errorCode):
2528		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2529
2530	default:
2531		genericError := &smithy.GenericAPIError{
2532			Code:    errorCode,
2533			Message: errorMessage,
2534		}
2535		return genericError
2536
2537	}
2538}
2539
2540func awsRestjson1_deserializeOpDocumentCreateAppInstanceUserOutput(v **CreateAppInstanceUserOutput, value interface{}) error {
2541	if v == nil {
2542		return fmt.Errorf("unexpected nil of type %T", v)
2543	}
2544	if value == nil {
2545		return nil
2546	}
2547
2548	shape, ok := value.(map[string]interface{})
2549	if !ok {
2550		return fmt.Errorf("unexpected JSON type %v", value)
2551	}
2552
2553	var sv *CreateAppInstanceUserOutput
2554	if *v == nil {
2555		sv = &CreateAppInstanceUserOutput{}
2556	} else {
2557		sv = *v
2558	}
2559
2560	for key, value := range shape {
2561		switch key {
2562		case "AppInstanceUserArn":
2563			if value != nil {
2564				jtv, ok := value.(string)
2565				if !ok {
2566					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2567				}
2568				sv.AppInstanceUserArn = ptr.String(jtv)
2569			}
2570
2571		default:
2572			_, _ = key, value
2573
2574		}
2575	}
2576	*v = sv
2577	return nil
2578}
2579
2580type awsRestjson1_deserializeOpCreateAttendee struct {
2581}
2582
2583func (*awsRestjson1_deserializeOpCreateAttendee) ID() string {
2584	return "OperationDeserializer"
2585}
2586
2587func (m *awsRestjson1_deserializeOpCreateAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2588	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2589) {
2590	out, metadata, err = next.HandleDeserialize(ctx, in)
2591	if err != nil {
2592		return out, metadata, err
2593	}
2594
2595	response, ok := out.RawResponse.(*smithyhttp.Response)
2596	if !ok {
2597		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2598	}
2599
2600	if response.StatusCode < 200 || response.StatusCode >= 300 {
2601		return out, metadata, awsRestjson1_deserializeOpErrorCreateAttendee(response, &metadata)
2602	}
2603	output := &CreateAttendeeOutput{}
2604	out.Result = output
2605
2606	var buff [1024]byte
2607	ringBuffer := smithyio.NewRingBuffer(buff[:])
2608
2609	body := io.TeeReader(response.Body, ringBuffer)
2610
2611	decoder := json.NewDecoder(body)
2612	decoder.UseNumber()
2613	var shape interface{}
2614	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2615		var snapshot bytes.Buffer
2616		io.Copy(&snapshot, ringBuffer)
2617		err = &smithy.DeserializationError{
2618			Err:      fmt.Errorf("failed to decode response body, %w", err),
2619			Snapshot: snapshot.Bytes(),
2620		}
2621		return out, metadata, err
2622	}
2623
2624	err = awsRestjson1_deserializeOpDocumentCreateAttendeeOutput(&output, shape)
2625	if err != nil {
2626		var snapshot bytes.Buffer
2627		io.Copy(&snapshot, ringBuffer)
2628		return out, metadata, &smithy.DeserializationError{
2629			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2630			Snapshot: snapshot.Bytes(),
2631		}
2632	}
2633
2634	return out, metadata, err
2635}
2636
2637func awsRestjson1_deserializeOpErrorCreateAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2638	var errorBuffer bytes.Buffer
2639	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2640		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2641	}
2642	errorBody := bytes.NewReader(errorBuffer.Bytes())
2643
2644	errorCode := "UnknownError"
2645	errorMessage := errorCode
2646
2647	code := response.Header.Get("X-Amzn-ErrorType")
2648	if len(code) != 0 {
2649		errorCode = restjson.SanitizeErrorCode(code)
2650	}
2651
2652	var buff [1024]byte
2653	ringBuffer := smithyio.NewRingBuffer(buff[:])
2654
2655	body := io.TeeReader(errorBody, ringBuffer)
2656	decoder := json.NewDecoder(body)
2657	decoder.UseNumber()
2658	code, message, err := restjson.GetErrorInfo(decoder)
2659	if err != nil {
2660		var snapshot bytes.Buffer
2661		io.Copy(&snapshot, ringBuffer)
2662		err = &smithy.DeserializationError{
2663			Err:      fmt.Errorf("failed to decode response body, %w", err),
2664			Snapshot: snapshot.Bytes(),
2665		}
2666		return err
2667	}
2668
2669	errorBody.Seek(0, io.SeekStart)
2670	if len(code) != 0 {
2671		errorCode = restjson.SanitizeErrorCode(code)
2672	}
2673	if len(message) != 0 {
2674		errorMessage = message
2675	}
2676
2677	switch {
2678	case strings.EqualFold("BadRequestException", errorCode):
2679		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2680
2681	case strings.EqualFold("ForbiddenException", errorCode):
2682		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2683
2684	case strings.EqualFold("NotFoundException", errorCode):
2685		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
2686
2687	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2688		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2689
2690	case strings.EqualFold("ServiceFailureException", errorCode):
2691		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2692
2693	case strings.EqualFold("ServiceUnavailableException", errorCode):
2694		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2695
2696	case strings.EqualFold("ThrottledClientException", errorCode):
2697		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2698
2699	case strings.EqualFold("UnauthorizedClientException", errorCode):
2700		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2701
2702	default:
2703		genericError := &smithy.GenericAPIError{
2704			Code:    errorCode,
2705			Message: errorMessage,
2706		}
2707		return genericError
2708
2709	}
2710}
2711
2712func awsRestjson1_deserializeOpDocumentCreateAttendeeOutput(v **CreateAttendeeOutput, value interface{}) error {
2713	if v == nil {
2714		return fmt.Errorf("unexpected nil of type %T", v)
2715	}
2716	if value == nil {
2717		return nil
2718	}
2719
2720	shape, ok := value.(map[string]interface{})
2721	if !ok {
2722		return fmt.Errorf("unexpected JSON type %v", value)
2723	}
2724
2725	var sv *CreateAttendeeOutput
2726	if *v == nil {
2727		sv = &CreateAttendeeOutput{}
2728	} else {
2729		sv = *v
2730	}
2731
2732	for key, value := range shape {
2733		switch key {
2734		case "Attendee":
2735			if err := awsRestjson1_deserializeDocumentAttendee(&sv.Attendee, value); err != nil {
2736				return err
2737			}
2738
2739		default:
2740			_, _ = key, value
2741
2742		}
2743	}
2744	*v = sv
2745	return nil
2746}
2747
2748type awsRestjson1_deserializeOpCreateBot struct {
2749}
2750
2751func (*awsRestjson1_deserializeOpCreateBot) ID() string {
2752	return "OperationDeserializer"
2753}
2754
2755func (m *awsRestjson1_deserializeOpCreateBot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2756	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2757) {
2758	out, metadata, err = next.HandleDeserialize(ctx, in)
2759	if err != nil {
2760		return out, metadata, err
2761	}
2762
2763	response, ok := out.RawResponse.(*smithyhttp.Response)
2764	if !ok {
2765		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2766	}
2767
2768	if response.StatusCode < 200 || response.StatusCode >= 300 {
2769		return out, metadata, awsRestjson1_deserializeOpErrorCreateBot(response, &metadata)
2770	}
2771	output := &CreateBotOutput{}
2772	out.Result = output
2773
2774	var buff [1024]byte
2775	ringBuffer := smithyio.NewRingBuffer(buff[:])
2776
2777	body := io.TeeReader(response.Body, ringBuffer)
2778
2779	decoder := json.NewDecoder(body)
2780	decoder.UseNumber()
2781	var shape interface{}
2782	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2783		var snapshot bytes.Buffer
2784		io.Copy(&snapshot, ringBuffer)
2785		err = &smithy.DeserializationError{
2786			Err:      fmt.Errorf("failed to decode response body, %w", err),
2787			Snapshot: snapshot.Bytes(),
2788		}
2789		return out, metadata, err
2790	}
2791
2792	err = awsRestjson1_deserializeOpDocumentCreateBotOutput(&output, shape)
2793	if err != nil {
2794		var snapshot bytes.Buffer
2795		io.Copy(&snapshot, ringBuffer)
2796		return out, metadata, &smithy.DeserializationError{
2797			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2798			Snapshot: snapshot.Bytes(),
2799		}
2800	}
2801
2802	return out, metadata, err
2803}
2804
2805func awsRestjson1_deserializeOpErrorCreateBot(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2806	var errorBuffer bytes.Buffer
2807	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2808		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2809	}
2810	errorBody := bytes.NewReader(errorBuffer.Bytes())
2811
2812	errorCode := "UnknownError"
2813	errorMessage := errorCode
2814
2815	code := response.Header.Get("X-Amzn-ErrorType")
2816	if len(code) != 0 {
2817		errorCode = restjson.SanitizeErrorCode(code)
2818	}
2819
2820	var buff [1024]byte
2821	ringBuffer := smithyio.NewRingBuffer(buff[:])
2822
2823	body := io.TeeReader(errorBody, ringBuffer)
2824	decoder := json.NewDecoder(body)
2825	decoder.UseNumber()
2826	code, message, err := restjson.GetErrorInfo(decoder)
2827	if err != nil {
2828		var snapshot bytes.Buffer
2829		io.Copy(&snapshot, ringBuffer)
2830		err = &smithy.DeserializationError{
2831			Err:      fmt.Errorf("failed to decode response body, %w", err),
2832			Snapshot: snapshot.Bytes(),
2833		}
2834		return err
2835	}
2836
2837	errorBody.Seek(0, io.SeekStart)
2838	if len(code) != 0 {
2839		errorCode = restjson.SanitizeErrorCode(code)
2840	}
2841	if len(message) != 0 {
2842		errorMessage = message
2843	}
2844
2845	switch {
2846	case strings.EqualFold("BadRequestException", errorCode):
2847		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2848
2849	case strings.EqualFold("ForbiddenException", errorCode):
2850		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2851
2852	case strings.EqualFold("NotFoundException", errorCode):
2853		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
2854
2855	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2856		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2857
2858	case strings.EqualFold("ServiceFailureException", errorCode):
2859		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2860
2861	case strings.EqualFold("ServiceUnavailableException", errorCode):
2862		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2863
2864	case strings.EqualFold("ThrottledClientException", errorCode):
2865		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2866
2867	case strings.EqualFold("UnauthorizedClientException", errorCode):
2868		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2869
2870	default:
2871		genericError := &smithy.GenericAPIError{
2872			Code:    errorCode,
2873			Message: errorMessage,
2874		}
2875		return genericError
2876
2877	}
2878}
2879
2880func awsRestjson1_deserializeOpDocumentCreateBotOutput(v **CreateBotOutput, value interface{}) error {
2881	if v == nil {
2882		return fmt.Errorf("unexpected nil of type %T", v)
2883	}
2884	if value == nil {
2885		return nil
2886	}
2887
2888	shape, ok := value.(map[string]interface{})
2889	if !ok {
2890		return fmt.Errorf("unexpected JSON type %v", value)
2891	}
2892
2893	var sv *CreateBotOutput
2894	if *v == nil {
2895		sv = &CreateBotOutput{}
2896	} else {
2897		sv = *v
2898	}
2899
2900	for key, value := range shape {
2901		switch key {
2902		case "Bot":
2903			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
2904				return err
2905			}
2906
2907		default:
2908			_, _ = key, value
2909
2910		}
2911	}
2912	*v = sv
2913	return nil
2914}
2915
2916type awsRestjson1_deserializeOpCreateChannel struct {
2917}
2918
2919func (*awsRestjson1_deserializeOpCreateChannel) ID() string {
2920	return "OperationDeserializer"
2921}
2922
2923func (m *awsRestjson1_deserializeOpCreateChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2924	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2925) {
2926	out, metadata, err = next.HandleDeserialize(ctx, in)
2927	if err != nil {
2928		return out, metadata, err
2929	}
2930
2931	response, ok := out.RawResponse.(*smithyhttp.Response)
2932	if !ok {
2933		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2934	}
2935
2936	if response.StatusCode < 200 || response.StatusCode >= 300 {
2937		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannel(response, &metadata)
2938	}
2939	output := &CreateChannelOutput{}
2940	out.Result = output
2941
2942	var buff [1024]byte
2943	ringBuffer := smithyio.NewRingBuffer(buff[:])
2944
2945	body := io.TeeReader(response.Body, ringBuffer)
2946
2947	decoder := json.NewDecoder(body)
2948	decoder.UseNumber()
2949	var shape interface{}
2950	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2951		var snapshot bytes.Buffer
2952		io.Copy(&snapshot, ringBuffer)
2953		err = &smithy.DeserializationError{
2954			Err:      fmt.Errorf("failed to decode response body, %w", err),
2955			Snapshot: snapshot.Bytes(),
2956		}
2957		return out, metadata, err
2958	}
2959
2960	err = awsRestjson1_deserializeOpDocumentCreateChannelOutput(&output, shape)
2961	if err != nil {
2962		var snapshot bytes.Buffer
2963		io.Copy(&snapshot, ringBuffer)
2964		return out, metadata, &smithy.DeserializationError{
2965			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2966			Snapshot: snapshot.Bytes(),
2967		}
2968	}
2969
2970	return out, metadata, err
2971}
2972
2973func awsRestjson1_deserializeOpErrorCreateChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2974	var errorBuffer bytes.Buffer
2975	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2976		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2977	}
2978	errorBody := bytes.NewReader(errorBuffer.Bytes())
2979
2980	errorCode := "UnknownError"
2981	errorMessage := errorCode
2982
2983	code := response.Header.Get("X-Amzn-ErrorType")
2984	if len(code) != 0 {
2985		errorCode = restjson.SanitizeErrorCode(code)
2986	}
2987
2988	var buff [1024]byte
2989	ringBuffer := smithyio.NewRingBuffer(buff[:])
2990
2991	body := io.TeeReader(errorBody, ringBuffer)
2992	decoder := json.NewDecoder(body)
2993	decoder.UseNumber()
2994	code, message, err := restjson.GetErrorInfo(decoder)
2995	if err != nil {
2996		var snapshot bytes.Buffer
2997		io.Copy(&snapshot, ringBuffer)
2998		err = &smithy.DeserializationError{
2999			Err:      fmt.Errorf("failed to decode response body, %w", err),
3000			Snapshot: snapshot.Bytes(),
3001		}
3002		return err
3003	}
3004
3005	errorBody.Seek(0, io.SeekStart)
3006	if len(code) != 0 {
3007		errorCode = restjson.SanitizeErrorCode(code)
3008	}
3009	if len(message) != 0 {
3010		errorMessage = message
3011	}
3012
3013	switch {
3014	case strings.EqualFold("BadRequestException", errorCode):
3015		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3016
3017	case strings.EqualFold("ConflictException", errorCode):
3018		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3019
3020	case strings.EqualFold("ForbiddenException", errorCode):
3021		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3022
3023	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3024		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3025
3026	case strings.EqualFold("ServiceFailureException", errorCode):
3027		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3028
3029	case strings.EqualFold("ServiceUnavailableException", errorCode):
3030		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3031
3032	case strings.EqualFold("ThrottledClientException", errorCode):
3033		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3034
3035	case strings.EqualFold("UnauthorizedClientException", errorCode):
3036		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3037
3038	default:
3039		genericError := &smithy.GenericAPIError{
3040			Code:    errorCode,
3041			Message: errorMessage,
3042		}
3043		return genericError
3044
3045	}
3046}
3047
3048func awsRestjson1_deserializeOpDocumentCreateChannelOutput(v **CreateChannelOutput, value interface{}) error {
3049	if v == nil {
3050		return fmt.Errorf("unexpected nil of type %T", v)
3051	}
3052	if value == nil {
3053		return nil
3054	}
3055
3056	shape, ok := value.(map[string]interface{})
3057	if !ok {
3058		return fmt.Errorf("unexpected JSON type %v", value)
3059	}
3060
3061	var sv *CreateChannelOutput
3062	if *v == nil {
3063		sv = &CreateChannelOutput{}
3064	} else {
3065		sv = *v
3066	}
3067
3068	for key, value := range shape {
3069		switch key {
3070		case "ChannelArn":
3071			if value != nil {
3072				jtv, ok := value.(string)
3073				if !ok {
3074					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3075				}
3076				sv.ChannelArn = ptr.String(jtv)
3077			}
3078
3079		default:
3080			_, _ = key, value
3081
3082		}
3083	}
3084	*v = sv
3085	return nil
3086}
3087
3088type awsRestjson1_deserializeOpCreateChannelBan struct {
3089}
3090
3091func (*awsRestjson1_deserializeOpCreateChannelBan) ID() string {
3092	return "OperationDeserializer"
3093}
3094
3095func (m *awsRestjson1_deserializeOpCreateChannelBan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3096	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3097) {
3098	out, metadata, err = next.HandleDeserialize(ctx, in)
3099	if err != nil {
3100		return out, metadata, err
3101	}
3102
3103	response, ok := out.RawResponse.(*smithyhttp.Response)
3104	if !ok {
3105		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3106	}
3107
3108	if response.StatusCode < 200 || response.StatusCode >= 300 {
3109		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannelBan(response, &metadata)
3110	}
3111	output := &CreateChannelBanOutput{}
3112	out.Result = output
3113
3114	var buff [1024]byte
3115	ringBuffer := smithyio.NewRingBuffer(buff[:])
3116
3117	body := io.TeeReader(response.Body, ringBuffer)
3118
3119	decoder := json.NewDecoder(body)
3120	decoder.UseNumber()
3121	var shape interface{}
3122	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3123		var snapshot bytes.Buffer
3124		io.Copy(&snapshot, ringBuffer)
3125		err = &smithy.DeserializationError{
3126			Err:      fmt.Errorf("failed to decode response body, %w", err),
3127			Snapshot: snapshot.Bytes(),
3128		}
3129		return out, metadata, err
3130	}
3131
3132	err = awsRestjson1_deserializeOpDocumentCreateChannelBanOutput(&output, shape)
3133	if err != nil {
3134		var snapshot bytes.Buffer
3135		io.Copy(&snapshot, ringBuffer)
3136		return out, metadata, &smithy.DeserializationError{
3137			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3138			Snapshot: snapshot.Bytes(),
3139		}
3140	}
3141
3142	return out, metadata, err
3143}
3144
3145func awsRestjson1_deserializeOpErrorCreateChannelBan(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3146	var errorBuffer bytes.Buffer
3147	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3148		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3149	}
3150	errorBody := bytes.NewReader(errorBuffer.Bytes())
3151
3152	errorCode := "UnknownError"
3153	errorMessage := errorCode
3154
3155	code := response.Header.Get("X-Amzn-ErrorType")
3156	if len(code) != 0 {
3157		errorCode = restjson.SanitizeErrorCode(code)
3158	}
3159
3160	var buff [1024]byte
3161	ringBuffer := smithyio.NewRingBuffer(buff[:])
3162
3163	body := io.TeeReader(errorBody, ringBuffer)
3164	decoder := json.NewDecoder(body)
3165	decoder.UseNumber()
3166	code, message, err := restjson.GetErrorInfo(decoder)
3167	if err != nil {
3168		var snapshot bytes.Buffer
3169		io.Copy(&snapshot, ringBuffer)
3170		err = &smithy.DeserializationError{
3171			Err:      fmt.Errorf("failed to decode response body, %w", err),
3172			Snapshot: snapshot.Bytes(),
3173		}
3174		return err
3175	}
3176
3177	errorBody.Seek(0, io.SeekStart)
3178	if len(code) != 0 {
3179		errorCode = restjson.SanitizeErrorCode(code)
3180	}
3181	if len(message) != 0 {
3182		errorMessage = message
3183	}
3184
3185	switch {
3186	case strings.EqualFold("BadRequestException", errorCode):
3187		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3188
3189	case strings.EqualFold("ConflictException", errorCode):
3190		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3191
3192	case strings.EqualFold("ForbiddenException", errorCode):
3193		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3194
3195	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3196		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3197
3198	case strings.EqualFold("ServiceFailureException", errorCode):
3199		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3200
3201	case strings.EqualFold("ServiceUnavailableException", errorCode):
3202		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3203
3204	case strings.EqualFold("ThrottledClientException", errorCode):
3205		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3206
3207	case strings.EqualFold("UnauthorizedClientException", errorCode):
3208		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3209
3210	default:
3211		genericError := &smithy.GenericAPIError{
3212			Code:    errorCode,
3213			Message: errorMessage,
3214		}
3215		return genericError
3216
3217	}
3218}
3219
3220func awsRestjson1_deserializeOpDocumentCreateChannelBanOutput(v **CreateChannelBanOutput, value interface{}) error {
3221	if v == nil {
3222		return fmt.Errorf("unexpected nil of type %T", v)
3223	}
3224	if value == nil {
3225		return nil
3226	}
3227
3228	shape, ok := value.(map[string]interface{})
3229	if !ok {
3230		return fmt.Errorf("unexpected JSON type %v", value)
3231	}
3232
3233	var sv *CreateChannelBanOutput
3234	if *v == nil {
3235		sv = &CreateChannelBanOutput{}
3236	} else {
3237		sv = *v
3238	}
3239
3240	for key, value := range shape {
3241		switch key {
3242		case "ChannelArn":
3243			if value != nil {
3244				jtv, ok := value.(string)
3245				if !ok {
3246					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3247				}
3248				sv.ChannelArn = ptr.String(jtv)
3249			}
3250
3251		case "Member":
3252			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
3253				return err
3254			}
3255
3256		default:
3257			_, _ = key, value
3258
3259		}
3260	}
3261	*v = sv
3262	return nil
3263}
3264
3265type awsRestjson1_deserializeOpCreateChannelMembership struct {
3266}
3267
3268func (*awsRestjson1_deserializeOpCreateChannelMembership) ID() string {
3269	return "OperationDeserializer"
3270}
3271
3272func (m *awsRestjson1_deserializeOpCreateChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3273	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3274) {
3275	out, metadata, err = next.HandleDeserialize(ctx, in)
3276	if err != nil {
3277		return out, metadata, err
3278	}
3279
3280	response, ok := out.RawResponse.(*smithyhttp.Response)
3281	if !ok {
3282		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3283	}
3284
3285	if response.StatusCode < 200 || response.StatusCode >= 300 {
3286		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannelMembership(response, &metadata)
3287	}
3288	output := &CreateChannelMembershipOutput{}
3289	out.Result = output
3290
3291	var buff [1024]byte
3292	ringBuffer := smithyio.NewRingBuffer(buff[:])
3293
3294	body := io.TeeReader(response.Body, ringBuffer)
3295
3296	decoder := json.NewDecoder(body)
3297	decoder.UseNumber()
3298	var shape interface{}
3299	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3300		var snapshot bytes.Buffer
3301		io.Copy(&snapshot, ringBuffer)
3302		err = &smithy.DeserializationError{
3303			Err:      fmt.Errorf("failed to decode response body, %w", err),
3304			Snapshot: snapshot.Bytes(),
3305		}
3306		return out, metadata, err
3307	}
3308
3309	err = awsRestjson1_deserializeOpDocumentCreateChannelMembershipOutput(&output, shape)
3310	if err != nil {
3311		var snapshot bytes.Buffer
3312		io.Copy(&snapshot, ringBuffer)
3313		return out, metadata, &smithy.DeserializationError{
3314			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3315			Snapshot: snapshot.Bytes(),
3316		}
3317	}
3318
3319	return out, metadata, err
3320}
3321
3322func awsRestjson1_deserializeOpErrorCreateChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3323	var errorBuffer bytes.Buffer
3324	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3325		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3326	}
3327	errorBody := bytes.NewReader(errorBuffer.Bytes())
3328
3329	errorCode := "UnknownError"
3330	errorMessage := errorCode
3331
3332	code := response.Header.Get("X-Amzn-ErrorType")
3333	if len(code) != 0 {
3334		errorCode = restjson.SanitizeErrorCode(code)
3335	}
3336
3337	var buff [1024]byte
3338	ringBuffer := smithyio.NewRingBuffer(buff[:])
3339
3340	body := io.TeeReader(errorBody, ringBuffer)
3341	decoder := json.NewDecoder(body)
3342	decoder.UseNumber()
3343	code, message, err := restjson.GetErrorInfo(decoder)
3344	if err != nil {
3345		var snapshot bytes.Buffer
3346		io.Copy(&snapshot, ringBuffer)
3347		err = &smithy.DeserializationError{
3348			Err:      fmt.Errorf("failed to decode response body, %w", err),
3349			Snapshot: snapshot.Bytes(),
3350		}
3351		return err
3352	}
3353
3354	errorBody.Seek(0, io.SeekStart)
3355	if len(code) != 0 {
3356		errorCode = restjson.SanitizeErrorCode(code)
3357	}
3358	if len(message) != 0 {
3359		errorMessage = message
3360	}
3361
3362	switch {
3363	case strings.EqualFold("BadRequestException", errorCode):
3364		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3365
3366	case strings.EqualFold("ConflictException", errorCode):
3367		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3368
3369	case strings.EqualFold("ForbiddenException", errorCode):
3370		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3371
3372	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3373		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3374
3375	case strings.EqualFold("ServiceFailureException", errorCode):
3376		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3377
3378	case strings.EqualFold("ServiceUnavailableException", errorCode):
3379		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3380
3381	case strings.EqualFold("ThrottledClientException", errorCode):
3382		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3383
3384	case strings.EqualFold("UnauthorizedClientException", errorCode):
3385		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3386
3387	default:
3388		genericError := &smithy.GenericAPIError{
3389			Code:    errorCode,
3390			Message: errorMessage,
3391		}
3392		return genericError
3393
3394	}
3395}
3396
3397func awsRestjson1_deserializeOpDocumentCreateChannelMembershipOutput(v **CreateChannelMembershipOutput, value interface{}) error {
3398	if v == nil {
3399		return fmt.Errorf("unexpected nil of type %T", v)
3400	}
3401	if value == nil {
3402		return nil
3403	}
3404
3405	shape, ok := value.(map[string]interface{})
3406	if !ok {
3407		return fmt.Errorf("unexpected JSON type %v", value)
3408	}
3409
3410	var sv *CreateChannelMembershipOutput
3411	if *v == nil {
3412		sv = &CreateChannelMembershipOutput{}
3413	} else {
3414		sv = *v
3415	}
3416
3417	for key, value := range shape {
3418		switch key {
3419		case "ChannelArn":
3420			if value != nil {
3421				jtv, ok := value.(string)
3422				if !ok {
3423					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3424				}
3425				sv.ChannelArn = ptr.String(jtv)
3426			}
3427
3428		case "Member":
3429			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
3430				return err
3431			}
3432
3433		default:
3434			_, _ = key, value
3435
3436		}
3437	}
3438	*v = sv
3439	return nil
3440}
3441
3442type awsRestjson1_deserializeOpCreateChannelModerator struct {
3443}
3444
3445func (*awsRestjson1_deserializeOpCreateChannelModerator) ID() string {
3446	return "OperationDeserializer"
3447}
3448
3449func (m *awsRestjson1_deserializeOpCreateChannelModerator) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3450	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3451) {
3452	out, metadata, err = next.HandleDeserialize(ctx, in)
3453	if err != nil {
3454		return out, metadata, err
3455	}
3456
3457	response, ok := out.RawResponse.(*smithyhttp.Response)
3458	if !ok {
3459		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3460	}
3461
3462	if response.StatusCode < 200 || response.StatusCode >= 300 {
3463		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannelModerator(response, &metadata)
3464	}
3465	output := &CreateChannelModeratorOutput{}
3466	out.Result = output
3467
3468	var buff [1024]byte
3469	ringBuffer := smithyio.NewRingBuffer(buff[:])
3470
3471	body := io.TeeReader(response.Body, ringBuffer)
3472
3473	decoder := json.NewDecoder(body)
3474	decoder.UseNumber()
3475	var shape interface{}
3476	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3477		var snapshot bytes.Buffer
3478		io.Copy(&snapshot, ringBuffer)
3479		err = &smithy.DeserializationError{
3480			Err:      fmt.Errorf("failed to decode response body, %w", err),
3481			Snapshot: snapshot.Bytes(),
3482		}
3483		return out, metadata, err
3484	}
3485
3486	err = awsRestjson1_deserializeOpDocumentCreateChannelModeratorOutput(&output, shape)
3487	if err != nil {
3488		var snapshot bytes.Buffer
3489		io.Copy(&snapshot, ringBuffer)
3490		return out, metadata, &smithy.DeserializationError{
3491			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3492			Snapshot: snapshot.Bytes(),
3493		}
3494	}
3495
3496	return out, metadata, err
3497}
3498
3499func awsRestjson1_deserializeOpErrorCreateChannelModerator(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3500	var errorBuffer bytes.Buffer
3501	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3502		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3503	}
3504	errorBody := bytes.NewReader(errorBuffer.Bytes())
3505
3506	errorCode := "UnknownError"
3507	errorMessage := errorCode
3508
3509	code := response.Header.Get("X-Amzn-ErrorType")
3510	if len(code) != 0 {
3511		errorCode = restjson.SanitizeErrorCode(code)
3512	}
3513
3514	var buff [1024]byte
3515	ringBuffer := smithyio.NewRingBuffer(buff[:])
3516
3517	body := io.TeeReader(errorBody, ringBuffer)
3518	decoder := json.NewDecoder(body)
3519	decoder.UseNumber()
3520	code, message, err := restjson.GetErrorInfo(decoder)
3521	if err != nil {
3522		var snapshot bytes.Buffer
3523		io.Copy(&snapshot, ringBuffer)
3524		err = &smithy.DeserializationError{
3525			Err:      fmt.Errorf("failed to decode response body, %w", err),
3526			Snapshot: snapshot.Bytes(),
3527		}
3528		return err
3529	}
3530
3531	errorBody.Seek(0, io.SeekStart)
3532	if len(code) != 0 {
3533		errorCode = restjson.SanitizeErrorCode(code)
3534	}
3535	if len(message) != 0 {
3536		errorMessage = message
3537	}
3538
3539	switch {
3540	case strings.EqualFold("BadRequestException", errorCode):
3541		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3542
3543	case strings.EqualFold("ConflictException", errorCode):
3544		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3545
3546	case strings.EqualFold("ForbiddenException", errorCode):
3547		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3548
3549	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3550		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3551
3552	case strings.EqualFold("ServiceFailureException", errorCode):
3553		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3554
3555	case strings.EqualFold("ServiceUnavailableException", errorCode):
3556		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3557
3558	case strings.EqualFold("ThrottledClientException", errorCode):
3559		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3560
3561	case strings.EqualFold("UnauthorizedClientException", errorCode):
3562		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3563
3564	default:
3565		genericError := &smithy.GenericAPIError{
3566			Code:    errorCode,
3567			Message: errorMessage,
3568		}
3569		return genericError
3570
3571	}
3572}
3573
3574func awsRestjson1_deserializeOpDocumentCreateChannelModeratorOutput(v **CreateChannelModeratorOutput, value interface{}) error {
3575	if v == nil {
3576		return fmt.Errorf("unexpected nil of type %T", v)
3577	}
3578	if value == nil {
3579		return nil
3580	}
3581
3582	shape, ok := value.(map[string]interface{})
3583	if !ok {
3584		return fmt.Errorf("unexpected JSON type %v", value)
3585	}
3586
3587	var sv *CreateChannelModeratorOutput
3588	if *v == nil {
3589		sv = &CreateChannelModeratorOutput{}
3590	} else {
3591		sv = *v
3592	}
3593
3594	for key, value := range shape {
3595		switch key {
3596		case "ChannelArn":
3597			if value != nil {
3598				jtv, ok := value.(string)
3599				if !ok {
3600					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3601				}
3602				sv.ChannelArn = ptr.String(jtv)
3603			}
3604
3605		case "ChannelModerator":
3606			if err := awsRestjson1_deserializeDocumentIdentity(&sv.ChannelModerator, value); err != nil {
3607				return err
3608			}
3609
3610		default:
3611			_, _ = key, value
3612
3613		}
3614	}
3615	*v = sv
3616	return nil
3617}
3618
3619type awsRestjson1_deserializeOpCreateMediaCapturePipeline struct {
3620}
3621
3622func (*awsRestjson1_deserializeOpCreateMediaCapturePipeline) ID() string {
3623	return "OperationDeserializer"
3624}
3625
3626func (m *awsRestjson1_deserializeOpCreateMediaCapturePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3627	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3628) {
3629	out, metadata, err = next.HandleDeserialize(ctx, in)
3630	if err != nil {
3631		return out, metadata, err
3632	}
3633
3634	response, ok := out.RawResponse.(*smithyhttp.Response)
3635	if !ok {
3636		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3637	}
3638
3639	if response.StatusCode < 200 || response.StatusCode >= 300 {
3640		return out, metadata, awsRestjson1_deserializeOpErrorCreateMediaCapturePipeline(response, &metadata)
3641	}
3642	output := &CreateMediaCapturePipelineOutput{}
3643	out.Result = output
3644
3645	var buff [1024]byte
3646	ringBuffer := smithyio.NewRingBuffer(buff[:])
3647
3648	body := io.TeeReader(response.Body, ringBuffer)
3649
3650	decoder := json.NewDecoder(body)
3651	decoder.UseNumber()
3652	var shape interface{}
3653	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3654		var snapshot bytes.Buffer
3655		io.Copy(&snapshot, ringBuffer)
3656		err = &smithy.DeserializationError{
3657			Err:      fmt.Errorf("failed to decode response body, %w", err),
3658			Snapshot: snapshot.Bytes(),
3659		}
3660		return out, metadata, err
3661	}
3662
3663	err = awsRestjson1_deserializeOpDocumentCreateMediaCapturePipelineOutput(&output, shape)
3664	if err != nil {
3665		var snapshot bytes.Buffer
3666		io.Copy(&snapshot, ringBuffer)
3667		return out, metadata, &smithy.DeserializationError{
3668			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3669			Snapshot: snapshot.Bytes(),
3670		}
3671	}
3672
3673	return out, metadata, err
3674}
3675
3676func awsRestjson1_deserializeOpErrorCreateMediaCapturePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3677	var errorBuffer bytes.Buffer
3678	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3679		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3680	}
3681	errorBody := bytes.NewReader(errorBuffer.Bytes())
3682
3683	errorCode := "UnknownError"
3684	errorMessage := errorCode
3685
3686	code := response.Header.Get("X-Amzn-ErrorType")
3687	if len(code) != 0 {
3688		errorCode = restjson.SanitizeErrorCode(code)
3689	}
3690
3691	var buff [1024]byte
3692	ringBuffer := smithyio.NewRingBuffer(buff[:])
3693
3694	body := io.TeeReader(errorBody, ringBuffer)
3695	decoder := json.NewDecoder(body)
3696	decoder.UseNumber()
3697	code, message, err := restjson.GetErrorInfo(decoder)
3698	if err != nil {
3699		var snapshot bytes.Buffer
3700		io.Copy(&snapshot, ringBuffer)
3701		err = &smithy.DeserializationError{
3702			Err:      fmt.Errorf("failed to decode response body, %w", err),
3703			Snapshot: snapshot.Bytes(),
3704		}
3705		return err
3706	}
3707
3708	errorBody.Seek(0, io.SeekStart)
3709	if len(code) != 0 {
3710		errorCode = restjson.SanitizeErrorCode(code)
3711	}
3712	if len(message) != 0 {
3713		errorMessage = message
3714	}
3715
3716	switch {
3717	case strings.EqualFold("BadRequestException", errorCode):
3718		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3719
3720	case strings.EqualFold("ForbiddenException", errorCode):
3721		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3722
3723	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3724		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3725
3726	case strings.EqualFold("ServiceFailureException", errorCode):
3727		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3728
3729	case strings.EqualFold("ServiceUnavailableException", errorCode):
3730		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3731
3732	case strings.EqualFold("ThrottledClientException", errorCode):
3733		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3734
3735	case strings.EqualFold("UnauthorizedClientException", errorCode):
3736		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3737
3738	default:
3739		genericError := &smithy.GenericAPIError{
3740			Code:    errorCode,
3741			Message: errorMessage,
3742		}
3743		return genericError
3744
3745	}
3746}
3747
3748func awsRestjson1_deserializeOpDocumentCreateMediaCapturePipelineOutput(v **CreateMediaCapturePipelineOutput, value interface{}) error {
3749	if v == nil {
3750		return fmt.Errorf("unexpected nil of type %T", v)
3751	}
3752	if value == nil {
3753		return nil
3754	}
3755
3756	shape, ok := value.(map[string]interface{})
3757	if !ok {
3758		return fmt.Errorf("unexpected JSON type %v", value)
3759	}
3760
3761	var sv *CreateMediaCapturePipelineOutput
3762	if *v == nil {
3763		sv = &CreateMediaCapturePipelineOutput{}
3764	} else {
3765		sv = *v
3766	}
3767
3768	for key, value := range shape {
3769		switch key {
3770		case "MediaCapturePipeline":
3771			if err := awsRestjson1_deserializeDocumentMediaCapturePipeline(&sv.MediaCapturePipeline, value); err != nil {
3772				return err
3773			}
3774
3775		default:
3776			_, _ = key, value
3777
3778		}
3779	}
3780	*v = sv
3781	return nil
3782}
3783
3784type awsRestjson1_deserializeOpCreateMeeting struct {
3785}
3786
3787func (*awsRestjson1_deserializeOpCreateMeeting) ID() string {
3788	return "OperationDeserializer"
3789}
3790
3791func (m *awsRestjson1_deserializeOpCreateMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3792	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3793) {
3794	out, metadata, err = next.HandleDeserialize(ctx, in)
3795	if err != nil {
3796		return out, metadata, err
3797	}
3798
3799	response, ok := out.RawResponse.(*smithyhttp.Response)
3800	if !ok {
3801		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3802	}
3803
3804	if response.StatusCode < 200 || response.StatusCode >= 300 {
3805		return out, metadata, awsRestjson1_deserializeOpErrorCreateMeeting(response, &metadata)
3806	}
3807	output := &CreateMeetingOutput{}
3808	out.Result = output
3809
3810	var buff [1024]byte
3811	ringBuffer := smithyio.NewRingBuffer(buff[:])
3812
3813	body := io.TeeReader(response.Body, ringBuffer)
3814
3815	decoder := json.NewDecoder(body)
3816	decoder.UseNumber()
3817	var shape interface{}
3818	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3819		var snapshot bytes.Buffer
3820		io.Copy(&snapshot, ringBuffer)
3821		err = &smithy.DeserializationError{
3822			Err:      fmt.Errorf("failed to decode response body, %w", err),
3823			Snapshot: snapshot.Bytes(),
3824		}
3825		return out, metadata, err
3826	}
3827
3828	err = awsRestjson1_deserializeOpDocumentCreateMeetingOutput(&output, shape)
3829	if err != nil {
3830		var snapshot bytes.Buffer
3831		io.Copy(&snapshot, ringBuffer)
3832		return out, metadata, &smithy.DeserializationError{
3833			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3834			Snapshot: snapshot.Bytes(),
3835		}
3836	}
3837
3838	return out, metadata, err
3839}
3840
3841func awsRestjson1_deserializeOpErrorCreateMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3842	var errorBuffer bytes.Buffer
3843	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3844		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3845	}
3846	errorBody := bytes.NewReader(errorBuffer.Bytes())
3847
3848	errorCode := "UnknownError"
3849	errorMessage := errorCode
3850
3851	code := response.Header.Get("X-Amzn-ErrorType")
3852	if len(code) != 0 {
3853		errorCode = restjson.SanitizeErrorCode(code)
3854	}
3855
3856	var buff [1024]byte
3857	ringBuffer := smithyio.NewRingBuffer(buff[:])
3858
3859	body := io.TeeReader(errorBody, ringBuffer)
3860	decoder := json.NewDecoder(body)
3861	decoder.UseNumber()
3862	code, message, err := restjson.GetErrorInfo(decoder)
3863	if err != nil {
3864		var snapshot bytes.Buffer
3865		io.Copy(&snapshot, ringBuffer)
3866		err = &smithy.DeserializationError{
3867			Err:      fmt.Errorf("failed to decode response body, %w", err),
3868			Snapshot: snapshot.Bytes(),
3869		}
3870		return err
3871	}
3872
3873	errorBody.Seek(0, io.SeekStart)
3874	if len(code) != 0 {
3875		errorCode = restjson.SanitizeErrorCode(code)
3876	}
3877	if len(message) != 0 {
3878		errorMessage = message
3879	}
3880
3881	switch {
3882	case strings.EqualFold("BadRequestException", errorCode):
3883		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3884
3885	case strings.EqualFold("ForbiddenException", errorCode):
3886		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3887
3888	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3889		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3890
3891	case strings.EqualFold("ServiceFailureException", errorCode):
3892		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3893
3894	case strings.EqualFold("ServiceUnavailableException", errorCode):
3895		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3896
3897	case strings.EqualFold("ThrottledClientException", errorCode):
3898		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3899
3900	case strings.EqualFold("UnauthorizedClientException", errorCode):
3901		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3902
3903	default:
3904		genericError := &smithy.GenericAPIError{
3905			Code:    errorCode,
3906			Message: errorMessage,
3907		}
3908		return genericError
3909
3910	}
3911}
3912
3913func awsRestjson1_deserializeOpDocumentCreateMeetingOutput(v **CreateMeetingOutput, value interface{}) error {
3914	if v == nil {
3915		return fmt.Errorf("unexpected nil of type %T", v)
3916	}
3917	if value == nil {
3918		return nil
3919	}
3920
3921	shape, ok := value.(map[string]interface{})
3922	if !ok {
3923		return fmt.Errorf("unexpected JSON type %v", value)
3924	}
3925
3926	var sv *CreateMeetingOutput
3927	if *v == nil {
3928		sv = &CreateMeetingOutput{}
3929	} else {
3930		sv = *v
3931	}
3932
3933	for key, value := range shape {
3934		switch key {
3935		case "Meeting":
3936			if err := awsRestjson1_deserializeDocumentMeeting(&sv.Meeting, value); err != nil {
3937				return err
3938			}
3939
3940		default:
3941			_, _ = key, value
3942
3943		}
3944	}
3945	*v = sv
3946	return nil
3947}
3948
3949type awsRestjson1_deserializeOpCreateMeetingDialOut struct {
3950}
3951
3952func (*awsRestjson1_deserializeOpCreateMeetingDialOut) ID() string {
3953	return "OperationDeserializer"
3954}
3955
3956func (m *awsRestjson1_deserializeOpCreateMeetingDialOut) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3957	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3958) {
3959	out, metadata, err = next.HandleDeserialize(ctx, in)
3960	if err != nil {
3961		return out, metadata, err
3962	}
3963
3964	response, ok := out.RawResponse.(*smithyhttp.Response)
3965	if !ok {
3966		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3967	}
3968
3969	if response.StatusCode < 200 || response.StatusCode >= 300 {
3970		return out, metadata, awsRestjson1_deserializeOpErrorCreateMeetingDialOut(response, &metadata)
3971	}
3972	output := &CreateMeetingDialOutOutput{}
3973	out.Result = output
3974
3975	var buff [1024]byte
3976	ringBuffer := smithyio.NewRingBuffer(buff[:])
3977
3978	body := io.TeeReader(response.Body, ringBuffer)
3979
3980	decoder := json.NewDecoder(body)
3981	decoder.UseNumber()
3982	var shape interface{}
3983	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3984		var snapshot bytes.Buffer
3985		io.Copy(&snapshot, ringBuffer)
3986		err = &smithy.DeserializationError{
3987			Err:      fmt.Errorf("failed to decode response body, %w", err),
3988			Snapshot: snapshot.Bytes(),
3989		}
3990		return out, metadata, err
3991	}
3992
3993	err = awsRestjson1_deserializeOpDocumentCreateMeetingDialOutOutput(&output, shape)
3994	if err != nil {
3995		var snapshot bytes.Buffer
3996		io.Copy(&snapshot, ringBuffer)
3997		return out, metadata, &smithy.DeserializationError{
3998			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3999			Snapshot: snapshot.Bytes(),
4000		}
4001	}
4002
4003	return out, metadata, err
4004}
4005
4006func awsRestjson1_deserializeOpErrorCreateMeetingDialOut(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4007	var errorBuffer bytes.Buffer
4008	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4009		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4010	}
4011	errorBody := bytes.NewReader(errorBuffer.Bytes())
4012
4013	errorCode := "UnknownError"
4014	errorMessage := errorCode
4015
4016	code := response.Header.Get("X-Amzn-ErrorType")
4017	if len(code) != 0 {
4018		errorCode = restjson.SanitizeErrorCode(code)
4019	}
4020
4021	var buff [1024]byte
4022	ringBuffer := smithyio.NewRingBuffer(buff[:])
4023
4024	body := io.TeeReader(errorBody, ringBuffer)
4025	decoder := json.NewDecoder(body)
4026	decoder.UseNumber()
4027	code, message, err := restjson.GetErrorInfo(decoder)
4028	if err != nil {
4029		var snapshot bytes.Buffer
4030		io.Copy(&snapshot, ringBuffer)
4031		err = &smithy.DeserializationError{
4032			Err:      fmt.Errorf("failed to decode response body, %w", err),
4033			Snapshot: snapshot.Bytes(),
4034		}
4035		return err
4036	}
4037
4038	errorBody.Seek(0, io.SeekStart)
4039	if len(code) != 0 {
4040		errorCode = restjson.SanitizeErrorCode(code)
4041	}
4042	if len(message) != 0 {
4043		errorMessage = message
4044	}
4045
4046	switch {
4047	case strings.EqualFold("BadRequestException", errorCode):
4048		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4049
4050	case strings.EqualFold("ForbiddenException", errorCode):
4051		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4052
4053	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4054		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4055
4056	case strings.EqualFold("ServiceFailureException", errorCode):
4057		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4058
4059	case strings.EqualFold("ServiceUnavailableException", errorCode):
4060		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4061
4062	case strings.EqualFold("ThrottledClientException", errorCode):
4063		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4064
4065	case strings.EqualFold("UnauthorizedClientException", errorCode):
4066		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4067
4068	default:
4069		genericError := &smithy.GenericAPIError{
4070			Code:    errorCode,
4071			Message: errorMessage,
4072		}
4073		return genericError
4074
4075	}
4076}
4077
4078func awsRestjson1_deserializeOpDocumentCreateMeetingDialOutOutput(v **CreateMeetingDialOutOutput, value interface{}) error {
4079	if v == nil {
4080		return fmt.Errorf("unexpected nil of type %T", v)
4081	}
4082	if value == nil {
4083		return nil
4084	}
4085
4086	shape, ok := value.(map[string]interface{})
4087	if !ok {
4088		return fmt.Errorf("unexpected JSON type %v", value)
4089	}
4090
4091	var sv *CreateMeetingDialOutOutput
4092	if *v == nil {
4093		sv = &CreateMeetingDialOutOutput{}
4094	} else {
4095		sv = *v
4096	}
4097
4098	for key, value := range shape {
4099		switch key {
4100		case "TransactionId":
4101			if value != nil {
4102				jtv, ok := value.(string)
4103				if !ok {
4104					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
4105				}
4106				sv.TransactionId = ptr.String(jtv)
4107			}
4108
4109		default:
4110			_, _ = key, value
4111
4112		}
4113	}
4114	*v = sv
4115	return nil
4116}
4117
4118type awsRestjson1_deserializeOpCreateMeetingWithAttendees struct {
4119}
4120
4121func (*awsRestjson1_deserializeOpCreateMeetingWithAttendees) ID() string {
4122	return "OperationDeserializer"
4123}
4124
4125func (m *awsRestjson1_deserializeOpCreateMeetingWithAttendees) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4126	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4127) {
4128	out, metadata, err = next.HandleDeserialize(ctx, in)
4129	if err != nil {
4130		return out, metadata, err
4131	}
4132
4133	response, ok := out.RawResponse.(*smithyhttp.Response)
4134	if !ok {
4135		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4136	}
4137
4138	if response.StatusCode < 200 || response.StatusCode >= 300 {
4139		return out, metadata, awsRestjson1_deserializeOpErrorCreateMeetingWithAttendees(response, &metadata)
4140	}
4141	output := &CreateMeetingWithAttendeesOutput{}
4142	out.Result = output
4143
4144	var buff [1024]byte
4145	ringBuffer := smithyio.NewRingBuffer(buff[:])
4146
4147	body := io.TeeReader(response.Body, ringBuffer)
4148
4149	decoder := json.NewDecoder(body)
4150	decoder.UseNumber()
4151	var shape interface{}
4152	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4153		var snapshot bytes.Buffer
4154		io.Copy(&snapshot, ringBuffer)
4155		err = &smithy.DeserializationError{
4156			Err:      fmt.Errorf("failed to decode response body, %w", err),
4157			Snapshot: snapshot.Bytes(),
4158		}
4159		return out, metadata, err
4160	}
4161
4162	err = awsRestjson1_deserializeOpDocumentCreateMeetingWithAttendeesOutput(&output, shape)
4163	if err != nil {
4164		var snapshot bytes.Buffer
4165		io.Copy(&snapshot, ringBuffer)
4166		return out, metadata, &smithy.DeserializationError{
4167			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4168			Snapshot: snapshot.Bytes(),
4169		}
4170	}
4171
4172	return out, metadata, err
4173}
4174
4175func awsRestjson1_deserializeOpErrorCreateMeetingWithAttendees(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4176	var errorBuffer bytes.Buffer
4177	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4178		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4179	}
4180	errorBody := bytes.NewReader(errorBuffer.Bytes())
4181
4182	errorCode := "UnknownError"
4183	errorMessage := errorCode
4184
4185	code := response.Header.Get("X-Amzn-ErrorType")
4186	if len(code) != 0 {
4187		errorCode = restjson.SanitizeErrorCode(code)
4188	}
4189
4190	var buff [1024]byte
4191	ringBuffer := smithyio.NewRingBuffer(buff[:])
4192
4193	body := io.TeeReader(errorBody, ringBuffer)
4194	decoder := json.NewDecoder(body)
4195	decoder.UseNumber()
4196	code, message, err := restjson.GetErrorInfo(decoder)
4197	if err != nil {
4198		var snapshot bytes.Buffer
4199		io.Copy(&snapshot, ringBuffer)
4200		err = &smithy.DeserializationError{
4201			Err:      fmt.Errorf("failed to decode response body, %w", err),
4202			Snapshot: snapshot.Bytes(),
4203		}
4204		return err
4205	}
4206
4207	errorBody.Seek(0, io.SeekStart)
4208	if len(code) != 0 {
4209		errorCode = restjson.SanitizeErrorCode(code)
4210	}
4211	if len(message) != 0 {
4212		errorMessage = message
4213	}
4214
4215	switch {
4216	case strings.EqualFold("BadRequestException", errorCode):
4217		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4218
4219	case strings.EqualFold("ForbiddenException", errorCode):
4220		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4221
4222	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4223		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4224
4225	case strings.EqualFold("ServiceFailureException", errorCode):
4226		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4227
4228	case strings.EqualFold("ServiceUnavailableException", errorCode):
4229		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4230
4231	case strings.EqualFold("ThrottledClientException", errorCode):
4232		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4233
4234	case strings.EqualFold("UnauthorizedClientException", errorCode):
4235		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4236
4237	default:
4238		genericError := &smithy.GenericAPIError{
4239			Code:    errorCode,
4240			Message: errorMessage,
4241		}
4242		return genericError
4243
4244	}
4245}
4246
4247func awsRestjson1_deserializeOpDocumentCreateMeetingWithAttendeesOutput(v **CreateMeetingWithAttendeesOutput, value interface{}) error {
4248	if v == nil {
4249		return fmt.Errorf("unexpected nil of type %T", v)
4250	}
4251	if value == nil {
4252		return nil
4253	}
4254
4255	shape, ok := value.(map[string]interface{})
4256	if !ok {
4257		return fmt.Errorf("unexpected JSON type %v", value)
4258	}
4259
4260	var sv *CreateMeetingWithAttendeesOutput
4261	if *v == nil {
4262		sv = &CreateMeetingWithAttendeesOutput{}
4263	} else {
4264		sv = *v
4265	}
4266
4267	for key, value := range shape {
4268		switch key {
4269		case "Attendees":
4270			if err := awsRestjson1_deserializeDocumentAttendeeList(&sv.Attendees, value); err != nil {
4271				return err
4272			}
4273
4274		case "Errors":
4275			if err := awsRestjson1_deserializeDocumentBatchCreateAttendeeErrorList(&sv.Errors, value); err != nil {
4276				return err
4277			}
4278
4279		case "Meeting":
4280			if err := awsRestjson1_deserializeDocumentMeeting(&sv.Meeting, value); err != nil {
4281				return err
4282			}
4283
4284		default:
4285			_, _ = key, value
4286
4287		}
4288	}
4289	*v = sv
4290	return nil
4291}
4292
4293type awsRestjson1_deserializeOpCreatePhoneNumberOrder struct {
4294}
4295
4296func (*awsRestjson1_deserializeOpCreatePhoneNumberOrder) ID() string {
4297	return "OperationDeserializer"
4298}
4299
4300func (m *awsRestjson1_deserializeOpCreatePhoneNumberOrder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4301	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4302) {
4303	out, metadata, err = next.HandleDeserialize(ctx, in)
4304	if err != nil {
4305		return out, metadata, err
4306	}
4307
4308	response, ok := out.RawResponse.(*smithyhttp.Response)
4309	if !ok {
4310		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4311	}
4312
4313	if response.StatusCode < 200 || response.StatusCode >= 300 {
4314		return out, metadata, awsRestjson1_deserializeOpErrorCreatePhoneNumberOrder(response, &metadata)
4315	}
4316	output := &CreatePhoneNumberOrderOutput{}
4317	out.Result = output
4318
4319	var buff [1024]byte
4320	ringBuffer := smithyio.NewRingBuffer(buff[:])
4321
4322	body := io.TeeReader(response.Body, ringBuffer)
4323
4324	decoder := json.NewDecoder(body)
4325	decoder.UseNumber()
4326	var shape interface{}
4327	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4328		var snapshot bytes.Buffer
4329		io.Copy(&snapshot, ringBuffer)
4330		err = &smithy.DeserializationError{
4331			Err:      fmt.Errorf("failed to decode response body, %w", err),
4332			Snapshot: snapshot.Bytes(),
4333		}
4334		return out, metadata, err
4335	}
4336
4337	err = awsRestjson1_deserializeOpDocumentCreatePhoneNumberOrderOutput(&output, shape)
4338	if err != nil {
4339		var snapshot bytes.Buffer
4340		io.Copy(&snapshot, ringBuffer)
4341		return out, metadata, &smithy.DeserializationError{
4342			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4343			Snapshot: snapshot.Bytes(),
4344		}
4345	}
4346
4347	return out, metadata, err
4348}
4349
4350func awsRestjson1_deserializeOpErrorCreatePhoneNumberOrder(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4351	var errorBuffer bytes.Buffer
4352	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4353		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4354	}
4355	errorBody := bytes.NewReader(errorBuffer.Bytes())
4356
4357	errorCode := "UnknownError"
4358	errorMessage := errorCode
4359
4360	code := response.Header.Get("X-Amzn-ErrorType")
4361	if len(code) != 0 {
4362		errorCode = restjson.SanitizeErrorCode(code)
4363	}
4364
4365	var buff [1024]byte
4366	ringBuffer := smithyio.NewRingBuffer(buff[:])
4367
4368	body := io.TeeReader(errorBody, ringBuffer)
4369	decoder := json.NewDecoder(body)
4370	decoder.UseNumber()
4371	code, message, err := restjson.GetErrorInfo(decoder)
4372	if err != nil {
4373		var snapshot bytes.Buffer
4374		io.Copy(&snapshot, ringBuffer)
4375		err = &smithy.DeserializationError{
4376			Err:      fmt.Errorf("failed to decode response body, %w", err),
4377			Snapshot: snapshot.Bytes(),
4378		}
4379		return err
4380	}
4381
4382	errorBody.Seek(0, io.SeekStart)
4383	if len(code) != 0 {
4384		errorCode = restjson.SanitizeErrorCode(code)
4385	}
4386	if len(message) != 0 {
4387		errorMessage = message
4388	}
4389
4390	switch {
4391	case strings.EqualFold("AccessDeniedException", errorCode):
4392		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
4393
4394	case strings.EqualFold("BadRequestException", errorCode):
4395		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4396
4397	case strings.EqualFold("ForbiddenException", errorCode):
4398		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4399
4400	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4401		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4402
4403	case strings.EqualFold("ServiceFailureException", errorCode):
4404		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4405
4406	case strings.EqualFold("ServiceUnavailableException", errorCode):
4407		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4408
4409	case strings.EqualFold("ThrottledClientException", errorCode):
4410		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4411
4412	case strings.EqualFold("UnauthorizedClientException", errorCode):
4413		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4414
4415	default:
4416		genericError := &smithy.GenericAPIError{
4417			Code:    errorCode,
4418			Message: errorMessage,
4419		}
4420		return genericError
4421
4422	}
4423}
4424
4425func awsRestjson1_deserializeOpDocumentCreatePhoneNumberOrderOutput(v **CreatePhoneNumberOrderOutput, value interface{}) error {
4426	if v == nil {
4427		return fmt.Errorf("unexpected nil of type %T", v)
4428	}
4429	if value == nil {
4430		return nil
4431	}
4432
4433	shape, ok := value.(map[string]interface{})
4434	if !ok {
4435		return fmt.Errorf("unexpected JSON type %v", value)
4436	}
4437
4438	var sv *CreatePhoneNumberOrderOutput
4439	if *v == nil {
4440		sv = &CreatePhoneNumberOrderOutput{}
4441	} else {
4442		sv = *v
4443	}
4444
4445	for key, value := range shape {
4446		switch key {
4447		case "PhoneNumberOrder":
4448			if err := awsRestjson1_deserializeDocumentPhoneNumberOrder(&sv.PhoneNumberOrder, value); err != nil {
4449				return err
4450			}
4451
4452		default:
4453			_, _ = key, value
4454
4455		}
4456	}
4457	*v = sv
4458	return nil
4459}
4460
4461type awsRestjson1_deserializeOpCreateProxySession struct {
4462}
4463
4464func (*awsRestjson1_deserializeOpCreateProxySession) ID() string {
4465	return "OperationDeserializer"
4466}
4467
4468func (m *awsRestjson1_deserializeOpCreateProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4469	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4470) {
4471	out, metadata, err = next.HandleDeserialize(ctx, in)
4472	if err != nil {
4473		return out, metadata, err
4474	}
4475
4476	response, ok := out.RawResponse.(*smithyhttp.Response)
4477	if !ok {
4478		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4479	}
4480
4481	if response.StatusCode < 200 || response.StatusCode >= 300 {
4482		return out, metadata, awsRestjson1_deserializeOpErrorCreateProxySession(response, &metadata)
4483	}
4484	output := &CreateProxySessionOutput{}
4485	out.Result = output
4486
4487	var buff [1024]byte
4488	ringBuffer := smithyio.NewRingBuffer(buff[:])
4489
4490	body := io.TeeReader(response.Body, ringBuffer)
4491
4492	decoder := json.NewDecoder(body)
4493	decoder.UseNumber()
4494	var shape interface{}
4495	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4496		var snapshot bytes.Buffer
4497		io.Copy(&snapshot, ringBuffer)
4498		err = &smithy.DeserializationError{
4499			Err:      fmt.Errorf("failed to decode response body, %w", err),
4500			Snapshot: snapshot.Bytes(),
4501		}
4502		return out, metadata, err
4503	}
4504
4505	err = awsRestjson1_deserializeOpDocumentCreateProxySessionOutput(&output, shape)
4506	if err != nil {
4507		var snapshot bytes.Buffer
4508		io.Copy(&snapshot, ringBuffer)
4509		return out, metadata, &smithy.DeserializationError{
4510			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4511			Snapshot: snapshot.Bytes(),
4512		}
4513	}
4514
4515	return out, metadata, err
4516}
4517
4518func awsRestjson1_deserializeOpErrorCreateProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4519	var errorBuffer bytes.Buffer
4520	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4521		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4522	}
4523	errorBody := bytes.NewReader(errorBuffer.Bytes())
4524
4525	errorCode := "UnknownError"
4526	errorMessage := errorCode
4527
4528	code := response.Header.Get("X-Amzn-ErrorType")
4529	if len(code) != 0 {
4530		errorCode = restjson.SanitizeErrorCode(code)
4531	}
4532
4533	var buff [1024]byte
4534	ringBuffer := smithyio.NewRingBuffer(buff[:])
4535
4536	body := io.TeeReader(errorBody, ringBuffer)
4537	decoder := json.NewDecoder(body)
4538	decoder.UseNumber()
4539	code, message, err := restjson.GetErrorInfo(decoder)
4540	if err != nil {
4541		var snapshot bytes.Buffer
4542		io.Copy(&snapshot, ringBuffer)
4543		err = &smithy.DeserializationError{
4544			Err:      fmt.Errorf("failed to decode response body, %w", err),
4545			Snapshot: snapshot.Bytes(),
4546		}
4547		return err
4548	}
4549
4550	errorBody.Seek(0, io.SeekStart)
4551	if len(code) != 0 {
4552		errorCode = restjson.SanitizeErrorCode(code)
4553	}
4554	if len(message) != 0 {
4555		errorMessage = message
4556	}
4557
4558	switch {
4559	case strings.EqualFold("BadRequestException", errorCode):
4560		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4561
4562	case strings.EqualFold("ForbiddenException", errorCode):
4563		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4564
4565	case strings.EqualFold("NotFoundException", errorCode):
4566		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
4567
4568	case strings.EqualFold("ServiceFailureException", errorCode):
4569		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4570
4571	case strings.EqualFold("ServiceUnavailableException", errorCode):
4572		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4573
4574	case strings.EqualFold("ThrottledClientException", errorCode):
4575		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4576
4577	case strings.EqualFold("UnauthorizedClientException", errorCode):
4578		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4579
4580	default:
4581		genericError := &smithy.GenericAPIError{
4582			Code:    errorCode,
4583			Message: errorMessage,
4584		}
4585		return genericError
4586
4587	}
4588}
4589
4590func awsRestjson1_deserializeOpDocumentCreateProxySessionOutput(v **CreateProxySessionOutput, value interface{}) error {
4591	if v == nil {
4592		return fmt.Errorf("unexpected nil of type %T", v)
4593	}
4594	if value == nil {
4595		return nil
4596	}
4597
4598	shape, ok := value.(map[string]interface{})
4599	if !ok {
4600		return fmt.Errorf("unexpected JSON type %v", value)
4601	}
4602
4603	var sv *CreateProxySessionOutput
4604	if *v == nil {
4605		sv = &CreateProxySessionOutput{}
4606	} else {
4607		sv = *v
4608	}
4609
4610	for key, value := range shape {
4611		switch key {
4612		case "ProxySession":
4613			if err := awsRestjson1_deserializeDocumentProxySession(&sv.ProxySession, value); err != nil {
4614				return err
4615			}
4616
4617		default:
4618			_, _ = key, value
4619
4620		}
4621	}
4622	*v = sv
4623	return nil
4624}
4625
4626type awsRestjson1_deserializeOpCreateRoom struct {
4627}
4628
4629func (*awsRestjson1_deserializeOpCreateRoom) ID() string {
4630	return "OperationDeserializer"
4631}
4632
4633func (m *awsRestjson1_deserializeOpCreateRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4634	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4635) {
4636	out, metadata, err = next.HandleDeserialize(ctx, in)
4637	if err != nil {
4638		return out, metadata, err
4639	}
4640
4641	response, ok := out.RawResponse.(*smithyhttp.Response)
4642	if !ok {
4643		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4644	}
4645
4646	if response.StatusCode < 200 || response.StatusCode >= 300 {
4647		return out, metadata, awsRestjson1_deserializeOpErrorCreateRoom(response, &metadata)
4648	}
4649	output := &CreateRoomOutput{}
4650	out.Result = output
4651
4652	var buff [1024]byte
4653	ringBuffer := smithyio.NewRingBuffer(buff[:])
4654
4655	body := io.TeeReader(response.Body, ringBuffer)
4656
4657	decoder := json.NewDecoder(body)
4658	decoder.UseNumber()
4659	var shape interface{}
4660	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4661		var snapshot bytes.Buffer
4662		io.Copy(&snapshot, ringBuffer)
4663		err = &smithy.DeserializationError{
4664			Err:      fmt.Errorf("failed to decode response body, %w", err),
4665			Snapshot: snapshot.Bytes(),
4666		}
4667		return out, metadata, err
4668	}
4669
4670	err = awsRestjson1_deserializeOpDocumentCreateRoomOutput(&output, shape)
4671	if err != nil {
4672		var snapshot bytes.Buffer
4673		io.Copy(&snapshot, ringBuffer)
4674		return out, metadata, &smithy.DeserializationError{
4675			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4676			Snapshot: snapshot.Bytes(),
4677		}
4678	}
4679
4680	return out, metadata, err
4681}
4682
4683func awsRestjson1_deserializeOpErrorCreateRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4684	var errorBuffer bytes.Buffer
4685	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4686		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4687	}
4688	errorBody := bytes.NewReader(errorBuffer.Bytes())
4689
4690	errorCode := "UnknownError"
4691	errorMessage := errorCode
4692
4693	code := response.Header.Get("X-Amzn-ErrorType")
4694	if len(code) != 0 {
4695		errorCode = restjson.SanitizeErrorCode(code)
4696	}
4697
4698	var buff [1024]byte
4699	ringBuffer := smithyio.NewRingBuffer(buff[:])
4700
4701	body := io.TeeReader(errorBody, ringBuffer)
4702	decoder := json.NewDecoder(body)
4703	decoder.UseNumber()
4704	code, message, err := restjson.GetErrorInfo(decoder)
4705	if err != nil {
4706		var snapshot bytes.Buffer
4707		io.Copy(&snapshot, ringBuffer)
4708		err = &smithy.DeserializationError{
4709			Err:      fmt.Errorf("failed to decode response body, %w", err),
4710			Snapshot: snapshot.Bytes(),
4711		}
4712		return err
4713	}
4714
4715	errorBody.Seek(0, io.SeekStart)
4716	if len(code) != 0 {
4717		errorCode = restjson.SanitizeErrorCode(code)
4718	}
4719	if len(message) != 0 {
4720		errorMessage = message
4721	}
4722
4723	switch {
4724	case strings.EqualFold("BadRequestException", errorCode):
4725		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4726
4727	case strings.EqualFold("ForbiddenException", errorCode):
4728		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4729
4730	case strings.EqualFold("NotFoundException", errorCode):
4731		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
4732
4733	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4734		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4735
4736	case strings.EqualFold("ServiceFailureException", errorCode):
4737		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4738
4739	case strings.EqualFold("ServiceUnavailableException", errorCode):
4740		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4741
4742	case strings.EqualFold("ThrottledClientException", errorCode):
4743		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4744
4745	case strings.EqualFold("UnauthorizedClientException", errorCode):
4746		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4747
4748	default:
4749		genericError := &smithy.GenericAPIError{
4750			Code:    errorCode,
4751			Message: errorMessage,
4752		}
4753		return genericError
4754
4755	}
4756}
4757
4758func awsRestjson1_deserializeOpDocumentCreateRoomOutput(v **CreateRoomOutput, value interface{}) error {
4759	if v == nil {
4760		return fmt.Errorf("unexpected nil of type %T", v)
4761	}
4762	if value == nil {
4763		return nil
4764	}
4765
4766	shape, ok := value.(map[string]interface{})
4767	if !ok {
4768		return fmt.Errorf("unexpected JSON type %v", value)
4769	}
4770
4771	var sv *CreateRoomOutput
4772	if *v == nil {
4773		sv = &CreateRoomOutput{}
4774	} else {
4775		sv = *v
4776	}
4777
4778	for key, value := range shape {
4779		switch key {
4780		case "Room":
4781			if err := awsRestjson1_deserializeDocumentRoom(&sv.Room, value); err != nil {
4782				return err
4783			}
4784
4785		default:
4786			_, _ = key, value
4787
4788		}
4789	}
4790	*v = sv
4791	return nil
4792}
4793
4794type awsRestjson1_deserializeOpCreateRoomMembership struct {
4795}
4796
4797func (*awsRestjson1_deserializeOpCreateRoomMembership) ID() string {
4798	return "OperationDeserializer"
4799}
4800
4801func (m *awsRestjson1_deserializeOpCreateRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4802	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4803) {
4804	out, metadata, err = next.HandleDeserialize(ctx, in)
4805	if err != nil {
4806		return out, metadata, err
4807	}
4808
4809	response, ok := out.RawResponse.(*smithyhttp.Response)
4810	if !ok {
4811		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4812	}
4813
4814	if response.StatusCode < 200 || response.StatusCode >= 300 {
4815		return out, metadata, awsRestjson1_deserializeOpErrorCreateRoomMembership(response, &metadata)
4816	}
4817	output := &CreateRoomMembershipOutput{}
4818	out.Result = output
4819
4820	var buff [1024]byte
4821	ringBuffer := smithyio.NewRingBuffer(buff[:])
4822
4823	body := io.TeeReader(response.Body, ringBuffer)
4824
4825	decoder := json.NewDecoder(body)
4826	decoder.UseNumber()
4827	var shape interface{}
4828	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4829		var snapshot bytes.Buffer
4830		io.Copy(&snapshot, ringBuffer)
4831		err = &smithy.DeserializationError{
4832			Err:      fmt.Errorf("failed to decode response body, %w", err),
4833			Snapshot: snapshot.Bytes(),
4834		}
4835		return out, metadata, err
4836	}
4837
4838	err = awsRestjson1_deserializeOpDocumentCreateRoomMembershipOutput(&output, shape)
4839	if err != nil {
4840		var snapshot bytes.Buffer
4841		io.Copy(&snapshot, ringBuffer)
4842		return out, metadata, &smithy.DeserializationError{
4843			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4844			Snapshot: snapshot.Bytes(),
4845		}
4846	}
4847
4848	return out, metadata, err
4849}
4850
4851func awsRestjson1_deserializeOpErrorCreateRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4852	var errorBuffer bytes.Buffer
4853	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4854		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4855	}
4856	errorBody := bytes.NewReader(errorBuffer.Bytes())
4857
4858	errorCode := "UnknownError"
4859	errorMessage := errorCode
4860
4861	code := response.Header.Get("X-Amzn-ErrorType")
4862	if len(code) != 0 {
4863		errorCode = restjson.SanitizeErrorCode(code)
4864	}
4865
4866	var buff [1024]byte
4867	ringBuffer := smithyio.NewRingBuffer(buff[:])
4868
4869	body := io.TeeReader(errorBody, ringBuffer)
4870	decoder := json.NewDecoder(body)
4871	decoder.UseNumber()
4872	code, message, err := restjson.GetErrorInfo(decoder)
4873	if err != nil {
4874		var snapshot bytes.Buffer
4875		io.Copy(&snapshot, ringBuffer)
4876		err = &smithy.DeserializationError{
4877			Err:      fmt.Errorf("failed to decode response body, %w", err),
4878			Snapshot: snapshot.Bytes(),
4879		}
4880		return err
4881	}
4882
4883	errorBody.Seek(0, io.SeekStart)
4884	if len(code) != 0 {
4885		errorCode = restjson.SanitizeErrorCode(code)
4886	}
4887	if len(message) != 0 {
4888		errorMessage = message
4889	}
4890
4891	switch {
4892	case strings.EqualFold("BadRequestException", errorCode):
4893		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4894
4895	case strings.EqualFold("ConflictException", errorCode):
4896		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
4897
4898	case strings.EqualFold("ForbiddenException", errorCode):
4899		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4900
4901	case strings.EqualFold("NotFoundException", errorCode):
4902		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
4903
4904	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4905		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4906
4907	case strings.EqualFold("ServiceFailureException", errorCode):
4908		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4909
4910	case strings.EqualFold("ServiceUnavailableException", errorCode):
4911		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4912
4913	case strings.EqualFold("ThrottledClientException", errorCode):
4914		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4915
4916	case strings.EqualFold("UnauthorizedClientException", errorCode):
4917		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4918
4919	default:
4920		genericError := &smithy.GenericAPIError{
4921			Code:    errorCode,
4922			Message: errorMessage,
4923		}
4924		return genericError
4925
4926	}
4927}
4928
4929func awsRestjson1_deserializeOpDocumentCreateRoomMembershipOutput(v **CreateRoomMembershipOutput, value interface{}) error {
4930	if v == nil {
4931		return fmt.Errorf("unexpected nil of type %T", v)
4932	}
4933	if value == nil {
4934		return nil
4935	}
4936
4937	shape, ok := value.(map[string]interface{})
4938	if !ok {
4939		return fmt.Errorf("unexpected JSON type %v", value)
4940	}
4941
4942	var sv *CreateRoomMembershipOutput
4943	if *v == nil {
4944		sv = &CreateRoomMembershipOutput{}
4945	} else {
4946		sv = *v
4947	}
4948
4949	for key, value := range shape {
4950		switch key {
4951		case "RoomMembership":
4952			if err := awsRestjson1_deserializeDocumentRoomMembership(&sv.RoomMembership, value); err != nil {
4953				return err
4954			}
4955
4956		default:
4957			_, _ = key, value
4958
4959		}
4960	}
4961	*v = sv
4962	return nil
4963}
4964
4965type awsRestjson1_deserializeOpCreateSipMediaApplication struct {
4966}
4967
4968func (*awsRestjson1_deserializeOpCreateSipMediaApplication) ID() string {
4969	return "OperationDeserializer"
4970}
4971
4972func (m *awsRestjson1_deserializeOpCreateSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4973	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4974) {
4975	out, metadata, err = next.HandleDeserialize(ctx, in)
4976	if err != nil {
4977		return out, metadata, err
4978	}
4979
4980	response, ok := out.RawResponse.(*smithyhttp.Response)
4981	if !ok {
4982		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4983	}
4984
4985	if response.StatusCode < 200 || response.StatusCode >= 300 {
4986		return out, metadata, awsRestjson1_deserializeOpErrorCreateSipMediaApplication(response, &metadata)
4987	}
4988	output := &CreateSipMediaApplicationOutput{}
4989	out.Result = output
4990
4991	var buff [1024]byte
4992	ringBuffer := smithyio.NewRingBuffer(buff[:])
4993
4994	body := io.TeeReader(response.Body, ringBuffer)
4995
4996	decoder := json.NewDecoder(body)
4997	decoder.UseNumber()
4998	var shape interface{}
4999	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5000		var snapshot bytes.Buffer
5001		io.Copy(&snapshot, ringBuffer)
5002		err = &smithy.DeserializationError{
5003			Err:      fmt.Errorf("failed to decode response body, %w", err),
5004			Snapshot: snapshot.Bytes(),
5005		}
5006		return out, metadata, err
5007	}
5008
5009	err = awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationOutput(&output, shape)
5010	if err != nil {
5011		var snapshot bytes.Buffer
5012		io.Copy(&snapshot, ringBuffer)
5013		return out, metadata, &smithy.DeserializationError{
5014			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5015			Snapshot: snapshot.Bytes(),
5016		}
5017	}
5018
5019	return out, metadata, err
5020}
5021
5022func awsRestjson1_deserializeOpErrorCreateSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5023	var errorBuffer bytes.Buffer
5024	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5025		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5026	}
5027	errorBody := bytes.NewReader(errorBuffer.Bytes())
5028
5029	errorCode := "UnknownError"
5030	errorMessage := errorCode
5031
5032	code := response.Header.Get("X-Amzn-ErrorType")
5033	if len(code) != 0 {
5034		errorCode = restjson.SanitizeErrorCode(code)
5035	}
5036
5037	var buff [1024]byte
5038	ringBuffer := smithyio.NewRingBuffer(buff[:])
5039
5040	body := io.TeeReader(errorBody, ringBuffer)
5041	decoder := json.NewDecoder(body)
5042	decoder.UseNumber()
5043	code, message, err := restjson.GetErrorInfo(decoder)
5044	if err != nil {
5045		var snapshot bytes.Buffer
5046		io.Copy(&snapshot, ringBuffer)
5047		err = &smithy.DeserializationError{
5048			Err:      fmt.Errorf("failed to decode response body, %w", err),
5049			Snapshot: snapshot.Bytes(),
5050		}
5051		return err
5052	}
5053
5054	errorBody.Seek(0, io.SeekStart)
5055	if len(code) != 0 {
5056		errorCode = restjson.SanitizeErrorCode(code)
5057	}
5058	if len(message) != 0 {
5059		errorMessage = message
5060	}
5061
5062	switch {
5063	case strings.EqualFold("AccessDeniedException", errorCode):
5064		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5065
5066	case strings.EqualFold("BadRequestException", errorCode):
5067		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5068
5069	case strings.EqualFold("ConflictException", errorCode):
5070		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
5071
5072	case strings.EqualFold("ForbiddenException", errorCode):
5073		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5074
5075	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5076		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5077
5078	case strings.EqualFold("ServiceFailureException", errorCode):
5079		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5080
5081	case strings.EqualFold("ServiceUnavailableException", errorCode):
5082		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5083
5084	case strings.EqualFold("ThrottledClientException", errorCode):
5085		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5086
5087	case strings.EqualFold("UnauthorizedClientException", errorCode):
5088		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5089
5090	default:
5091		genericError := &smithy.GenericAPIError{
5092			Code:    errorCode,
5093			Message: errorMessage,
5094		}
5095		return genericError
5096
5097	}
5098}
5099
5100func awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationOutput(v **CreateSipMediaApplicationOutput, value interface{}) error {
5101	if v == nil {
5102		return fmt.Errorf("unexpected nil of type %T", v)
5103	}
5104	if value == nil {
5105		return nil
5106	}
5107
5108	shape, ok := value.(map[string]interface{})
5109	if !ok {
5110		return fmt.Errorf("unexpected JSON type %v", value)
5111	}
5112
5113	var sv *CreateSipMediaApplicationOutput
5114	if *v == nil {
5115		sv = &CreateSipMediaApplicationOutput{}
5116	} else {
5117		sv = *v
5118	}
5119
5120	for key, value := range shape {
5121		switch key {
5122		case "SipMediaApplication":
5123			if err := awsRestjson1_deserializeDocumentSipMediaApplication(&sv.SipMediaApplication, value); err != nil {
5124				return err
5125			}
5126
5127		default:
5128			_, _ = key, value
5129
5130		}
5131	}
5132	*v = sv
5133	return nil
5134}
5135
5136type awsRestjson1_deserializeOpCreateSipMediaApplicationCall struct {
5137}
5138
5139func (*awsRestjson1_deserializeOpCreateSipMediaApplicationCall) ID() string {
5140	return "OperationDeserializer"
5141}
5142
5143func (m *awsRestjson1_deserializeOpCreateSipMediaApplicationCall) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5144	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5145) {
5146	out, metadata, err = next.HandleDeserialize(ctx, in)
5147	if err != nil {
5148		return out, metadata, err
5149	}
5150
5151	response, ok := out.RawResponse.(*smithyhttp.Response)
5152	if !ok {
5153		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5154	}
5155
5156	if response.StatusCode < 200 || response.StatusCode >= 300 {
5157		return out, metadata, awsRestjson1_deserializeOpErrorCreateSipMediaApplicationCall(response, &metadata)
5158	}
5159	output := &CreateSipMediaApplicationCallOutput{}
5160	out.Result = output
5161
5162	var buff [1024]byte
5163	ringBuffer := smithyio.NewRingBuffer(buff[:])
5164
5165	body := io.TeeReader(response.Body, ringBuffer)
5166
5167	decoder := json.NewDecoder(body)
5168	decoder.UseNumber()
5169	var shape interface{}
5170	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5171		var snapshot bytes.Buffer
5172		io.Copy(&snapshot, ringBuffer)
5173		err = &smithy.DeserializationError{
5174			Err:      fmt.Errorf("failed to decode response body, %w", err),
5175			Snapshot: snapshot.Bytes(),
5176		}
5177		return out, metadata, err
5178	}
5179
5180	err = awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationCallOutput(&output, shape)
5181	if err != nil {
5182		var snapshot bytes.Buffer
5183		io.Copy(&snapshot, ringBuffer)
5184		return out, metadata, &smithy.DeserializationError{
5185			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5186			Snapshot: snapshot.Bytes(),
5187		}
5188	}
5189
5190	return out, metadata, err
5191}
5192
5193func awsRestjson1_deserializeOpErrorCreateSipMediaApplicationCall(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5194	var errorBuffer bytes.Buffer
5195	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5196		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5197	}
5198	errorBody := bytes.NewReader(errorBuffer.Bytes())
5199
5200	errorCode := "UnknownError"
5201	errorMessage := errorCode
5202
5203	code := response.Header.Get("X-Amzn-ErrorType")
5204	if len(code) != 0 {
5205		errorCode = restjson.SanitizeErrorCode(code)
5206	}
5207
5208	var buff [1024]byte
5209	ringBuffer := smithyio.NewRingBuffer(buff[:])
5210
5211	body := io.TeeReader(errorBody, ringBuffer)
5212	decoder := json.NewDecoder(body)
5213	decoder.UseNumber()
5214	code, message, err := restjson.GetErrorInfo(decoder)
5215	if err != nil {
5216		var snapshot bytes.Buffer
5217		io.Copy(&snapshot, ringBuffer)
5218		err = &smithy.DeserializationError{
5219			Err:      fmt.Errorf("failed to decode response body, %w", err),
5220			Snapshot: snapshot.Bytes(),
5221		}
5222		return err
5223	}
5224
5225	errorBody.Seek(0, io.SeekStart)
5226	if len(code) != 0 {
5227		errorCode = restjson.SanitizeErrorCode(code)
5228	}
5229	if len(message) != 0 {
5230		errorMessage = message
5231	}
5232
5233	switch {
5234	case strings.EqualFold("AccessDeniedException", errorCode):
5235		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5236
5237	case strings.EqualFold("BadRequestException", errorCode):
5238		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5239
5240	case strings.EqualFold("ForbiddenException", errorCode):
5241		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5242
5243	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5244		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5245
5246	case strings.EqualFold("ServiceFailureException", errorCode):
5247		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5248
5249	case strings.EqualFold("ServiceUnavailableException", errorCode):
5250		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5251
5252	case strings.EqualFold("ThrottledClientException", errorCode):
5253		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5254
5255	case strings.EqualFold("UnauthorizedClientException", errorCode):
5256		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5257
5258	default:
5259		genericError := &smithy.GenericAPIError{
5260			Code:    errorCode,
5261			Message: errorMessage,
5262		}
5263		return genericError
5264
5265	}
5266}
5267
5268func awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationCallOutput(v **CreateSipMediaApplicationCallOutput, value interface{}) error {
5269	if v == nil {
5270		return fmt.Errorf("unexpected nil of type %T", v)
5271	}
5272	if value == nil {
5273		return nil
5274	}
5275
5276	shape, ok := value.(map[string]interface{})
5277	if !ok {
5278		return fmt.Errorf("unexpected JSON type %v", value)
5279	}
5280
5281	var sv *CreateSipMediaApplicationCallOutput
5282	if *v == nil {
5283		sv = &CreateSipMediaApplicationCallOutput{}
5284	} else {
5285		sv = *v
5286	}
5287
5288	for key, value := range shape {
5289		switch key {
5290		case "SipMediaApplicationCall":
5291			if err := awsRestjson1_deserializeDocumentSipMediaApplicationCall(&sv.SipMediaApplicationCall, value); err != nil {
5292				return err
5293			}
5294
5295		default:
5296			_, _ = key, value
5297
5298		}
5299	}
5300	*v = sv
5301	return nil
5302}
5303
5304type awsRestjson1_deserializeOpCreateSipRule struct {
5305}
5306
5307func (*awsRestjson1_deserializeOpCreateSipRule) ID() string {
5308	return "OperationDeserializer"
5309}
5310
5311func (m *awsRestjson1_deserializeOpCreateSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5312	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5313) {
5314	out, metadata, err = next.HandleDeserialize(ctx, in)
5315	if err != nil {
5316		return out, metadata, err
5317	}
5318
5319	response, ok := out.RawResponse.(*smithyhttp.Response)
5320	if !ok {
5321		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5322	}
5323
5324	if response.StatusCode < 200 || response.StatusCode >= 300 {
5325		return out, metadata, awsRestjson1_deserializeOpErrorCreateSipRule(response, &metadata)
5326	}
5327	output := &CreateSipRuleOutput{}
5328	out.Result = output
5329
5330	var buff [1024]byte
5331	ringBuffer := smithyio.NewRingBuffer(buff[:])
5332
5333	body := io.TeeReader(response.Body, ringBuffer)
5334
5335	decoder := json.NewDecoder(body)
5336	decoder.UseNumber()
5337	var shape interface{}
5338	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5339		var snapshot bytes.Buffer
5340		io.Copy(&snapshot, ringBuffer)
5341		err = &smithy.DeserializationError{
5342			Err:      fmt.Errorf("failed to decode response body, %w", err),
5343			Snapshot: snapshot.Bytes(),
5344		}
5345		return out, metadata, err
5346	}
5347
5348	err = awsRestjson1_deserializeOpDocumentCreateSipRuleOutput(&output, shape)
5349	if err != nil {
5350		var snapshot bytes.Buffer
5351		io.Copy(&snapshot, ringBuffer)
5352		return out, metadata, &smithy.DeserializationError{
5353			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5354			Snapshot: snapshot.Bytes(),
5355		}
5356	}
5357
5358	return out, metadata, err
5359}
5360
5361func awsRestjson1_deserializeOpErrorCreateSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5362	var errorBuffer bytes.Buffer
5363	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5364		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5365	}
5366	errorBody := bytes.NewReader(errorBuffer.Bytes())
5367
5368	errorCode := "UnknownError"
5369	errorMessage := errorCode
5370
5371	code := response.Header.Get("X-Amzn-ErrorType")
5372	if len(code) != 0 {
5373		errorCode = restjson.SanitizeErrorCode(code)
5374	}
5375
5376	var buff [1024]byte
5377	ringBuffer := smithyio.NewRingBuffer(buff[:])
5378
5379	body := io.TeeReader(errorBody, ringBuffer)
5380	decoder := json.NewDecoder(body)
5381	decoder.UseNumber()
5382	code, message, err := restjson.GetErrorInfo(decoder)
5383	if err != nil {
5384		var snapshot bytes.Buffer
5385		io.Copy(&snapshot, ringBuffer)
5386		err = &smithy.DeserializationError{
5387			Err:      fmt.Errorf("failed to decode response body, %w", err),
5388			Snapshot: snapshot.Bytes(),
5389		}
5390		return err
5391	}
5392
5393	errorBody.Seek(0, io.SeekStart)
5394	if len(code) != 0 {
5395		errorCode = restjson.SanitizeErrorCode(code)
5396	}
5397	if len(message) != 0 {
5398		errorMessage = message
5399	}
5400
5401	switch {
5402	case strings.EqualFold("AccessDeniedException", errorCode):
5403		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5404
5405	case strings.EqualFold("BadRequestException", errorCode):
5406		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5407
5408	case strings.EqualFold("ConflictException", errorCode):
5409		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
5410
5411	case strings.EqualFold("ForbiddenException", errorCode):
5412		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5413
5414	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5415		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5416
5417	case strings.EqualFold("ServiceFailureException", errorCode):
5418		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5419
5420	case strings.EqualFold("ServiceUnavailableException", errorCode):
5421		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5422
5423	case strings.EqualFold("ThrottledClientException", errorCode):
5424		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5425
5426	case strings.EqualFold("UnauthorizedClientException", errorCode):
5427		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5428
5429	default:
5430		genericError := &smithy.GenericAPIError{
5431			Code:    errorCode,
5432			Message: errorMessage,
5433		}
5434		return genericError
5435
5436	}
5437}
5438
5439func awsRestjson1_deserializeOpDocumentCreateSipRuleOutput(v **CreateSipRuleOutput, value interface{}) error {
5440	if v == nil {
5441		return fmt.Errorf("unexpected nil of type %T", v)
5442	}
5443	if value == nil {
5444		return nil
5445	}
5446
5447	shape, ok := value.(map[string]interface{})
5448	if !ok {
5449		return fmt.Errorf("unexpected JSON type %v", value)
5450	}
5451
5452	var sv *CreateSipRuleOutput
5453	if *v == nil {
5454		sv = &CreateSipRuleOutput{}
5455	} else {
5456		sv = *v
5457	}
5458
5459	for key, value := range shape {
5460		switch key {
5461		case "SipRule":
5462			if err := awsRestjson1_deserializeDocumentSipRule(&sv.SipRule, value); err != nil {
5463				return err
5464			}
5465
5466		default:
5467			_, _ = key, value
5468
5469		}
5470	}
5471	*v = sv
5472	return nil
5473}
5474
5475type awsRestjson1_deserializeOpCreateUser struct {
5476}
5477
5478func (*awsRestjson1_deserializeOpCreateUser) ID() string {
5479	return "OperationDeserializer"
5480}
5481
5482func (m *awsRestjson1_deserializeOpCreateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5483	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5484) {
5485	out, metadata, err = next.HandleDeserialize(ctx, in)
5486	if err != nil {
5487		return out, metadata, err
5488	}
5489
5490	response, ok := out.RawResponse.(*smithyhttp.Response)
5491	if !ok {
5492		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5493	}
5494
5495	if response.StatusCode < 200 || response.StatusCode >= 300 {
5496		return out, metadata, awsRestjson1_deserializeOpErrorCreateUser(response, &metadata)
5497	}
5498	output := &CreateUserOutput{}
5499	out.Result = output
5500
5501	var buff [1024]byte
5502	ringBuffer := smithyio.NewRingBuffer(buff[:])
5503
5504	body := io.TeeReader(response.Body, ringBuffer)
5505
5506	decoder := json.NewDecoder(body)
5507	decoder.UseNumber()
5508	var shape interface{}
5509	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5510		var snapshot bytes.Buffer
5511		io.Copy(&snapshot, ringBuffer)
5512		err = &smithy.DeserializationError{
5513			Err:      fmt.Errorf("failed to decode response body, %w", err),
5514			Snapshot: snapshot.Bytes(),
5515		}
5516		return out, metadata, err
5517	}
5518
5519	err = awsRestjson1_deserializeOpDocumentCreateUserOutput(&output, shape)
5520	if err != nil {
5521		var snapshot bytes.Buffer
5522		io.Copy(&snapshot, ringBuffer)
5523		return out, metadata, &smithy.DeserializationError{
5524			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5525			Snapshot: snapshot.Bytes(),
5526		}
5527	}
5528
5529	return out, metadata, err
5530}
5531
5532func awsRestjson1_deserializeOpErrorCreateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5533	var errorBuffer bytes.Buffer
5534	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5535		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5536	}
5537	errorBody := bytes.NewReader(errorBuffer.Bytes())
5538
5539	errorCode := "UnknownError"
5540	errorMessage := errorCode
5541
5542	code := response.Header.Get("X-Amzn-ErrorType")
5543	if len(code) != 0 {
5544		errorCode = restjson.SanitizeErrorCode(code)
5545	}
5546
5547	var buff [1024]byte
5548	ringBuffer := smithyio.NewRingBuffer(buff[:])
5549
5550	body := io.TeeReader(errorBody, ringBuffer)
5551	decoder := json.NewDecoder(body)
5552	decoder.UseNumber()
5553	code, message, err := restjson.GetErrorInfo(decoder)
5554	if err != nil {
5555		var snapshot bytes.Buffer
5556		io.Copy(&snapshot, ringBuffer)
5557		err = &smithy.DeserializationError{
5558			Err:      fmt.Errorf("failed to decode response body, %w", err),
5559			Snapshot: snapshot.Bytes(),
5560		}
5561		return err
5562	}
5563
5564	errorBody.Seek(0, io.SeekStart)
5565	if len(code) != 0 {
5566		errorCode = restjson.SanitizeErrorCode(code)
5567	}
5568	if len(message) != 0 {
5569		errorMessage = message
5570	}
5571
5572	switch {
5573	case strings.EqualFold("BadRequestException", errorCode):
5574		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5575
5576	case strings.EqualFold("ConflictException", errorCode):
5577		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
5578
5579	case strings.EqualFold("ForbiddenException", errorCode):
5580		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5581
5582	case strings.EqualFold("NotFoundException", errorCode):
5583		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
5584
5585	case strings.EqualFold("ServiceFailureException", errorCode):
5586		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5587
5588	case strings.EqualFold("ServiceUnavailableException", errorCode):
5589		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5590
5591	case strings.EqualFold("ThrottledClientException", errorCode):
5592		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5593
5594	case strings.EqualFold("UnauthorizedClientException", errorCode):
5595		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5596
5597	default:
5598		genericError := &smithy.GenericAPIError{
5599			Code:    errorCode,
5600			Message: errorMessage,
5601		}
5602		return genericError
5603
5604	}
5605}
5606
5607func awsRestjson1_deserializeOpDocumentCreateUserOutput(v **CreateUserOutput, value interface{}) error {
5608	if v == nil {
5609		return fmt.Errorf("unexpected nil of type %T", v)
5610	}
5611	if value == nil {
5612		return nil
5613	}
5614
5615	shape, ok := value.(map[string]interface{})
5616	if !ok {
5617		return fmt.Errorf("unexpected JSON type %v", value)
5618	}
5619
5620	var sv *CreateUserOutput
5621	if *v == nil {
5622		sv = &CreateUserOutput{}
5623	} else {
5624		sv = *v
5625	}
5626
5627	for key, value := range shape {
5628		switch key {
5629		case "User":
5630			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
5631				return err
5632			}
5633
5634		default:
5635			_, _ = key, value
5636
5637		}
5638	}
5639	*v = sv
5640	return nil
5641}
5642
5643type awsRestjson1_deserializeOpCreateVoiceConnector struct {
5644}
5645
5646func (*awsRestjson1_deserializeOpCreateVoiceConnector) ID() string {
5647	return "OperationDeserializer"
5648}
5649
5650func (m *awsRestjson1_deserializeOpCreateVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5651	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5652) {
5653	out, metadata, err = next.HandleDeserialize(ctx, in)
5654	if err != nil {
5655		return out, metadata, err
5656	}
5657
5658	response, ok := out.RawResponse.(*smithyhttp.Response)
5659	if !ok {
5660		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5661	}
5662
5663	if response.StatusCode < 200 || response.StatusCode >= 300 {
5664		return out, metadata, awsRestjson1_deserializeOpErrorCreateVoiceConnector(response, &metadata)
5665	}
5666	output := &CreateVoiceConnectorOutput{}
5667	out.Result = output
5668
5669	var buff [1024]byte
5670	ringBuffer := smithyio.NewRingBuffer(buff[:])
5671
5672	body := io.TeeReader(response.Body, ringBuffer)
5673
5674	decoder := json.NewDecoder(body)
5675	decoder.UseNumber()
5676	var shape interface{}
5677	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5678		var snapshot bytes.Buffer
5679		io.Copy(&snapshot, ringBuffer)
5680		err = &smithy.DeserializationError{
5681			Err:      fmt.Errorf("failed to decode response body, %w", err),
5682			Snapshot: snapshot.Bytes(),
5683		}
5684		return out, metadata, err
5685	}
5686
5687	err = awsRestjson1_deserializeOpDocumentCreateVoiceConnectorOutput(&output, shape)
5688	if err != nil {
5689		var snapshot bytes.Buffer
5690		io.Copy(&snapshot, ringBuffer)
5691		return out, metadata, &smithy.DeserializationError{
5692			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5693			Snapshot: snapshot.Bytes(),
5694		}
5695	}
5696
5697	return out, metadata, err
5698}
5699
5700func awsRestjson1_deserializeOpErrorCreateVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5701	var errorBuffer bytes.Buffer
5702	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5703		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5704	}
5705	errorBody := bytes.NewReader(errorBuffer.Bytes())
5706
5707	errorCode := "UnknownError"
5708	errorMessage := errorCode
5709
5710	code := response.Header.Get("X-Amzn-ErrorType")
5711	if len(code) != 0 {
5712		errorCode = restjson.SanitizeErrorCode(code)
5713	}
5714
5715	var buff [1024]byte
5716	ringBuffer := smithyio.NewRingBuffer(buff[:])
5717
5718	body := io.TeeReader(errorBody, ringBuffer)
5719	decoder := json.NewDecoder(body)
5720	decoder.UseNumber()
5721	code, message, err := restjson.GetErrorInfo(decoder)
5722	if err != nil {
5723		var snapshot bytes.Buffer
5724		io.Copy(&snapshot, ringBuffer)
5725		err = &smithy.DeserializationError{
5726			Err:      fmt.Errorf("failed to decode response body, %w", err),
5727			Snapshot: snapshot.Bytes(),
5728		}
5729		return err
5730	}
5731
5732	errorBody.Seek(0, io.SeekStart)
5733	if len(code) != 0 {
5734		errorCode = restjson.SanitizeErrorCode(code)
5735	}
5736	if len(message) != 0 {
5737		errorMessage = message
5738	}
5739
5740	switch {
5741	case strings.EqualFold("AccessDeniedException", errorCode):
5742		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5743
5744	case strings.EqualFold("BadRequestException", errorCode):
5745		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5746
5747	case strings.EqualFold("ForbiddenException", errorCode):
5748		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5749
5750	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5751		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5752
5753	case strings.EqualFold("ServiceFailureException", errorCode):
5754		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5755
5756	case strings.EqualFold("ServiceUnavailableException", errorCode):
5757		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5758
5759	case strings.EqualFold("ThrottledClientException", errorCode):
5760		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5761
5762	case strings.EqualFold("UnauthorizedClientException", errorCode):
5763		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5764
5765	default:
5766		genericError := &smithy.GenericAPIError{
5767			Code:    errorCode,
5768			Message: errorMessage,
5769		}
5770		return genericError
5771
5772	}
5773}
5774
5775func awsRestjson1_deserializeOpDocumentCreateVoiceConnectorOutput(v **CreateVoiceConnectorOutput, value interface{}) error {
5776	if v == nil {
5777		return fmt.Errorf("unexpected nil of type %T", v)
5778	}
5779	if value == nil {
5780		return nil
5781	}
5782
5783	shape, ok := value.(map[string]interface{})
5784	if !ok {
5785		return fmt.Errorf("unexpected JSON type %v", value)
5786	}
5787
5788	var sv *CreateVoiceConnectorOutput
5789	if *v == nil {
5790		sv = &CreateVoiceConnectorOutput{}
5791	} else {
5792		sv = *v
5793	}
5794
5795	for key, value := range shape {
5796		switch key {
5797		case "VoiceConnector":
5798			if err := awsRestjson1_deserializeDocumentVoiceConnector(&sv.VoiceConnector, value); err != nil {
5799				return err
5800			}
5801
5802		default:
5803			_, _ = key, value
5804
5805		}
5806	}
5807	*v = sv
5808	return nil
5809}
5810
5811type awsRestjson1_deserializeOpCreateVoiceConnectorGroup struct {
5812}
5813
5814func (*awsRestjson1_deserializeOpCreateVoiceConnectorGroup) ID() string {
5815	return "OperationDeserializer"
5816}
5817
5818func (m *awsRestjson1_deserializeOpCreateVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5819	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5820) {
5821	out, metadata, err = next.HandleDeserialize(ctx, in)
5822	if err != nil {
5823		return out, metadata, err
5824	}
5825
5826	response, ok := out.RawResponse.(*smithyhttp.Response)
5827	if !ok {
5828		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5829	}
5830
5831	if response.StatusCode < 200 || response.StatusCode >= 300 {
5832		return out, metadata, awsRestjson1_deserializeOpErrorCreateVoiceConnectorGroup(response, &metadata)
5833	}
5834	output := &CreateVoiceConnectorGroupOutput{}
5835	out.Result = output
5836
5837	var buff [1024]byte
5838	ringBuffer := smithyio.NewRingBuffer(buff[:])
5839
5840	body := io.TeeReader(response.Body, ringBuffer)
5841
5842	decoder := json.NewDecoder(body)
5843	decoder.UseNumber()
5844	var shape interface{}
5845	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5846		var snapshot bytes.Buffer
5847		io.Copy(&snapshot, ringBuffer)
5848		err = &smithy.DeserializationError{
5849			Err:      fmt.Errorf("failed to decode response body, %w", err),
5850			Snapshot: snapshot.Bytes(),
5851		}
5852		return out, metadata, err
5853	}
5854
5855	err = awsRestjson1_deserializeOpDocumentCreateVoiceConnectorGroupOutput(&output, shape)
5856	if err != nil {
5857		var snapshot bytes.Buffer
5858		io.Copy(&snapshot, ringBuffer)
5859		return out, metadata, &smithy.DeserializationError{
5860			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5861			Snapshot: snapshot.Bytes(),
5862		}
5863	}
5864
5865	return out, metadata, err
5866}
5867
5868func awsRestjson1_deserializeOpErrorCreateVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5869	var errorBuffer bytes.Buffer
5870	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5871		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5872	}
5873	errorBody := bytes.NewReader(errorBuffer.Bytes())
5874
5875	errorCode := "UnknownError"
5876	errorMessage := errorCode
5877
5878	code := response.Header.Get("X-Amzn-ErrorType")
5879	if len(code) != 0 {
5880		errorCode = restjson.SanitizeErrorCode(code)
5881	}
5882
5883	var buff [1024]byte
5884	ringBuffer := smithyio.NewRingBuffer(buff[:])
5885
5886	body := io.TeeReader(errorBody, ringBuffer)
5887	decoder := json.NewDecoder(body)
5888	decoder.UseNumber()
5889	code, message, err := restjson.GetErrorInfo(decoder)
5890	if err != nil {
5891		var snapshot bytes.Buffer
5892		io.Copy(&snapshot, ringBuffer)
5893		err = &smithy.DeserializationError{
5894			Err:      fmt.Errorf("failed to decode response body, %w", err),
5895			Snapshot: snapshot.Bytes(),
5896		}
5897		return err
5898	}
5899
5900	errorBody.Seek(0, io.SeekStart)
5901	if len(code) != 0 {
5902		errorCode = restjson.SanitizeErrorCode(code)
5903	}
5904	if len(message) != 0 {
5905		errorMessage = message
5906	}
5907
5908	switch {
5909	case strings.EqualFold("AccessDeniedException", errorCode):
5910		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5911
5912	case strings.EqualFold("BadRequestException", errorCode):
5913		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5914
5915	case strings.EqualFold("ForbiddenException", errorCode):
5916		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5917
5918	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5919		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5920
5921	case strings.EqualFold("ServiceFailureException", errorCode):
5922		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5923
5924	case strings.EqualFold("ServiceUnavailableException", errorCode):
5925		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5926
5927	case strings.EqualFold("ThrottledClientException", errorCode):
5928		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5929
5930	case strings.EqualFold("UnauthorizedClientException", errorCode):
5931		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5932
5933	default:
5934		genericError := &smithy.GenericAPIError{
5935			Code:    errorCode,
5936			Message: errorMessage,
5937		}
5938		return genericError
5939
5940	}
5941}
5942
5943func awsRestjson1_deserializeOpDocumentCreateVoiceConnectorGroupOutput(v **CreateVoiceConnectorGroupOutput, value interface{}) error {
5944	if v == nil {
5945		return fmt.Errorf("unexpected nil of type %T", v)
5946	}
5947	if value == nil {
5948		return nil
5949	}
5950
5951	shape, ok := value.(map[string]interface{})
5952	if !ok {
5953		return fmt.Errorf("unexpected JSON type %v", value)
5954	}
5955
5956	var sv *CreateVoiceConnectorGroupOutput
5957	if *v == nil {
5958		sv = &CreateVoiceConnectorGroupOutput{}
5959	} else {
5960		sv = *v
5961	}
5962
5963	for key, value := range shape {
5964		switch key {
5965		case "VoiceConnectorGroup":
5966			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&sv.VoiceConnectorGroup, value); err != nil {
5967				return err
5968			}
5969
5970		default:
5971			_, _ = key, value
5972
5973		}
5974	}
5975	*v = sv
5976	return nil
5977}
5978
5979type awsRestjson1_deserializeOpDeleteAccount struct {
5980}
5981
5982func (*awsRestjson1_deserializeOpDeleteAccount) ID() string {
5983	return "OperationDeserializer"
5984}
5985
5986func (m *awsRestjson1_deserializeOpDeleteAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5987	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5988) {
5989	out, metadata, err = next.HandleDeserialize(ctx, in)
5990	if err != nil {
5991		return out, metadata, err
5992	}
5993
5994	response, ok := out.RawResponse.(*smithyhttp.Response)
5995	if !ok {
5996		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5997	}
5998
5999	if response.StatusCode < 200 || response.StatusCode >= 300 {
6000		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAccount(response, &metadata)
6001	}
6002	output := &DeleteAccountOutput{}
6003	out.Result = output
6004
6005	return out, metadata, err
6006}
6007
6008func awsRestjson1_deserializeOpErrorDeleteAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6009	var errorBuffer bytes.Buffer
6010	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6011		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6012	}
6013	errorBody := bytes.NewReader(errorBuffer.Bytes())
6014
6015	errorCode := "UnknownError"
6016	errorMessage := errorCode
6017
6018	code := response.Header.Get("X-Amzn-ErrorType")
6019	if len(code) != 0 {
6020		errorCode = restjson.SanitizeErrorCode(code)
6021	}
6022
6023	var buff [1024]byte
6024	ringBuffer := smithyio.NewRingBuffer(buff[:])
6025
6026	body := io.TeeReader(errorBody, ringBuffer)
6027	decoder := json.NewDecoder(body)
6028	decoder.UseNumber()
6029	code, message, err := restjson.GetErrorInfo(decoder)
6030	if err != nil {
6031		var snapshot bytes.Buffer
6032		io.Copy(&snapshot, ringBuffer)
6033		err = &smithy.DeserializationError{
6034			Err:      fmt.Errorf("failed to decode response body, %w", err),
6035			Snapshot: snapshot.Bytes(),
6036		}
6037		return err
6038	}
6039
6040	errorBody.Seek(0, io.SeekStart)
6041	if len(code) != 0 {
6042		errorCode = restjson.SanitizeErrorCode(code)
6043	}
6044	if len(message) != 0 {
6045		errorMessage = message
6046	}
6047
6048	switch {
6049	case strings.EqualFold("BadRequestException", errorCode):
6050		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6051
6052	case strings.EqualFold("ForbiddenException", errorCode):
6053		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6054
6055	case strings.EqualFold("NotFoundException", errorCode):
6056		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
6057
6058	case strings.EqualFold("ServiceFailureException", errorCode):
6059		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6060
6061	case strings.EqualFold("ServiceUnavailableException", errorCode):
6062		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6063
6064	case strings.EqualFold("ThrottledClientException", errorCode):
6065		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6066
6067	case strings.EqualFold("UnauthorizedClientException", errorCode):
6068		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6069
6070	case strings.EqualFold("UnprocessableEntityException", errorCode):
6071		return awsRestjson1_deserializeErrorUnprocessableEntityException(response, errorBody)
6072
6073	default:
6074		genericError := &smithy.GenericAPIError{
6075			Code:    errorCode,
6076			Message: errorMessage,
6077		}
6078		return genericError
6079
6080	}
6081}
6082
6083type awsRestjson1_deserializeOpDeleteAppInstance struct {
6084}
6085
6086func (*awsRestjson1_deserializeOpDeleteAppInstance) ID() string {
6087	return "OperationDeserializer"
6088}
6089
6090func (m *awsRestjson1_deserializeOpDeleteAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6091	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6092) {
6093	out, metadata, err = next.HandleDeserialize(ctx, in)
6094	if err != nil {
6095		return out, metadata, err
6096	}
6097
6098	response, ok := out.RawResponse.(*smithyhttp.Response)
6099	if !ok {
6100		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6101	}
6102
6103	if response.StatusCode < 200 || response.StatusCode >= 300 {
6104		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstance(response, &metadata)
6105	}
6106	output := &DeleteAppInstanceOutput{}
6107	out.Result = output
6108
6109	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6110		return out, metadata, &smithy.DeserializationError{
6111			Err: fmt.Errorf("failed to discard response body, %w", err),
6112		}
6113	}
6114
6115	return out, metadata, err
6116}
6117
6118func awsRestjson1_deserializeOpErrorDeleteAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6119	var errorBuffer bytes.Buffer
6120	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6121		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6122	}
6123	errorBody := bytes.NewReader(errorBuffer.Bytes())
6124
6125	errorCode := "UnknownError"
6126	errorMessage := errorCode
6127
6128	code := response.Header.Get("X-Amzn-ErrorType")
6129	if len(code) != 0 {
6130		errorCode = restjson.SanitizeErrorCode(code)
6131	}
6132
6133	var buff [1024]byte
6134	ringBuffer := smithyio.NewRingBuffer(buff[:])
6135
6136	body := io.TeeReader(errorBody, ringBuffer)
6137	decoder := json.NewDecoder(body)
6138	decoder.UseNumber()
6139	code, message, err := restjson.GetErrorInfo(decoder)
6140	if err != nil {
6141		var snapshot bytes.Buffer
6142		io.Copy(&snapshot, ringBuffer)
6143		err = &smithy.DeserializationError{
6144			Err:      fmt.Errorf("failed to decode response body, %w", err),
6145			Snapshot: snapshot.Bytes(),
6146		}
6147		return err
6148	}
6149
6150	errorBody.Seek(0, io.SeekStart)
6151	if len(code) != 0 {
6152		errorCode = restjson.SanitizeErrorCode(code)
6153	}
6154	if len(message) != 0 {
6155		errorMessage = message
6156	}
6157
6158	switch {
6159	case strings.EqualFold("BadRequestException", errorCode):
6160		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6161
6162	case strings.EqualFold("ForbiddenException", errorCode):
6163		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6164
6165	case strings.EqualFold("ServiceFailureException", errorCode):
6166		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6167
6168	case strings.EqualFold("ServiceUnavailableException", errorCode):
6169		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6170
6171	case strings.EqualFold("ThrottledClientException", errorCode):
6172		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6173
6174	case strings.EqualFold("UnauthorizedClientException", errorCode):
6175		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6176
6177	default:
6178		genericError := &smithy.GenericAPIError{
6179			Code:    errorCode,
6180			Message: errorMessage,
6181		}
6182		return genericError
6183
6184	}
6185}
6186
6187type awsRestjson1_deserializeOpDeleteAppInstanceAdmin struct {
6188}
6189
6190func (*awsRestjson1_deserializeOpDeleteAppInstanceAdmin) ID() string {
6191	return "OperationDeserializer"
6192}
6193
6194func (m *awsRestjson1_deserializeOpDeleteAppInstanceAdmin) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6195	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6196) {
6197	out, metadata, err = next.HandleDeserialize(ctx, in)
6198	if err != nil {
6199		return out, metadata, err
6200	}
6201
6202	response, ok := out.RawResponse.(*smithyhttp.Response)
6203	if !ok {
6204		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6205	}
6206
6207	if response.StatusCode < 200 || response.StatusCode >= 300 {
6208		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstanceAdmin(response, &metadata)
6209	}
6210	output := &DeleteAppInstanceAdminOutput{}
6211	out.Result = output
6212
6213	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6214		return out, metadata, &smithy.DeserializationError{
6215			Err: fmt.Errorf("failed to discard response body, %w", err),
6216		}
6217	}
6218
6219	return out, metadata, err
6220}
6221
6222func awsRestjson1_deserializeOpErrorDeleteAppInstanceAdmin(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6223	var errorBuffer bytes.Buffer
6224	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6225		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6226	}
6227	errorBody := bytes.NewReader(errorBuffer.Bytes())
6228
6229	errorCode := "UnknownError"
6230	errorMessage := errorCode
6231
6232	code := response.Header.Get("X-Amzn-ErrorType")
6233	if len(code) != 0 {
6234		errorCode = restjson.SanitizeErrorCode(code)
6235	}
6236
6237	var buff [1024]byte
6238	ringBuffer := smithyio.NewRingBuffer(buff[:])
6239
6240	body := io.TeeReader(errorBody, ringBuffer)
6241	decoder := json.NewDecoder(body)
6242	decoder.UseNumber()
6243	code, message, err := restjson.GetErrorInfo(decoder)
6244	if err != nil {
6245		var snapshot bytes.Buffer
6246		io.Copy(&snapshot, ringBuffer)
6247		err = &smithy.DeserializationError{
6248			Err:      fmt.Errorf("failed to decode response body, %w", err),
6249			Snapshot: snapshot.Bytes(),
6250		}
6251		return err
6252	}
6253
6254	errorBody.Seek(0, io.SeekStart)
6255	if len(code) != 0 {
6256		errorCode = restjson.SanitizeErrorCode(code)
6257	}
6258	if len(message) != 0 {
6259		errorMessage = message
6260	}
6261
6262	switch {
6263	case strings.EqualFold("BadRequestException", errorCode):
6264		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6265
6266	case strings.EqualFold("ConflictException", errorCode):
6267		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
6268
6269	case strings.EqualFold("ForbiddenException", errorCode):
6270		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6271
6272	case strings.EqualFold("ServiceFailureException", errorCode):
6273		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6274
6275	case strings.EqualFold("ServiceUnavailableException", errorCode):
6276		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6277
6278	case strings.EqualFold("ThrottledClientException", errorCode):
6279		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6280
6281	case strings.EqualFold("UnauthorizedClientException", errorCode):
6282		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6283
6284	default:
6285		genericError := &smithy.GenericAPIError{
6286			Code:    errorCode,
6287			Message: errorMessage,
6288		}
6289		return genericError
6290
6291	}
6292}
6293
6294type awsRestjson1_deserializeOpDeleteAppInstanceStreamingConfigurations struct {
6295}
6296
6297func (*awsRestjson1_deserializeOpDeleteAppInstanceStreamingConfigurations) ID() string {
6298	return "OperationDeserializer"
6299}
6300
6301func (m *awsRestjson1_deserializeOpDeleteAppInstanceStreamingConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6302	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6303) {
6304	out, metadata, err = next.HandleDeserialize(ctx, in)
6305	if err != nil {
6306		return out, metadata, err
6307	}
6308
6309	response, ok := out.RawResponse.(*smithyhttp.Response)
6310	if !ok {
6311		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6312	}
6313
6314	if response.StatusCode < 200 || response.StatusCode >= 300 {
6315		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstanceStreamingConfigurations(response, &metadata)
6316	}
6317	output := &DeleteAppInstanceStreamingConfigurationsOutput{}
6318	out.Result = output
6319
6320	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6321		return out, metadata, &smithy.DeserializationError{
6322			Err: fmt.Errorf("failed to discard response body, %w", err),
6323		}
6324	}
6325
6326	return out, metadata, err
6327}
6328
6329func awsRestjson1_deserializeOpErrorDeleteAppInstanceStreamingConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6330	var errorBuffer bytes.Buffer
6331	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6332		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6333	}
6334	errorBody := bytes.NewReader(errorBuffer.Bytes())
6335
6336	errorCode := "UnknownError"
6337	errorMessage := errorCode
6338
6339	code := response.Header.Get("X-Amzn-ErrorType")
6340	if len(code) != 0 {
6341		errorCode = restjson.SanitizeErrorCode(code)
6342	}
6343
6344	var buff [1024]byte
6345	ringBuffer := smithyio.NewRingBuffer(buff[:])
6346
6347	body := io.TeeReader(errorBody, ringBuffer)
6348	decoder := json.NewDecoder(body)
6349	decoder.UseNumber()
6350	code, message, err := restjson.GetErrorInfo(decoder)
6351	if err != nil {
6352		var snapshot bytes.Buffer
6353		io.Copy(&snapshot, ringBuffer)
6354		err = &smithy.DeserializationError{
6355			Err:      fmt.Errorf("failed to decode response body, %w", err),
6356			Snapshot: snapshot.Bytes(),
6357		}
6358		return err
6359	}
6360
6361	errorBody.Seek(0, io.SeekStart)
6362	if len(code) != 0 {
6363		errorCode = restjson.SanitizeErrorCode(code)
6364	}
6365	if len(message) != 0 {
6366		errorMessage = message
6367	}
6368
6369	switch {
6370	case strings.EqualFold("BadRequestException", errorCode):
6371		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6372
6373	case strings.EqualFold("ForbiddenException", errorCode):
6374		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6375
6376	case strings.EqualFold("NotFoundException", errorCode):
6377		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
6378
6379	case strings.EqualFold("ServiceFailureException", errorCode):
6380		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6381
6382	case strings.EqualFold("ServiceUnavailableException", errorCode):
6383		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6384
6385	case strings.EqualFold("ThrottledClientException", errorCode):
6386		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6387
6388	case strings.EqualFold("UnauthorizedClientException", errorCode):
6389		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6390
6391	default:
6392		genericError := &smithy.GenericAPIError{
6393			Code:    errorCode,
6394			Message: errorMessage,
6395		}
6396		return genericError
6397
6398	}
6399}
6400
6401type awsRestjson1_deserializeOpDeleteAppInstanceUser struct {
6402}
6403
6404func (*awsRestjson1_deserializeOpDeleteAppInstanceUser) ID() string {
6405	return "OperationDeserializer"
6406}
6407
6408func (m *awsRestjson1_deserializeOpDeleteAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6409	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6410) {
6411	out, metadata, err = next.HandleDeserialize(ctx, in)
6412	if err != nil {
6413		return out, metadata, err
6414	}
6415
6416	response, ok := out.RawResponse.(*smithyhttp.Response)
6417	if !ok {
6418		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6419	}
6420
6421	if response.StatusCode < 200 || response.StatusCode >= 300 {
6422		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstanceUser(response, &metadata)
6423	}
6424	output := &DeleteAppInstanceUserOutput{}
6425	out.Result = output
6426
6427	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6428		return out, metadata, &smithy.DeserializationError{
6429			Err: fmt.Errorf("failed to discard response body, %w", err),
6430		}
6431	}
6432
6433	return out, metadata, err
6434}
6435
6436func awsRestjson1_deserializeOpErrorDeleteAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6437	var errorBuffer bytes.Buffer
6438	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6439		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6440	}
6441	errorBody := bytes.NewReader(errorBuffer.Bytes())
6442
6443	errorCode := "UnknownError"
6444	errorMessage := errorCode
6445
6446	code := response.Header.Get("X-Amzn-ErrorType")
6447	if len(code) != 0 {
6448		errorCode = restjson.SanitizeErrorCode(code)
6449	}
6450
6451	var buff [1024]byte
6452	ringBuffer := smithyio.NewRingBuffer(buff[:])
6453
6454	body := io.TeeReader(errorBody, ringBuffer)
6455	decoder := json.NewDecoder(body)
6456	decoder.UseNumber()
6457	code, message, err := restjson.GetErrorInfo(decoder)
6458	if err != nil {
6459		var snapshot bytes.Buffer
6460		io.Copy(&snapshot, ringBuffer)
6461		err = &smithy.DeserializationError{
6462			Err:      fmt.Errorf("failed to decode response body, %w", err),
6463			Snapshot: snapshot.Bytes(),
6464		}
6465		return err
6466	}
6467
6468	errorBody.Seek(0, io.SeekStart)
6469	if len(code) != 0 {
6470		errorCode = restjson.SanitizeErrorCode(code)
6471	}
6472	if len(message) != 0 {
6473		errorMessage = message
6474	}
6475
6476	switch {
6477	case strings.EqualFold("BadRequestException", errorCode):
6478		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6479
6480	case strings.EqualFold("ForbiddenException", errorCode):
6481		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6482
6483	case strings.EqualFold("ServiceFailureException", errorCode):
6484		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6485
6486	case strings.EqualFold("ServiceUnavailableException", errorCode):
6487		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6488
6489	case strings.EqualFold("ThrottledClientException", errorCode):
6490		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6491
6492	case strings.EqualFold("UnauthorizedClientException", errorCode):
6493		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6494
6495	default:
6496		genericError := &smithy.GenericAPIError{
6497			Code:    errorCode,
6498			Message: errorMessage,
6499		}
6500		return genericError
6501
6502	}
6503}
6504
6505type awsRestjson1_deserializeOpDeleteAttendee struct {
6506}
6507
6508func (*awsRestjson1_deserializeOpDeleteAttendee) ID() string {
6509	return "OperationDeserializer"
6510}
6511
6512func (m *awsRestjson1_deserializeOpDeleteAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6513	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6514) {
6515	out, metadata, err = next.HandleDeserialize(ctx, in)
6516	if err != nil {
6517		return out, metadata, err
6518	}
6519
6520	response, ok := out.RawResponse.(*smithyhttp.Response)
6521	if !ok {
6522		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6523	}
6524
6525	if response.StatusCode < 200 || response.StatusCode >= 300 {
6526		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAttendee(response, &metadata)
6527	}
6528	output := &DeleteAttendeeOutput{}
6529	out.Result = output
6530
6531	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6532		return out, metadata, &smithy.DeserializationError{
6533			Err: fmt.Errorf("failed to discard response body, %w", err),
6534		}
6535	}
6536
6537	return out, metadata, err
6538}
6539
6540func awsRestjson1_deserializeOpErrorDeleteAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6541	var errorBuffer bytes.Buffer
6542	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6543		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6544	}
6545	errorBody := bytes.NewReader(errorBuffer.Bytes())
6546
6547	errorCode := "UnknownError"
6548	errorMessage := errorCode
6549
6550	code := response.Header.Get("X-Amzn-ErrorType")
6551	if len(code) != 0 {
6552		errorCode = restjson.SanitizeErrorCode(code)
6553	}
6554
6555	var buff [1024]byte
6556	ringBuffer := smithyio.NewRingBuffer(buff[:])
6557
6558	body := io.TeeReader(errorBody, ringBuffer)
6559	decoder := json.NewDecoder(body)
6560	decoder.UseNumber()
6561	code, message, err := restjson.GetErrorInfo(decoder)
6562	if err != nil {
6563		var snapshot bytes.Buffer
6564		io.Copy(&snapshot, ringBuffer)
6565		err = &smithy.DeserializationError{
6566			Err:      fmt.Errorf("failed to decode response body, %w", err),
6567			Snapshot: snapshot.Bytes(),
6568		}
6569		return err
6570	}
6571
6572	errorBody.Seek(0, io.SeekStart)
6573	if len(code) != 0 {
6574		errorCode = restjson.SanitizeErrorCode(code)
6575	}
6576	if len(message) != 0 {
6577		errorMessage = message
6578	}
6579
6580	switch {
6581	case strings.EqualFold("BadRequestException", errorCode):
6582		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6583
6584	case strings.EqualFold("ForbiddenException", errorCode):
6585		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6586
6587	case strings.EqualFold("NotFoundException", errorCode):
6588		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
6589
6590	case strings.EqualFold("ServiceFailureException", errorCode):
6591		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6592
6593	case strings.EqualFold("ServiceUnavailableException", errorCode):
6594		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6595
6596	case strings.EqualFold("ThrottledClientException", errorCode):
6597		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6598
6599	case strings.EqualFold("UnauthorizedClientException", errorCode):
6600		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6601
6602	default:
6603		genericError := &smithy.GenericAPIError{
6604			Code:    errorCode,
6605			Message: errorMessage,
6606		}
6607		return genericError
6608
6609	}
6610}
6611
6612type awsRestjson1_deserializeOpDeleteChannel struct {
6613}
6614
6615func (*awsRestjson1_deserializeOpDeleteChannel) ID() string {
6616	return "OperationDeserializer"
6617}
6618
6619func (m *awsRestjson1_deserializeOpDeleteChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6620	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6621) {
6622	out, metadata, err = next.HandleDeserialize(ctx, in)
6623	if err != nil {
6624		return out, metadata, err
6625	}
6626
6627	response, ok := out.RawResponse.(*smithyhttp.Response)
6628	if !ok {
6629		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6630	}
6631
6632	if response.StatusCode < 200 || response.StatusCode >= 300 {
6633		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannel(response, &metadata)
6634	}
6635	output := &DeleteChannelOutput{}
6636	out.Result = output
6637
6638	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6639		return out, metadata, &smithy.DeserializationError{
6640			Err: fmt.Errorf("failed to discard response body, %w", err),
6641		}
6642	}
6643
6644	return out, metadata, err
6645}
6646
6647func awsRestjson1_deserializeOpErrorDeleteChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6648	var errorBuffer bytes.Buffer
6649	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6650		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6651	}
6652	errorBody := bytes.NewReader(errorBuffer.Bytes())
6653
6654	errorCode := "UnknownError"
6655	errorMessage := errorCode
6656
6657	code := response.Header.Get("X-Amzn-ErrorType")
6658	if len(code) != 0 {
6659		errorCode = restjson.SanitizeErrorCode(code)
6660	}
6661
6662	var buff [1024]byte
6663	ringBuffer := smithyio.NewRingBuffer(buff[:])
6664
6665	body := io.TeeReader(errorBody, ringBuffer)
6666	decoder := json.NewDecoder(body)
6667	decoder.UseNumber()
6668	code, message, err := restjson.GetErrorInfo(decoder)
6669	if err != nil {
6670		var snapshot bytes.Buffer
6671		io.Copy(&snapshot, ringBuffer)
6672		err = &smithy.DeserializationError{
6673			Err:      fmt.Errorf("failed to decode response body, %w", err),
6674			Snapshot: snapshot.Bytes(),
6675		}
6676		return err
6677	}
6678
6679	errorBody.Seek(0, io.SeekStart)
6680	if len(code) != 0 {
6681		errorCode = restjson.SanitizeErrorCode(code)
6682	}
6683	if len(message) != 0 {
6684		errorMessage = message
6685	}
6686
6687	switch {
6688	case strings.EqualFold("BadRequestException", errorCode):
6689		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6690
6691	case strings.EqualFold("ForbiddenException", errorCode):
6692		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6693
6694	case strings.EqualFold("ServiceFailureException", errorCode):
6695		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6696
6697	case strings.EqualFold("ServiceUnavailableException", errorCode):
6698		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6699
6700	case strings.EqualFold("ThrottledClientException", errorCode):
6701		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6702
6703	case strings.EqualFold("UnauthorizedClientException", errorCode):
6704		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6705
6706	default:
6707		genericError := &smithy.GenericAPIError{
6708			Code:    errorCode,
6709			Message: errorMessage,
6710		}
6711		return genericError
6712
6713	}
6714}
6715
6716type awsRestjson1_deserializeOpDeleteChannelBan struct {
6717}
6718
6719func (*awsRestjson1_deserializeOpDeleteChannelBan) ID() string {
6720	return "OperationDeserializer"
6721}
6722
6723func (m *awsRestjson1_deserializeOpDeleteChannelBan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6724	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6725) {
6726	out, metadata, err = next.HandleDeserialize(ctx, in)
6727	if err != nil {
6728		return out, metadata, err
6729	}
6730
6731	response, ok := out.RawResponse.(*smithyhttp.Response)
6732	if !ok {
6733		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6734	}
6735
6736	if response.StatusCode < 200 || response.StatusCode >= 300 {
6737		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelBan(response, &metadata)
6738	}
6739	output := &DeleteChannelBanOutput{}
6740	out.Result = output
6741
6742	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6743		return out, metadata, &smithy.DeserializationError{
6744			Err: fmt.Errorf("failed to discard response body, %w", err),
6745		}
6746	}
6747
6748	return out, metadata, err
6749}
6750
6751func awsRestjson1_deserializeOpErrorDeleteChannelBan(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6752	var errorBuffer bytes.Buffer
6753	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6754		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6755	}
6756	errorBody := bytes.NewReader(errorBuffer.Bytes())
6757
6758	errorCode := "UnknownError"
6759	errorMessage := errorCode
6760
6761	code := response.Header.Get("X-Amzn-ErrorType")
6762	if len(code) != 0 {
6763		errorCode = restjson.SanitizeErrorCode(code)
6764	}
6765
6766	var buff [1024]byte
6767	ringBuffer := smithyio.NewRingBuffer(buff[:])
6768
6769	body := io.TeeReader(errorBody, ringBuffer)
6770	decoder := json.NewDecoder(body)
6771	decoder.UseNumber()
6772	code, message, err := restjson.GetErrorInfo(decoder)
6773	if err != nil {
6774		var snapshot bytes.Buffer
6775		io.Copy(&snapshot, ringBuffer)
6776		err = &smithy.DeserializationError{
6777			Err:      fmt.Errorf("failed to decode response body, %w", err),
6778			Snapshot: snapshot.Bytes(),
6779		}
6780		return err
6781	}
6782
6783	errorBody.Seek(0, io.SeekStart)
6784	if len(code) != 0 {
6785		errorCode = restjson.SanitizeErrorCode(code)
6786	}
6787	if len(message) != 0 {
6788		errorMessage = message
6789	}
6790
6791	switch {
6792	case strings.EqualFold("BadRequestException", errorCode):
6793		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6794
6795	case strings.EqualFold("ForbiddenException", errorCode):
6796		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6797
6798	case strings.EqualFold("ServiceFailureException", errorCode):
6799		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6800
6801	case strings.EqualFold("ServiceUnavailableException", errorCode):
6802		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6803
6804	case strings.EqualFold("ThrottledClientException", errorCode):
6805		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6806
6807	case strings.EqualFold("UnauthorizedClientException", errorCode):
6808		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6809
6810	default:
6811		genericError := &smithy.GenericAPIError{
6812			Code:    errorCode,
6813			Message: errorMessage,
6814		}
6815		return genericError
6816
6817	}
6818}
6819
6820type awsRestjson1_deserializeOpDeleteChannelMembership struct {
6821}
6822
6823func (*awsRestjson1_deserializeOpDeleteChannelMembership) ID() string {
6824	return "OperationDeserializer"
6825}
6826
6827func (m *awsRestjson1_deserializeOpDeleteChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6828	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6829) {
6830	out, metadata, err = next.HandleDeserialize(ctx, in)
6831	if err != nil {
6832		return out, metadata, err
6833	}
6834
6835	response, ok := out.RawResponse.(*smithyhttp.Response)
6836	if !ok {
6837		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6838	}
6839
6840	if response.StatusCode < 200 || response.StatusCode >= 300 {
6841		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelMembership(response, &metadata)
6842	}
6843	output := &DeleteChannelMembershipOutput{}
6844	out.Result = output
6845
6846	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6847		return out, metadata, &smithy.DeserializationError{
6848			Err: fmt.Errorf("failed to discard response body, %w", err),
6849		}
6850	}
6851
6852	return out, metadata, err
6853}
6854
6855func awsRestjson1_deserializeOpErrorDeleteChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6856	var errorBuffer bytes.Buffer
6857	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6858		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6859	}
6860	errorBody := bytes.NewReader(errorBuffer.Bytes())
6861
6862	errorCode := "UnknownError"
6863	errorMessage := errorCode
6864
6865	code := response.Header.Get("X-Amzn-ErrorType")
6866	if len(code) != 0 {
6867		errorCode = restjson.SanitizeErrorCode(code)
6868	}
6869
6870	var buff [1024]byte
6871	ringBuffer := smithyio.NewRingBuffer(buff[:])
6872
6873	body := io.TeeReader(errorBody, ringBuffer)
6874	decoder := json.NewDecoder(body)
6875	decoder.UseNumber()
6876	code, message, err := restjson.GetErrorInfo(decoder)
6877	if err != nil {
6878		var snapshot bytes.Buffer
6879		io.Copy(&snapshot, ringBuffer)
6880		err = &smithy.DeserializationError{
6881			Err:      fmt.Errorf("failed to decode response body, %w", err),
6882			Snapshot: snapshot.Bytes(),
6883		}
6884		return err
6885	}
6886
6887	errorBody.Seek(0, io.SeekStart)
6888	if len(code) != 0 {
6889		errorCode = restjson.SanitizeErrorCode(code)
6890	}
6891	if len(message) != 0 {
6892		errorMessage = message
6893	}
6894
6895	switch {
6896	case strings.EqualFold("BadRequestException", errorCode):
6897		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6898
6899	case strings.EqualFold("ConflictException", errorCode):
6900		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
6901
6902	case strings.EqualFold("ForbiddenException", errorCode):
6903		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6904
6905	case strings.EqualFold("ServiceFailureException", errorCode):
6906		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6907
6908	case strings.EqualFold("ServiceUnavailableException", errorCode):
6909		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6910
6911	case strings.EqualFold("ThrottledClientException", errorCode):
6912		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6913
6914	case strings.EqualFold("UnauthorizedClientException", errorCode):
6915		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6916
6917	default:
6918		genericError := &smithy.GenericAPIError{
6919			Code:    errorCode,
6920			Message: errorMessage,
6921		}
6922		return genericError
6923
6924	}
6925}
6926
6927type awsRestjson1_deserializeOpDeleteChannelMessage struct {
6928}
6929
6930func (*awsRestjson1_deserializeOpDeleteChannelMessage) ID() string {
6931	return "OperationDeserializer"
6932}
6933
6934func (m *awsRestjson1_deserializeOpDeleteChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6935	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6936) {
6937	out, metadata, err = next.HandleDeserialize(ctx, in)
6938	if err != nil {
6939		return out, metadata, err
6940	}
6941
6942	response, ok := out.RawResponse.(*smithyhttp.Response)
6943	if !ok {
6944		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6945	}
6946
6947	if response.StatusCode < 200 || response.StatusCode >= 300 {
6948		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelMessage(response, &metadata)
6949	}
6950	output := &DeleteChannelMessageOutput{}
6951	out.Result = output
6952
6953	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6954		return out, metadata, &smithy.DeserializationError{
6955			Err: fmt.Errorf("failed to discard response body, %w", err),
6956		}
6957	}
6958
6959	return out, metadata, err
6960}
6961
6962func awsRestjson1_deserializeOpErrorDeleteChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6963	var errorBuffer bytes.Buffer
6964	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6965		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6966	}
6967	errorBody := bytes.NewReader(errorBuffer.Bytes())
6968
6969	errorCode := "UnknownError"
6970	errorMessage := errorCode
6971
6972	code := response.Header.Get("X-Amzn-ErrorType")
6973	if len(code) != 0 {
6974		errorCode = restjson.SanitizeErrorCode(code)
6975	}
6976
6977	var buff [1024]byte
6978	ringBuffer := smithyio.NewRingBuffer(buff[:])
6979
6980	body := io.TeeReader(errorBody, ringBuffer)
6981	decoder := json.NewDecoder(body)
6982	decoder.UseNumber()
6983	code, message, err := restjson.GetErrorInfo(decoder)
6984	if err != nil {
6985		var snapshot bytes.Buffer
6986		io.Copy(&snapshot, ringBuffer)
6987		err = &smithy.DeserializationError{
6988			Err:      fmt.Errorf("failed to decode response body, %w", err),
6989			Snapshot: snapshot.Bytes(),
6990		}
6991		return err
6992	}
6993
6994	errorBody.Seek(0, io.SeekStart)
6995	if len(code) != 0 {
6996		errorCode = restjson.SanitizeErrorCode(code)
6997	}
6998	if len(message) != 0 {
6999		errorMessage = message
7000	}
7001
7002	switch {
7003	case strings.EqualFold("BadRequestException", errorCode):
7004		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7005
7006	case strings.EqualFold("ForbiddenException", errorCode):
7007		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7008
7009	case strings.EqualFold("ServiceFailureException", errorCode):
7010		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7011
7012	case strings.EqualFold("ServiceUnavailableException", errorCode):
7013		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7014
7015	case strings.EqualFold("ThrottledClientException", errorCode):
7016		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7017
7018	case strings.EqualFold("UnauthorizedClientException", errorCode):
7019		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7020
7021	default:
7022		genericError := &smithy.GenericAPIError{
7023			Code:    errorCode,
7024			Message: errorMessage,
7025		}
7026		return genericError
7027
7028	}
7029}
7030
7031type awsRestjson1_deserializeOpDeleteChannelModerator struct {
7032}
7033
7034func (*awsRestjson1_deserializeOpDeleteChannelModerator) ID() string {
7035	return "OperationDeserializer"
7036}
7037
7038func (m *awsRestjson1_deserializeOpDeleteChannelModerator) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7039	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7040) {
7041	out, metadata, err = next.HandleDeserialize(ctx, in)
7042	if err != nil {
7043		return out, metadata, err
7044	}
7045
7046	response, ok := out.RawResponse.(*smithyhttp.Response)
7047	if !ok {
7048		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7049	}
7050
7051	if response.StatusCode < 200 || response.StatusCode >= 300 {
7052		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelModerator(response, &metadata)
7053	}
7054	output := &DeleteChannelModeratorOutput{}
7055	out.Result = output
7056
7057	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7058		return out, metadata, &smithy.DeserializationError{
7059			Err: fmt.Errorf("failed to discard response body, %w", err),
7060		}
7061	}
7062
7063	return out, metadata, err
7064}
7065
7066func awsRestjson1_deserializeOpErrorDeleteChannelModerator(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7067	var errorBuffer bytes.Buffer
7068	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7069		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7070	}
7071	errorBody := bytes.NewReader(errorBuffer.Bytes())
7072
7073	errorCode := "UnknownError"
7074	errorMessage := errorCode
7075
7076	code := response.Header.Get("X-Amzn-ErrorType")
7077	if len(code) != 0 {
7078		errorCode = restjson.SanitizeErrorCode(code)
7079	}
7080
7081	var buff [1024]byte
7082	ringBuffer := smithyio.NewRingBuffer(buff[:])
7083
7084	body := io.TeeReader(errorBody, ringBuffer)
7085	decoder := json.NewDecoder(body)
7086	decoder.UseNumber()
7087	code, message, err := restjson.GetErrorInfo(decoder)
7088	if err != nil {
7089		var snapshot bytes.Buffer
7090		io.Copy(&snapshot, ringBuffer)
7091		err = &smithy.DeserializationError{
7092			Err:      fmt.Errorf("failed to decode response body, %w", err),
7093			Snapshot: snapshot.Bytes(),
7094		}
7095		return err
7096	}
7097
7098	errorBody.Seek(0, io.SeekStart)
7099	if len(code) != 0 {
7100		errorCode = restjson.SanitizeErrorCode(code)
7101	}
7102	if len(message) != 0 {
7103		errorMessage = message
7104	}
7105
7106	switch {
7107	case strings.EqualFold("BadRequestException", errorCode):
7108		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7109
7110	case strings.EqualFold("ForbiddenException", errorCode):
7111		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7112
7113	case strings.EqualFold("ServiceFailureException", errorCode):
7114		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7115
7116	case strings.EqualFold("ServiceUnavailableException", errorCode):
7117		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7118
7119	case strings.EqualFold("ThrottledClientException", errorCode):
7120		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7121
7122	case strings.EqualFold("UnauthorizedClientException", errorCode):
7123		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7124
7125	default:
7126		genericError := &smithy.GenericAPIError{
7127			Code:    errorCode,
7128			Message: errorMessage,
7129		}
7130		return genericError
7131
7132	}
7133}
7134
7135type awsRestjson1_deserializeOpDeleteEventsConfiguration struct {
7136}
7137
7138func (*awsRestjson1_deserializeOpDeleteEventsConfiguration) ID() string {
7139	return "OperationDeserializer"
7140}
7141
7142func (m *awsRestjson1_deserializeOpDeleteEventsConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7143	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7144) {
7145	out, metadata, err = next.HandleDeserialize(ctx, in)
7146	if err != nil {
7147		return out, metadata, err
7148	}
7149
7150	response, ok := out.RawResponse.(*smithyhttp.Response)
7151	if !ok {
7152		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7153	}
7154
7155	if response.StatusCode < 200 || response.StatusCode >= 300 {
7156		return out, metadata, awsRestjson1_deserializeOpErrorDeleteEventsConfiguration(response, &metadata)
7157	}
7158	output := &DeleteEventsConfigurationOutput{}
7159	out.Result = output
7160
7161	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7162		return out, metadata, &smithy.DeserializationError{
7163			Err: fmt.Errorf("failed to discard response body, %w", err),
7164		}
7165	}
7166
7167	return out, metadata, err
7168}
7169
7170func awsRestjson1_deserializeOpErrorDeleteEventsConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7171	var errorBuffer bytes.Buffer
7172	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7173		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7174	}
7175	errorBody := bytes.NewReader(errorBuffer.Bytes())
7176
7177	errorCode := "UnknownError"
7178	errorMessage := errorCode
7179
7180	code := response.Header.Get("X-Amzn-ErrorType")
7181	if len(code) != 0 {
7182		errorCode = restjson.SanitizeErrorCode(code)
7183	}
7184
7185	var buff [1024]byte
7186	ringBuffer := smithyio.NewRingBuffer(buff[:])
7187
7188	body := io.TeeReader(errorBody, ringBuffer)
7189	decoder := json.NewDecoder(body)
7190	decoder.UseNumber()
7191	code, message, err := restjson.GetErrorInfo(decoder)
7192	if err != nil {
7193		var snapshot bytes.Buffer
7194		io.Copy(&snapshot, ringBuffer)
7195		err = &smithy.DeserializationError{
7196			Err:      fmt.Errorf("failed to decode response body, %w", err),
7197			Snapshot: snapshot.Bytes(),
7198		}
7199		return err
7200	}
7201
7202	errorBody.Seek(0, io.SeekStart)
7203	if len(code) != 0 {
7204		errorCode = restjson.SanitizeErrorCode(code)
7205	}
7206	if len(message) != 0 {
7207		errorMessage = message
7208	}
7209
7210	switch {
7211	case strings.EqualFold("BadRequestException", errorCode):
7212		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7213
7214	case strings.EqualFold("ForbiddenException", errorCode):
7215		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7216
7217	case strings.EqualFold("ResourceLimitExceededException", errorCode):
7218		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
7219
7220	case strings.EqualFold("ServiceFailureException", errorCode):
7221		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7222
7223	case strings.EqualFold("ServiceUnavailableException", errorCode):
7224		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7225
7226	case strings.EqualFold("UnauthorizedClientException", errorCode):
7227		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7228
7229	default:
7230		genericError := &smithy.GenericAPIError{
7231			Code:    errorCode,
7232			Message: errorMessage,
7233		}
7234		return genericError
7235
7236	}
7237}
7238
7239type awsRestjson1_deserializeOpDeleteMediaCapturePipeline struct {
7240}
7241
7242func (*awsRestjson1_deserializeOpDeleteMediaCapturePipeline) ID() string {
7243	return "OperationDeserializer"
7244}
7245
7246func (m *awsRestjson1_deserializeOpDeleteMediaCapturePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7247	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7248) {
7249	out, metadata, err = next.HandleDeserialize(ctx, in)
7250	if err != nil {
7251		return out, metadata, err
7252	}
7253
7254	response, ok := out.RawResponse.(*smithyhttp.Response)
7255	if !ok {
7256		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7257	}
7258
7259	if response.StatusCode < 200 || response.StatusCode >= 300 {
7260		return out, metadata, awsRestjson1_deserializeOpErrorDeleteMediaCapturePipeline(response, &metadata)
7261	}
7262	output := &DeleteMediaCapturePipelineOutput{}
7263	out.Result = output
7264
7265	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7266		return out, metadata, &smithy.DeserializationError{
7267			Err: fmt.Errorf("failed to discard response body, %w", err),
7268		}
7269	}
7270
7271	return out, metadata, err
7272}
7273
7274func awsRestjson1_deserializeOpErrorDeleteMediaCapturePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7275	var errorBuffer bytes.Buffer
7276	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7277		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7278	}
7279	errorBody := bytes.NewReader(errorBuffer.Bytes())
7280
7281	errorCode := "UnknownError"
7282	errorMessage := errorCode
7283
7284	code := response.Header.Get("X-Amzn-ErrorType")
7285	if len(code) != 0 {
7286		errorCode = restjson.SanitizeErrorCode(code)
7287	}
7288
7289	var buff [1024]byte
7290	ringBuffer := smithyio.NewRingBuffer(buff[:])
7291
7292	body := io.TeeReader(errorBody, ringBuffer)
7293	decoder := json.NewDecoder(body)
7294	decoder.UseNumber()
7295	code, message, err := restjson.GetErrorInfo(decoder)
7296	if err != nil {
7297		var snapshot bytes.Buffer
7298		io.Copy(&snapshot, ringBuffer)
7299		err = &smithy.DeserializationError{
7300			Err:      fmt.Errorf("failed to decode response body, %w", err),
7301			Snapshot: snapshot.Bytes(),
7302		}
7303		return err
7304	}
7305
7306	errorBody.Seek(0, io.SeekStart)
7307	if len(code) != 0 {
7308		errorCode = restjson.SanitizeErrorCode(code)
7309	}
7310	if len(message) != 0 {
7311		errorMessage = message
7312	}
7313
7314	switch {
7315	case strings.EqualFold("BadRequestException", errorCode):
7316		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7317
7318	case strings.EqualFold("ForbiddenException", errorCode):
7319		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7320
7321	case strings.EqualFold("NotFoundException", errorCode):
7322		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7323
7324	case strings.EqualFold("ServiceFailureException", errorCode):
7325		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7326
7327	case strings.EqualFold("ServiceUnavailableException", errorCode):
7328		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7329
7330	case strings.EqualFold("ThrottledClientException", errorCode):
7331		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7332
7333	case strings.EqualFold("UnauthorizedClientException", errorCode):
7334		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7335
7336	default:
7337		genericError := &smithy.GenericAPIError{
7338			Code:    errorCode,
7339			Message: errorMessage,
7340		}
7341		return genericError
7342
7343	}
7344}
7345
7346type awsRestjson1_deserializeOpDeleteMeeting struct {
7347}
7348
7349func (*awsRestjson1_deserializeOpDeleteMeeting) ID() string {
7350	return "OperationDeserializer"
7351}
7352
7353func (m *awsRestjson1_deserializeOpDeleteMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7354	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7355) {
7356	out, metadata, err = next.HandleDeserialize(ctx, in)
7357	if err != nil {
7358		return out, metadata, err
7359	}
7360
7361	response, ok := out.RawResponse.(*smithyhttp.Response)
7362	if !ok {
7363		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7364	}
7365
7366	if response.StatusCode < 200 || response.StatusCode >= 300 {
7367		return out, metadata, awsRestjson1_deserializeOpErrorDeleteMeeting(response, &metadata)
7368	}
7369	output := &DeleteMeetingOutput{}
7370	out.Result = output
7371
7372	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7373		return out, metadata, &smithy.DeserializationError{
7374			Err: fmt.Errorf("failed to discard response body, %w", err),
7375		}
7376	}
7377
7378	return out, metadata, err
7379}
7380
7381func awsRestjson1_deserializeOpErrorDeleteMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7382	var errorBuffer bytes.Buffer
7383	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7384		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7385	}
7386	errorBody := bytes.NewReader(errorBuffer.Bytes())
7387
7388	errorCode := "UnknownError"
7389	errorMessage := errorCode
7390
7391	code := response.Header.Get("X-Amzn-ErrorType")
7392	if len(code) != 0 {
7393		errorCode = restjson.SanitizeErrorCode(code)
7394	}
7395
7396	var buff [1024]byte
7397	ringBuffer := smithyio.NewRingBuffer(buff[:])
7398
7399	body := io.TeeReader(errorBody, ringBuffer)
7400	decoder := json.NewDecoder(body)
7401	decoder.UseNumber()
7402	code, message, err := restjson.GetErrorInfo(decoder)
7403	if err != nil {
7404		var snapshot bytes.Buffer
7405		io.Copy(&snapshot, ringBuffer)
7406		err = &smithy.DeserializationError{
7407			Err:      fmt.Errorf("failed to decode response body, %w", err),
7408			Snapshot: snapshot.Bytes(),
7409		}
7410		return err
7411	}
7412
7413	errorBody.Seek(0, io.SeekStart)
7414	if len(code) != 0 {
7415		errorCode = restjson.SanitizeErrorCode(code)
7416	}
7417	if len(message) != 0 {
7418		errorMessage = message
7419	}
7420
7421	switch {
7422	case strings.EqualFold("BadRequestException", errorCode):
7423		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7424
7425	case strings.EqualFold("ForbiddenException", errorCode):
7426		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7427
7428	case strings.EqualFold("NotFoundException", errorCode):
7429		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7430
7431	case strings.EqualFold("ServiceFailureException", errorCode):
7432		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7433
7434	case strings.EqualFold("ServiceUnavailableException", errorCode):
7435		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7436
7437	case strings.EqualFold("ThrottledClientException", errorCode):
7438		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7439
7440	case strings.EqualFold("UnauthorizedClientException", errorCode):
7441		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7442
7443	default:
7444		genericError := &smithy.GenericAPIError{
7445			Code:    errorCode,
7446			Message: errorMessage,
7447		}
7448		return genericError
7449
7450	}
7451}
7452
7453type awsRestjson1_deserializeOpDeletePhoneNumber struct {
7454}
7455
7456func (*awsRestjson1_deserializeOpDeletePhoneNumber) ID() string {
7457	return "OperationDeserializer"
7458}
7459
7460func (m *awsRestjson1_deserializeOpDeletePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7461	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7462) {
7463	out, metadata, err = next.HandleDeserialize(ctx, in)
7464	if err != nil {
7465		return out, metadata, err
7466	}
7467
7468	response, ok := out.RawResponse.(*smithyhttp.Response)
7469	if !ok {
7470		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7471	}
7472
7473	if response.StatusCode < 200 || response.StatusCode >= 300 {
7474		return out, metadata, awsRestjson1_deserializeOpErrorDeletePhoneNumber(response, &metadata)
7475	}
7476	output := &DeletePhoneNumberOutput{}
7477	out.Result = output
7478
7479	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7480		return out, metadata, &smithy.DeserializationError{
7481			Err: fmt.Errorf("failed to discard response body, %w", err),
7482		}
7483	}
7484
7485	return out, metadata, err
7486}
7487
7488func awsRestjson1_deserializeOpErrorDeletePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7489	var errorBuffer bytes.Buffer
7490	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7491		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7492	}
7493	errorBody := bytes.NewReader(errorBuffer.Bytes())
7494
7495	errorCode := "UnknownError"
7496	errorMessage := errorCode
7497
7498	code := response.Header.Get("X-Amzn-ErrorType")
7499	if len(code) != 0 {
7500		errorCode = restjson.SanitizeErrorCode(code)
7501	}
7502
7503	var buff [1024]byte
7504	ringBuffer := smithyio.NewRingBuffer(buff[:])
7505
7506	body := io.TeeReader(errorBody, ringBuffer)
7507	decoder := json.NewDecoder(body)
7508	decoder.UseNumber()
7509	code, message, err := restjson.GetErrorInfo(decoder)
7510	if err != nil {
7511		var snapshot bytes.Buffer
7512		io.Copy(&snapshot, ringBuffer)
7513		err = &smithy.DeserializationError{
7514			Err:      fmt.Errorf("failed to decode response body, %w", err),
7515			Snapshot: snapshot.Bytes(),
7516		}
7517		return err
7518	}
7519
7520	errorBody.Seek(0, io.SeekStart)
7521	if len(code) != 0 {
7522		errorCode = restjson.SanitizeErrorCode(code)
7523	}
7524	if len(message) != 0 {
7525		errorMessage = message
7526	}
7527
7528	switch {
7529	case strings.EqualFold("BadRequestException", errorCode):
7530		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7531
7532	case strings.EqualFold("ForbiddenException", errorCode):
7533		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7534
7535	case strings.EqualFold("NotFoundException", errorCode):
7536		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7537
7538	case strings.EqualFold("ServiceFailureException", errorCode):
7539		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7540
7541	case strings.EqualFold("ServiceUnavailableException", errorCode):
7542		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7543
7544	case strings.EqualFold("ThrottledClientException", errorCode):
7545		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7546
7547	case strings.EqualFold("UnauthorizedClientException", errorCode):
7548		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7549
7550	default:
7551		genericError := &smithy.GenericAPIError{
7552			Code:    errorCode,
7553			Message: errorMessage,
7554		}
7555		return genericError
7556
7557	}
7558}
7559
7560type awsRestjson1_deserializeOpDeleteProxySession struct {
7561}
7562
7563func (*awsRestjson1_deserializeOpDeleteProxySession) ID() string {
7564	return "OperationDeserializer"
7565}
7566
7567func (m *awsRestjson1_deserializeOpDeleteProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7568	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7569) {
7570	out, metadata, err = next.HandleDeserialize(ctx, in)
7571	if err != nil {
7572		return out, metadata, err
7573	}
7574
7575	response, ok := out.RawResponse.(*smithyhttp.Response)
7576	if !ok {
7577		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7578	}
7579
7580	if response.StatusCode < 200 || response.StatusCode >= 300 {
7581		return out, metadata, awsRestjson1_deserializeOpErrorDeleteProxySession(response, &metadata)
7582	}
7583	output := &DeleteProxySessionOutput{}
7584	out.Result = output
7585
7586	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7587		return out, metadata, &smithy.DeserializationError{
7588			Err: fmt.Errorf("failed to discard response body, %w", err),
7589		}
7590	}
7591
7592	return out, metadata, err
7593}
7594
7595func awsRestjson1_deserializeOpErrorDeleteProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7596	var errorBuffer bytes.Buffer
7597	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7598		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7599	}
7600	errorBody := bytes.NewReader(errorBuffer.Bytes())
7601
7602	errorCode := "UnknownError"
7603	errorMessage := errorCode
7604
7605	code := response.Header.Get("X-Amzn-ErrorType")
7606	if len(code) != 0 {
7607		errorCode = restjson.SanitizeErrorCode(code)
7608	}
7609
7610	var buff [1024]byte
7611	ringBuffer := smithyio.NewRingBuffer(buff[:])
7612
7613	body := io.TeeReader(errorBody, ringBuffer)
7614	decoder := json.NewDecoder(body)
7615	decoder.UseNumber()
7616	code, message, err := restjson.GetErrorInfo(decoder)
7617	if err != nil {
7618		var snapshot bytes.Buffer
7619		io.Copy(&snapshot, ringBuffer)
7620		err = &smithy.DeserializationError{
7621			Err:      fmt.Errorf("failed to decode response body, %w", err),
7622			Snapshot: snapshot.Bytes(),
7623		}
7624		return err
7625	}
7626
7627	errorBody.Seek(0, io.SeekStart)
7628	if len(code) != 0 {
7629		errorCode = restjson.SanitizeErrorCode(code)
7630	}
7631	if len(message) != 0 {
7632		errorMessage = message
7633	}
7634
7635	switch {
7636	case strings.EqualFold("BadRequestException", errorCode):
7637		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7638
7639	case strings.EqualFold("ForbiddenException", errorCode):
7640		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7641
7642	case strings.EqualFold("NotFoundException", errorCode):
7643		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7644
7645	case strings.EqualFold("ServiceFailureException", errorCode):
7646		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7647
7648	case strings.EqualFold("ServiceUnavailableException", errorCode):
7649		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7650
7651	case strings.EqualFold("ThrottledClientException", errorCode):
7652		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7653
7654	case strings.EqualFold("UnauthorizedClientException", errorCode):
7655		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7656
7657	default:
7658		genericError := &smithy.GenericAPIError{
7659			Code:    errorCode,
7660			Message: errorMessage,
7661		}
7662		return genericError
7663
7664	}
7665}
7666
7667type awsRestjson1_deserializeOpDeleteRoom struct {
7668}
7669
7670func (*awsRestjson1_deserializeOpDeleteRoom) ID() string {
7671	return "OperationDeserializer"
7672}
7673
7674func (m *awsRestjson1_deserializeOpDeleteRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7675	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7676) {
7677	out, metadata, err = next.HandleDeserialize(ctx, in)
7678	if err != nil {
7679		return out, metadata, err
7680	}
7681
7682	response, ok := out.RawResponse.(*smithyhttp.Response)
7683	if !ok {
7684		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7685	}
7686
7687	if response.StatusCode < 200 || response.StatusCode >= 300 {
7688		return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoom(response, &metadata)
7689	}
7690	output := &DeleteRoomOutput{}
7691	out.Result = output
7692
7693	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7694		return out, metadata, &smithy.DeserializationError{
7695			Err: fmt.Errorf("failed to discard response body, %w", err),
7696		}
7697	}
7698
7699	return out, metadata, err
7700}
7701
7702func awsRestjson1_deserializeOpErrorDeleteRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7703	var errorBuffer bytes.Buffer
7704	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7705		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7706	}
7707	errorBody := bytes.NewReader(errorBuffer.Bytes())
7708
7709	errorCode := "UnknownError"
7710	errorMessage := errorCode
7711
7712	code := response.Header.Get("X-Amzn-ErrorType")
7713	if len(code) != 0 {
7714		errorCode = restjson.SanitizeErrorCode(code)
7715	}
7716
7717	var buff [1024]byte
7718	ringBuffer := smithyio.NewRingBuffer(buff[:])
7719
7720	body := io.TeeReader(errorBody, ringBuffer)
7721	decoder := json.NewDecoder(body)
7722	decoder.UseNumber()
7723	code, message, err := restjson.GetErrorInfo(decoder)
7724	if err != nil {
7725		var snapshot bytes.Buffer
7726		io.Copy(&snapshot, ringBuffer)
7727		err = &smithy.DeserializationError{
7728			Err:      fmt.Errorf("failed to decode response body, %w", err),
7729			Snapshot: snapshot.Bytes(),
7730		}
7731		return err
7732	}
7733
7734	errorBody.Seek(0, io.SeekStart)
7735	if len(code) != 0 {
7736		errorCode = restjson.SanitizeErrorCode(code)
7737	}
7738	if len(message) != 0 {
7739		errorMessage = message
7740	}
7741
7742	switch {
7743	case strings.EqualFold("BadRequestException", errorCode):
7744		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7745
7746	case strings.EqualFold("ForbiddenException", errorCode):
7747		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7748
7749	case strings.EqualFold("NotFoundException", errorCode):
7750		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7751
7752	case strings.EqualFold("ServiceFailureException", errorCode):
7753		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7754
7755	case strings.EqualFold("ServiceUnavailableException", errorCode):
7756		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7757
7758	case strings.EqualFold("ThrottledClientException", errorCode):
7759		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7760
7761	case strings.EqualFold("UnauthorizedClientException", errorCode):
7762		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7763
7764	default:
7765		genericError := &smithy.GenericAPIError{
7766			Code:    errorCode,
7767			Message: errorMessage,
7768		}
7769		return genericError
7770
7771	}
7772}
7773
7774type awsRestjson1_deserializeOpDeleteRoomMembership struct {
7775}
7776
7777func (*awsRestjson1_deserializeOpDeleteRoomMembership) ID() string {
7778	return "OperationDeserializer"
7779}
7780
7781func (m *awsRestjson1_deserializeOpDeleteRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7782	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7783) {
7784	out, metadata, err = next.HandleDeserialize(ctx, in)
7785	if err != nil {
7786		return out, metadata, err
7787	}
7788
7789	response, ok := out.RawResponse.(*smithyhttp.Response)
7790	if !ok {
7791		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7792	}
7793
7794	if response.StatusCode < 200 || response.StatusCode >= 300 {
7795		return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoomMembership(response, &metadata)
7796	}
7797	output := &DeleteRoomMembershipOutput{}
7798	out.Result = output
7799
7800	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7801		return out, metadata, &smithy.DeserializationError{
7802			Err: fmt.Errorf("failed to discard response body, %w", err),
7803		}
7804	}
7805
7806	return out, metadata, err
7807}
7808
7809func awsRestjson1_deserializeOpErrorDeleteRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7810	var errorBuffer bytes.Buffer
7811	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7812		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7813	}
7814	errorBody := bytes.NewReader(errorBuffer.Bytes())
7815
7816	errorCode := "UnknownError"
7817	errorMessage := errorCode
7818
7819	code := response.Header.Get("X-Amzn-ErrorType")
7820	if len(code) != 0 {
7821		errorCode = restjson.SanitizeErrorCode(code)
7822	}
7823
7824	var buff [1024]byte
7825	ringBuffer := smithyio.NewRingBuffer(buff[:])
7826
7827	body := io.TeeReader(errorBody, ringBuffer)
7828	decoder := json.NewDecoder(body)
7829	decoder.UseNumber()
7830	code, message, err := restjson.GetErrorInfo(decoder)
7831	if err != nil {
7832		var snapshot bytes.Buffer
7833		io.Copy(&snapshot, ringBuffer)
7834		err = &smithy.DeserializationError{
7835			Err:      fmt.Errorf("failed to decode response body, %w", err),
7836			Snapshot: snapshot.Bytes(),
7837		}
7838		return err
7839	}
7840
7841	errorBody.Seek(0, io.SeekStart)
7842	if len(code) != 0 {
7843		errorCode = restjson.SanitizeErrorCode(code)
7844	}
7845	if len(message) != 0 {
7846		errorMessage = message
7847	}
7848
7849	switch {
7850	case strings.EqualFold("BadRequestException", errorCode):
7851		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7852
7853	case strings.EqualFold("ForbiddenException", errorCode):
7854		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7855
7856	case strings.EqualFold("NotFoundException", errorCode):
7857		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7858
7859	case strings.EqualFold("ServiceFailureException", errorCode):
7860		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7861
7862	case strings.EqualFold("ServiceUnavailableException", errorCode):
7863		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7864
7865	case strings.EqualFold("ThrottledClientException", errorCode):
7866		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7867
7868	case strings.EqualFold("UnauthorizedClientException", errorCode):
7869		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7870
7871	default:
7872		genericError := &smithy.GenericAPIError{
7873			Code:    errorCode,
7874			Message: errorMessage,
7875		}
7876		return genericError
7877
7878	}
7879}
7880
7881type awsRestjson1_deserializeOpDeleteSipMediaApplication struct {
7882}
7883
7884func (*awsRestjson1_deserializeOpDeleteSipMediaApplication) ID() string {
7885	return "OperationDeserializer"
7886}
7887
7888func (m *awsRestjson1_deserializeOpDeleteSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7889	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7890) {
7891	out, metadata, err = next.HandleDeserialize(ctx, in)
7892	if err != nil {
7893		return out, metadata, err
7894	}
7895
7896	response, ok := out.RawResponse.(*smithyhttp.Response)
7897	if !ok {
7898		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7899	}
7900
7901	if response.StatusCode < 200 || response.StatusCode >= 300 {
7902		return out, metadata, awsRestjson1_deserializeOpErrorDeleteSipMediaApplication(response, &metadata)
7903	}
7904	output := &DeleteSipMediaApplicationOutput{}
7905	out.Result = output
7906
7907	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7908		return out, metadata, &smithy.DeserializationError{
7909			Err: fmt.Errorf("failed to discard response body, %w", err),
7910		}
7911	}
7912
7913	return out, metadata, err
7914}
7915
7916func awsRestjson1_deserializeOpErrorDeleteSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7917	var errorBuffer bytes.Buffer
7918	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7919		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7920	}
7921	errorBody := bytes.NewReader(errorBuffer.Bytes())
7922
7923	errorCode := "UnknownError"
7924	errorMessage := errorCode
7925
7926	code := response.Header.Get("X-Amzn-ErrorType")
7927	if len(code) != 0 {
7928		errorCode = restjson.SanitizeErrorCode(code)
7929	}
7930
7931	var buff [1024]byte
7932	ringBuffer := smithyio.NewRingBuffer(buff[:])
7933
7934	body := io.TeeReader(errorBody, ringBuffer)
7935	decoder := json.NewDecoder(body)
7936	decoder.UseNumber()
7937	code, message, err := restjson.GetErrorInfo(decoder)
7938	if err != nil {
7939		var snapshot bytes.Buffer
7940		io.Copy(&snapshot, ringBuffer)
7941		err = &smithy.DeserializationError{
7942			Err:      fmt.Errorf("failed to decode response body, %w", err),
7943			Snapshot: snapshot.Bytes(),
7944		}
7945		return err
7946	}
7947
7948	errorBody.Seek(0, io.SeekStart)
7949	if len(code) != 0 {
7950		errorCode = restjson.SanitizeErrorCode(code)
7951	}
7952	if len(message) != 0 {
7953		errorMessage = message
7954	}
7955
7956	switch {
7957	case strings.EqualFold("BadRequestException", errorCode):
7958		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7959
7960	case strings.EqualFold("ConflictException", errorCode):
7961		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
7962
7963	case strings.EqualFold("ForbiddenException", errorCode):
7964		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7965
7966	case strings.EqualFold("NotFoundException", errorCode):
7967		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7968
7969	case strings.EqualFold("ServiceFailureException", errorCode):
7970		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7971
7972	case strings.EqualFold("ServiceUnavailableException", errorCode):
7973		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7974
7975	case strings.EqualFold("ThrottledClientException", errorCode):
7976		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7977
7978	case strings.EqualFold("UnauthorizedClientException", errorCode):
7979		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7980
7981	default:
7982		genericError := &smithy.GenericAPIError{
7983			Code:    errorCode,
7984			Message: errorMessage,
7985		}
7986		return genericError
7987
7988	}
7989}
7990
7991type awsRestjson1_deserializeOpDeleteSipRule struct {
7992}
7993
7994func (*awsRestjson1_deserializeOpDeleteSipRule) ID() string {
7995	return "OperationDeserializer"
7996}
7997
7998func (m *awsRestjson1_deserializeOpDeleteSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7999	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8000) {
8001	out, metadata, err = next.HandleDeserialize(ctx, in)
8002	if err != nil {
8003		return out, metadata, err
8004	}
8005
8006	response, ok := out.RawResponse.(*smithyhttp.Response)
8007	if !ok {
8008		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8009	}
8010
8011	if response.StatusCode < 200 || response.StatusCode >= 300 {
8012		return out, metadata, awsRestjson1_deserializeOpErrorDeleteSipRule(response, &metadata)
8013	}
8014	output := &DeleteSipRuleOutput{}
8015	out.Result = output
8016
8017	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8018		return out, metadata, &smithy.DeserializationError{
8019			Err: fmt.Errorf("failed to discard response body, %w", err),
8020		}
8021	}
8022
8023	return out, metadata, err
8024}
8025
8026func awsRestjson1_deserializeOpErrorDeleteSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8027	var errorBuffer bytes.Buffer
8028	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8029		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8030	}
8031	errorBody := bytes.NewReader(errorBuffer.Bytes())
8032
8033	errorCode := "UnknownError"
8034	errorMessage := errorCode
8035
8036	code := response.Header.Get("X-Amzn-ErrorType")
8037	if len(code) != 0 {
8038		errorCode = restjson.SanitizeErrorCode(code)
8039	}
8040
8041	var buff [1024]byte
8042	ringBuffer := smithyio.NewRingBuffer(buff[:])
8043
8044	body := io.TeeReader(errorBody, ringBuffer)
8045	decoder := json.NewDecoder(body)
8046	decoder.UseNumber()
8047	code, message, err := restjson.GetErrorInfo(decoder)
8048	if err != nil {
8049		var snapshot bytes.Buffer
8050		io.Copy(&snapshot, ringBuffer)
8051		err = &smithy.DeserializationError{
8052			Err:      fmt.Errorf("failed to decode response body, %w", err),
8053			Snapshot: snapshot.Bytes(),
8054		}
8055		return err
8056	}
8057
8058	errorBody.Seek(0, io.SeekStart)
8059	if len(code) != 0 {
8060		errorCode = restjson.SanitizeErrorCode(code)
8061	}
8062	if len(message) != 0 {
8063		errorMessage = message
8064	}
8065
8066	switch {
8067	case strings.EqualFold("BadRequestException", errorCode):
8068		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8069
8070	case strings.EqualFold("ConflictException", errorCode):
8071		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
8072
8073	case strings.EqualFold("ForbiddenException", errorCode):
8074		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8075
8076	case strings.EqualFold("NotFoundException", errorCode):
8077		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8078
8079	case strings.EqualFold("ServiceFailureException", errorCode):
8080		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8081
8082	case strings.EqualFold("ServiceUnavailableException", errorCode):
8083		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8084
8085	case strings.EqualFold("ThrottledClientException", errorCode):
8086		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8087
8088	case strings.EqualFold("UnauthorizedClientException", errorCode):
8089		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8090
8091	default:
8092		genericError := &smithy.GenericAPIError{
8093			Code:    errorCode,
8094			Message: errorMessage,
8095		}
8096		return genericError
8097
8098	}
8099}
8100
8101type awsRestjson1_deserializeOpDeleteVoiceConnector struct {
8102}
8103
8104func (*awsRestjson1_deserializeOpDeleteVoiceConnector) ID() string {
8105	return "OperationDeserializer"
8106}
8107
8108func (m *awsRestjson1_deserializeOpDeleteVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8109	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8110) {
8111	out, metadata, err = next.HandleDeserialize(ctx, in)
8112	if err != nil {
8113		return out, metadata, err
8114	}
8115
8116	response, ok := out.RawResponse.(*smithyhttp.Response)
8117	if !ok {
8118		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8119	}
8120
8121	if response.StatusCode < 200 || response.StatusCode >= 300 {
8122		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnector(response, &metadata)
8123	}
8124	output := &DeleteVoiceConnectorOutput{}
8125	out.Result = output
8126
8127	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8128		return out, metadata, &smithy.DeserializationError{
8129			Err: fmt.Errorf("failed to discard response body, %w", err),
8130		}
8131	}
8132
8133	return out, metadata, err
8134}
8135
8136func awsRestjson1_deserializeOpErrorDeleteVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8137	var errorBuffer bytes.Buffer
8138	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8139		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8140	}
8141	errorBody := bytes.NewReader(errorBuffer.Bytes())
8142
8143	errorCode := "UnknownError"
8144	errorMessage := errorCode
8145
8146	code := response.Header.Get("X-Amzn-ErrorType")
8147	if len(code) != 0 {
8148		errorCode = restjson.SanitizeErrorCode(code)
8149	}
8150
8151	var buff [1024]byte
8152	ringBuffer := smithyio.NewRingBuffer(buff[:])
8153
8154	body := io.TeeReader(errorBody, ringBuffer)
8155	decoder := json.NewDecoder(body)
8156	decoder.UseNumber()
8157	code, message, err := restjson.GetErrorInfo(decoder)
8158	if err != nil {
8159		var snapshot bytes.Buffer
8160		io.Copy(&snapshot, ringBuffer)
8161		err = &smithy.DeserializationError{
8162			Err:      fmt.Errorf("failed to decode response body, %w", err),
8163			Snapshot: snapshot.Bytes(),
8164		}
8165		return err
8166	}
8167
8168	errorBody.Seek(0, io.SeekStart)
8169	if len(code) != 0 {
8170		errorCode = restjson.SanitizeErrorCode(code)
8171	}
8172	if len(message) != 0 {
8173		errorMessage = message
8174	}
8175
8176	switch {
8177	case strings.EqualFold("BadRequestException", errorCode):
8178		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8179
8180	case strings.EqualFold("ConflictException", errorCode):
8181		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
8182
8183	case strings.EqualFold("ForbiddenException", errorCode):
8184		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8185
8186	case strings.EqualFold("NotFoundException", errorCode):
8187		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8188
8189	case strings.EqualFold("ServiceFailureException", errorCode):
8190		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8191
8192	case strings.EqualFold("ServiceUnavailableException", errorCode):
8193		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8194
8195	case strings.EqualFold("ThrottledClientException", errorCode):
8196		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8197
8198	case strings.EqualFold("UnauthorizedClientException", errorCode):
8199		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8200
8201	default:
8202		genericError := &smithy.GenericAPIError{
8203			Code:    errorCode,
8204			Message: errorMessage,
8205		}
8206		return genericError
8207
8208	}
8209}
8210
8211type awsRestjson1_deserializeOpDeleteVoiceConnectorEmergencyCallingConfiguration struct {
8212}
8213
8214func (*awsRestjson1_deserializeOpDeleteVoiceConnectorEmergencyCallingConfiguration) ID() string {
8215	return "OperationDeserializer"
8216}
8217
8218func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorEmergencyCallingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8219	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8220) {
8221	out, metadata, err = next.HandleDeserialize(ctx, in)
8222	if err != nil {
8223		return out, metadata, err
8224	}
8225
8226	response, ok := out.RawResponse.(*smithyhttp.Response)
8227	if !ok {
8228		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8229	}
8230
8231	if response.StatusCode < 200 || response.StatusCode >= 300 {
8232		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorEmergencyCallingConfiguration(response, &metadata)
8233	}
8234	output := &DeleteVoiceConnectorEmergencyCallingConfigurationOutput{}
8235	out.Result = output
8236
8237	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8238		return out, metadata, &smithy.DeserializationError{
8239			Err: fmt.Errorf("failed to discard response body, %w", err),
8240		}
8241	}
8242
8243	return out, metadata, err
8244}
8245
8246func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorEmergencyCallingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8247	var errorBuffer bytes.Buffer
8248	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8249		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8250	}
8251	errorBody := bytes.NewReader(errorBuffer.Bytes())
8252
8253	errorCode := "UnknownError"
8254	errorMessage := errorCode
8255
8256	code := response.Header.Get("X-Amzn-ErrorType")
8257	if len(code) != 0 {
8258		errorCode = restjson.SanitizeErrorCode(code)
8259	}
8260
8261	var buff [1024]byte
8262	ringBuffer := smithyio.NewRingBuffer(buff[:])
8263
8264	body := io.TeeReader(errorBody, ringBuffer)
8265	decoder := json.NewDecoder(body)
8266	decoder.UseNumber()
8267	code, message, err := restjson.GetErrorInfo(decoder)
8268	if err != nil {
8269		var snapshot bytes.Buffer
8270		io.Copy(&snapshot, ringBuffer)
8271		err = &smithy.DeserializationError{
8272			Err:      fmt.Errorf("failed to decode response body, %w", err),
8273			Snapshot: snapshot.Bytes(),
8274		}
8275		return err
8276	}
8277
8278	errorBody.Seek(0, io.SeekStart)
8279	if len(code) != 0 {
8280		errorCode = restjson.SanitizeErrorCode(code)
8281	}
8282	if len(message) != 0 {
8283		errorMessage = message
8284	}
8285
8286	switch {
8287	case strings.EqualFold("BadRequestException", errorCode):
8288		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8289
8290	case strings.EqualFold("ForbiddenException", errorCode):
8291		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8292
8293	case strings.EqualFold("NotFoundException", errorCode):
8294		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8295
8296	case strings.EqualFold("ServiceFailureException", errorCode):
8297		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8298
8299	case strings.EqualFold("ServiceUnavailableException", errorCode):
8300		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8301
8302	case strings.EqualFold("ThrottledClientException", errorCode):
8303		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8304
8305	case strings.EqualFold("UnauthorizedClientException", errorCode):
8306		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8307
8308	default:
8309		genericError := &smithy.GenericAPIError{
8310			Code:    errorCode,
8311			Message: errorMessage,
8312		}
8313		return genericError
8314
8315	}
8316}
8317
8318type awsRestjson1_deserializeOpDeleteVoiceConnectorGroup struct {
8319}
8320
8321func (*awsRestjson1_deserializeOpDeleteVoiceConnectorGroup) ID() string {
8322	return "OperationDeserializer"
8323}
8324
8325func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8326	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8327) {
8328	out, metadata, err = next.HandleDeserialize(ctx, in)
8329	if err != nil {
8330		return out, metadata, err
8331	}
8332
8333	response, ok := out.RawResponse.(*smithyhttp.Response)
8334	if !ok {
8335		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8336	}
8337
8338	if response.StatusCode < 200 || response.StatusCode >= 300 {
8339		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorGroup(response, &metadata)
8340	}
8341	output := &DeleteVoiceConnectorGroupOutput{}
8342	out.Result = output
8343
8344	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8345		return out, metadata, &smithy.DeserializationError{
8346			Err: fmt.Errorf("failed to discard response body, %w", err),
8347		}
8348	}
8349
8350	return out, metadata, err
8351}
8352
8353func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8354	var errorBuffer bytes.Buffer
8355	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8356		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8357	}
8358	errorBody := bytes.NewReader(errorBuffer.Bytes())
8359
8360	errorCode := "UnknownError"
8361	errorMessage := errorCode
8362
8363	code := response.Header.Get("X-Amzn-ErrorType")
8364	if len(code) != 0 {
8365		errorCode = restjson.SanitizeErrorCode(code)
8366	}
8367
8368	var buff [1024]byte
8369	ringBuffer := smithyio.NewRingBuffer(buff[:])
8370
8371	body := io.TeeReader(errorBody, ringBuffer)
8372	decoder := json.NewDecoder(body)
8373	decoder.UseNumber()
8374	code, message, err := restjson.GetErrorInfo(decoder)
8375	if err != nil {
8376		var snapshot bytes.Buffer
8377		io.Copy(&snapshot, ringBuffer)
8378		err = &smithy.DeserializationError{
8379			Err:      fmt.Errorf("failed to decode response body, %w", err),
8380			Snapshot: snapshot.Bytes(),
8381		}
8382		return err
8383	}
8384
8385	errorBody.Seek(0, io.SeekStart)
8386	if len(code) != 0 {
8387		errorCode = restjson.SanitizeErrorCode(code)
8388	}
8389	if len(message) != 0 {
8390		errorMessage = message
8391	}
8392
8393	switch {
8394	case strings.EqualFold("BadRequestException", errorCode):
8395		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8396
8397	case strings.EqualFold("ConflictException", errorCode):
8398		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
8399
8400	case strings.EqualFold("ForbiddenException", errorCode):
8401		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8402
8403	case strings.EqualFold("NotFoundException", errorCode):
8404		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8405
8406	case strings.EqualFold("ServiceFailureException", errorCode):
8407		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8408
8409	case strings.EqualFold("ServiceUnavailableException", errorCode):
8410		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8411
8412	case strings.EqualFold("ThrottledClientException", errorCode):
8413		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8414
8415	case strings.EqualFold("UnauthorizedClientException", errorCode):
8416		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8417
8418	default:
8419		genericError := &smithy.GenericAPIError{
8420			Code:    errorCode,
8421			Message: errorMessage,
8422		}
8423		return genericError
8424
8425	}
8426}
8427
8428type awsRestjson1_deserializeOpDeleteVoiceConnectorOrigination struct {
8429}
8430
8431func (*awsRestjson1_deserializeOpDeleteVoiceConnectorOrigination) ID() string {
8432	return "OperationDeserializer"
8433}
8434
8435func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorOrigination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8436	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8437) {
8438	out, metadata, err = next.HandleDeserialize(ctx, in)
8439	if err != nil {
8440		return out, metadata, err
8441	}
8442
8443	response, ok := out.RawResponse.(*smithyhttp.Response)
8444	if !ok {
8445		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8446	}
8447
8448	if response.StatusCode < 200 || response.StatusCode >= 300 {
8449		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorOrigination(response, &metadata)
8450	}
8451	output := &DeleteVoiceConnectorOriginationOutput{}
8452	out.Result = output
8453
8454	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8455		return out, metadata, &smithy.DeserializationError{
8456			Err: fmt.Errorf("failed to discard response body, %w", err),
8457		}
8458	}
8459
8460	return out, metadata, err
8461}
8462
8463func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorOrigination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8464	var errorBuffer bytes.Buffer
8465	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8466		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8467	}
8468	errorBody := bytes.NewReader(errorBuffer.Bytes())
8469
8470	errorCode := "UnknownError"
8471	errorMessage := errorCode
8472
8473	code := response.Header.Get("X-Amzn-ErrorType")
8474	if len(code) != 0 {
8475		errorCode = restjson.SanitizeErrorCode(code)
8476	}
8477
8478	var buff [1024]byte
8479	ringBuffer := smithyio.NewRingBuffer(buff[:])
8480
8481	body := io.TeeReader(errorBody, ringBuffer)
8482	decoder := json.NewDecoder(body)
8483	decoder.UseNumber()
8484	code, message, err := restjson.GetErrorInfo(decoder)
8485	if err != nil {
8486		var snapshot bytes.Buffer
8487		io.Copy(&snapshot, ringBuffer)
8488		err = &smithy.DeserializationError{
8489			Err:      fmt.Errorf("failed to decode response body, %w", err),
8490			Snapshot: snapshot.Bytes(),
8491		}
8492		return err
8493	}
8494
8495	errorBody.Seek(0, io.SeekStart)
8496	if len(code) != 0 {
8497		errorCode = restjson.SanitizeErrorCode(code)
8498	}
8499	if len(message) != 0 {
8500		errorMessage = message
8501	}
8502
8503	switch {
8504	case strings.EqualFold("BadRequestException", errorCode):
8505		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8506
8507	case strings.EqualFold("ForbiddenException", errorCode):
8508		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8509
8510	case strings.EqualFold("NotFoundException", errorCode):
8511		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8512
8513	case strings.EqualFold("ServiceFailureException", errorCode):
8514		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8515
8516	case strings.EqualFold("ServiceUnavailableException", errorCode):
8517		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8518
8519	case strings.EqualFold("ThrottledClientException", errorCode):
8520		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8521
8522	case strings.EqualFold("UnauthorizedClientException", errorCode):
8523		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8524
8525	default:
8526		genericError := &smithy.GenericAPIError{
8527			Code:    errorCode,
8528			Message: errorMessage,
8529		}
8530		return genericError
8531
8532	}
8533}
8534
8535type awsRestjson1_deserializeOpDeleteVoiceConnectorProxy struct {
8536}
8537
8538func (*awsRestjson1_deserializeOpDeleteVoiceConnectorProxy) ID() string {
8539	return "OperationDeserializer"
8540}
8541
8542func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorProxy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8543	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8544) {
8545	out, metadata, err = next.HandleDeserialize(ctx, in)
8546	if err != nil {
8547		return out, metadata, err
8548	}
8549
8550	response, ok := out.RawResponse.(*smithyhttp.Response)
8551	if !ok {
8552		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8553	}
8554
8555	if response.StatusCode < 200 || response.StatusCode >= 300 {
8556		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorProxy(response, &metadata)
8557	}
8558	output := &DeleteVoiceConnectorProxyOutput{}
8559	out.Result = output
8560
8561	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8562		return out, metadata, &smithy.DeserializationError{
8563			Err: fmt.Errorf("failed to discard response body, %w", err),
8564		}
8565	}
8566
8567	return out, metadata, err
8568}
8569
8570func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorProxy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8571	var errorBuffer bytes.Buffer
8572	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8573		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8574	}
8575	errorBody := bytes.NewReader(errorBuffer.Bytes())
8576
8577	errorCode := "UnknownError"
8578	errorMessage := errorCode
8579
8580	code := response.Header.Get("X-Amzn-ErrorType")
8581	if len(code) != 0 {
8582		errorCode = restjson.SanitizeErrorCode(code)
8583	}
8584
8585	var buff [1024]byte
8586	ringBuffer := smithyio.NewRingBuffer(buff[:])
8587
8588	body := io.TeeReader(errorBody, ringBuffer)
8589	decoder := json.NewDecoder(body)
8590	decoder.UseNumber()
8591	code, message, err := restjson.GetErrorInfo(decoder)
8592	if err != nil {
8593		var snapshot bytes.Buffer
8594		io.Copy(&snapshot, ringBuffer)
8595		err = &smithy.DeserializationError{
8596			Err:      fmt.Errorf("failed to decode response body, %w", err),
8597			Snapshot: snapshot.Bytes(),
8598		}
8599		return err
8600	}
8601
8602	errorBody.Seek(0, io.SeekStart)
8603	if len(code) != 0 {
8604		errorCode = restjson.SanitizeErrorCode(code)
8605	}
8606	if len(message) != 0 {
8607		errorMessage = message
8608	}
8609
8610	switch {
8611	case strings.EqualFold("BadRequestException", errorCode):
8612		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8613
8614	case strings.EqualFold("ForbiddenException", errorCode):
8615		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8616
8617	case strings.EqualFold("NotFoundException", errorCode):
8618		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8619
8620	case strings.EqualFold("ServiceFailureException", errorCode):
8621		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8622
8623	case strings.EqualFold("ServiceUnavailableException", errorCode):
8624		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8625
8626	case strings.EqualFold("ThrottledClientException", errorCode):
8627		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8628
8629	case strings.EqualFold("UnauthorizedClientException", errorCode):
8630		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8631
8632	default:
8633		genericError := &smithy.GenericAPIError{
8634			Code:    errorCode,
8635			Message: errorMessage,
8636		}
8637		return genericError
8638
8639	}
8640}
8641
8642type awsRestjson1_deserializeOpDeleteVoiceConnectorStreamingConfiguration struct {
8643}
8644
8645func (*awsRestjson1_deserializeOpDeleteVoiceConnectorStreamingConfiguration) ID() string {
8646	return "OperationDeserializer"
8647}
8648
8649func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorStreamingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8650	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8651) {
8652	out, metadata, err = next.HandleDeserialize(ctx, in)
8653	if err != nil {
8654		return out, metadata, err
8655	}
8656
8657	response, ok := out.RawResponse.(*smithyhttp.Response)
8658	if !ok {
8659		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8660	}
8661
8662	if response.StatusCode < 200 || response.StatusCode >= 300 {
8663		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorStreamingConfiguration(response, &metadata)
8664	}
8665	output := &DeleteVoiceConnectorStreamingConfigurationOutput{}
8666	out.Result = output
8667
8668	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8669		return out, metadata, &smithy.DeserializationError{
8670			Err: fmt.Errorf("failed to discard response body, %w", err),
8671		}
8672	}
8673
8674	return out, metadata, err
8675}
8676
8677func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorStreamingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8678	var errorBuffer bytes.Buffer
8679	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8680		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8681	}
8682	errorBody := bytes.NewReader(errorBuffer.Bytes())
8683
8684	errorCode := "UnknownError"
8685	errorMessage := errorCode
8686
8687	code := response.Header.Get("X-Amzn-ErrorType")
8688	if len(code) != 0 {
8689		errorCode = restjson.SanitizeErrorCode(code)
8690	}
8691
8692	var buff [1024]byte
8693	ringBuffer := smithyio.NewRingBuffer(buff[:])
8694
8695	body := io.TeeReader(errorBody, ringBuffer)
8696	decoder := json.NewDecoder(body)
8697	decoder.UseNumber()
8698	code, message, err := restjson.GetErrorInfo(decoder)
8699	if err != nil {
8700		var snapshot bytes.Buffer
8701		io.Copy(&snapshot, ringBuffer)
8702		err = &smithy.DeserializationError{
8703			Err:      fmt.Errorf("failed to decode response body, %w", err),
8704			Snapshot: snapshot.Bytes(),
8705		}
8706		return err
8707	}
8708
8709	errorBody.Seek(0, io.SeekStart)
8710	if len(code) != 0 {
8711		errorCode = restjson.SanitizeErrorCode(code)
8712	}
8713	if len(message) != 0 {
8714		errorMessage = message
8715	}
8716
8717	switch {
8718	case strings.EqualFold("BadRequestException", errorCode):
8719		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8720
8721	case strings.EqualFold("ForbiddenException", errorCode):
8722		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8723
8724	case strings.EqualFold("NotFoundException", errorCode):
8725		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8726
8727	case strings.EqualFold("ServiceFailureException", errorCode):
8728		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8729
8730	case strings.EqualFold("ServiceUnavailableException", errorCode):
8731		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8732
8733	case strings.EqualFold("ThrottledClientException", errorCode):
8734		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8735
8736	case strings.EqualFold("UnauthorizedClientException", errorCode):
8737		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8738
8739	default:
8740		genericError := &smithy.GenericAPIError{
8741			Code:    errorCode,
8742			Message: errorMessage,
8743		}
8744		return genericError
8745
8746	}
8747}
8748
8749type awsRestjson1_deserializeOpDeleteVoiceConnectorTermination struct {
8750}
8751
8752func (*awsRestjson1_deserializeOpDeleteVoiceConnectorTermination) ID() string {
8753	return "OperationDeserializer"
8754}
8755
8756func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorTermination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8757	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8758) {
8759	out, metadata, err = next.HandleDeserialize(ctx, in)
8760	if err != nil {
8761		return out, metadata, err
8762	}
8763
8764	response, ok := out.RawResponse.(*smithyhttp.Response)
8765	if !ok {
8766		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8767	}
8768
8769	if response.StatusCode < 200 || response.StatusCode >= 300 {
8770		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTermination(response, &metadata)
8771	}
8772	output := &DeleteVoiceConnectorTerminationOutput{}
8773	out.Result = output
8774
8775	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8776		return out, metadata, &smithy.DeserializationError{
8777			Err: fmt.Errorf("failed to discard response body, %w", err),
8778		}
8779	}
8780
8781	return out, metadata, err
8782}
8783
8784func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTermination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8785	var errorBuffer bytes.Buffer
8786	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8787		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8788	}
8789	errorBody := bytes.NewReader(errorBuffer.Bytes())
8790
8791	errorCode := "UnknownError"
8792	errorMessage := errorCode
8793
8794	code := response.Header.Get("X-Amzn-ErrorType")
8795	if len(code) != 0 {
8796		errorCode = restjson.SanitizeErrorCode(code)
8797	}
8798
8799	var buff [1024]byte
8800	ringBuffer := smithyio.NewRingBuffer(buff[:])
8801
8802	body := io.TeeReader(errorBody, ringBuffer)
8803	decoder := json.NewDecoder(body)
8804	decoder.UseNumber()
8805	code, message, err := restjson.GetErrorInfo(decoder)
8806	if err != nil {
8807		var snapshot bytes.Buffer
8808		io.Copy(&snapshot, ringBuffer)
8809		err = &smithy.DeserializationError{
8810			Err:      fmt.Errorf("failed to decode response body, %w", err),
8811			Snapshot: snapshot.Bytes(),
8812		}
8813		return err
8814	}
8815
8816	errorBody.Seek(0, io.SeekStart)
8817	if len(code) != 0 {
8818		errorCode = restjson.SanitizeErrorCode(code)
8819	}
8820	if len(message) != 0 {
8821		errorMessage = message
8822	}
8823
8824	switch {
8825	case strings.EqualFold("BadRequestException", errorCode):
8826		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8827
8828	case strings.EqualFold("ForbiddenException", errorCode):
8829		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8830
8831	case strings.EqualFold("NotFoundException", errorCode):
8832		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8833
8834	case strings.EqualFold("ServiceFailureException", errorCode):
8835		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8836
8837	case strings.EqualFold("ServiceUnavailableException", errorCode):
8838		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8839
8840	case strings.EqualFold("ThrottledClientException", errorCode):
8841		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8842
8843	case strings.EqualFold("UnauthorizedClientException", errorCode):
8844		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8845
8846	default:
8847		genericError := &smithy.GenericAPIError{
8848			Code:    errorCode,
8849			Message: errorMessage,
8850		}
8851		return genericError
8852
8853	}
8854}
8855
8856type awsRestjson1_deserializeOpDeleteVoiceConnectorTerminationCredentials struct {
8857}
8858
8859func (*awsRestjson1_deserializeOpDeleteVoiceConnectorTerminationCredentials) ID() string {
8860	return "OperationDeserializer"
8861}
8862
8863func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorTerminationCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8864	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8865) {
8866	out, metadata, err = next.HandleDeserialize(ctx, in)
8867	if err != nil {
8868		return out, metadata, err
8869	}
8870
8871	response, ok := out.RawResponse.(*smithyhttp.Response)
8872	if !ok {
8873		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8874	}
8875
8876	if response.StatusCode < 200 || response.StatusCode >= 300 {
8877		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTerminationCredentials(response, &metadata)
8878	}
8879	output := &DeleteVoiceConnectorTerminationCredentialsOutput{}
8880	out.Result = output
8881
8882	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8883		return out, metadata, &smithy.DeserializationError{
8884			Err: fmt.Errorf("failed to discard response body, %w", err),
8885		}
8886	}
8887
8888	return out, metadata, err
8889}
8890
8891func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTerminationCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8892	var errorBuffer bytes.Buffer
8893	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8894		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8895	}
8896	errorBody := bytes.NewReader(errorBuffer.Bytes())
8897
8898	errorCode := "UnknownError"
8899	errorMessage := errorCode
8900
8901	code := response.Header.Get("X-Amzn-ErrorType")
8902	if len(code) != 0 {
8903		errorCode = restjson.SanitizeErrorCode(code)
8904	}
8905
8906	var buff [1024]byte
8907	ringBuffer := smithyio.NewRingBuffer(buff[:])
8908
8909	body := io.TeeReader(errorBody, ringBuffer)
8910	decoder := json.NewDecoder(body)
8911	decoder.UseNumber()
8912	code, message, err := restjson.GetErrorInfo(decoder)
8913	if err != nil {
8914		var snapshot bytes.Buffer
8915		io.Copy(&snapshot, ringBuffer)
8916		err = &smithy.DeserializationError{
8917			Err:      fmt.Errorf("failed to decode response body, %w", err),
8918			Snapshot: snapshot.Bytes(),
8919		}
8920		return err
8921	}
8922
8923	errorBody.Seek(0, io.SeekStart)
8924	if len(code) != 0 {
8925		errorCode = restjson.SanitizeErrorCode(code)
8926	}
8927	if len(message) != 0 {
8928		errorMessage = message
8929	}
8930
8931	switch {
8932	case strings.EqualFold("BadRequestException", errorCode):
8933		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8934
8935	case strings.EqualFold("ForbiddenException", errorCode):
8936		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8937
8938	case strings.EqualFold("NotFoundException", errorCode):
8939		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8940
8941	case strings.EqualFold("ServiceFailureException", errorCode):
8942		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8943
8944	case strings.EqualFold("ServiceUnavailableException", errorCode):
8945		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8946
8947	case strings.EqualFold("ThrottledClientException", errorCode):
8948		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8949
8950	case strings.EqualFold("UnauthorizedClientException", errorCode):
8951		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8952
8953	default:
8954		genericError := &smithy.GenericAPIError{
8955			Code:    errorCode,
8956			Message: errorMessage,
8957		}
8958		return genericError
8959
8960	}
8961}
8962
8963type awsRestjson1_deserializeOpDescribeAppInstance struct {
8964}
8965
8966func (*awsRestjson1_deserializeOpDescribeAppInstance) ID() string {
8967	return "OperationDeserializer"
8968}
8969
8970func (m *awsRestjson1_deserializeOpDescribeAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8971	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8972) {
8973	out, metadata, err = next.HandleDeserialize(ctx, in)
8974	if err != nil {
8975		return out, metadata, err
8976	}
8977
8978	response, ok := out.RawResponse.(*smithyhttp.Response)
8979	if !ok {
8980		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8981	}
8982
8983	if response.StatusCode < 200 || response.StatusCode >= 300 {
8984		return out, metadata, awsRestjson1_deserializeOpErrorDescribeAppInstance(response, &metadata)
8985	}
8986	output := &DescribeAppInstanceOutput{}
8987	out.Result = output
8988
8989	var buff [1024]byte
8990	ringBuffer := smithyio.NewRingBuffer(buff[:])
8991
8992	body := io.TeeReader(response.Body, ringBuffer)
8993
8994	decoder := json.NewDecoder(body)
8995	decoder.UseNumber()
8996	var shape interface{}
8997	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
8998		var snapshot bytes.Buffer
8999		io.Copy(&snapshot, ringBuffer)
9000		err = &smithy.DeserializationError{
9001			Err:      fmt.Errorf("failed to decode response body, %w", err),
9002			Snapshot: snapshot.Bytes(),
9003		}
9004		return out, metadata, err
9005	}
9006
9007	err = awsRestjson1_deserializeOpDocumentDescribeAppInstanceOutput(&output, shape)
9008	if err != nil {
9009		var snapshot bytes.Buffer
9010		io.Copy(&snapshot, ringBuffer)
9011		return out, metadata, &smithy.DeserializationError{
9012			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9013			Snapshot: snapshot.Bytes(),
9014		}
9015	}
9016
9017	return out, metadata, err
9018}
9019
9020func awsRestjson1_deserializeOpErrorDescribeAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9021	var errorBuffer bytes.Buffer
9022	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9023		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9024	}
9025	errorBody := bytes.NewReader(errorBuffer.Bytes())
9026
9027	errorCode := "UnknownError"
9028	errorMessage := errorCode
9029
9030	code := response.Header.Get("X-Amzn-ErrorType")
9031	if len(code) != 0 {
9032		errorCode = restjson.SanitizeErrorCode(code)
9033	}
9034
9035	var buff [1024]byte
9036	ringBuffer := smithyio.NewRingBuffer(buff[:])
9037
9038	body := io.TeeReader(errorBody, ringBuffer)
9039	decoder := json.NewDecoder(body)
9040	decoder.UseNumber()
9041	code, message, err := restjson.GetErrorInfo(decoder)
9042	if err != nil {
9043		var snapshot bytes.Buffer
9044		io.Copy(&snapshot, ringBuffer)
9045		err = &smithy.DeserializationError{
9046			Err:      fmt.Errorf("failed to decode response body, %w", err),
9047			Snapshot: snapshot.Bytes(),
9048		}
9049		return err
9050	}
9051
9052	errorBody.Seek(0, io.SeekStart)
9053	if len(code) != 0 {
9054		errorCode = restjson.SanitizeErrorCode(code)
9055	}
9056	if len(message) != 0 {
9057		errorMessage = message
9058	}
9059
9060	switch {
9061	case strings.EqualFold("BadRequestException", errorCode):
9062		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9063
9064	case strings.EqualFold("ForbiddenException", errorCode):
9065		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9066
9067	case strings.EqualFold("ServiceFailureException", errorCode):
9068		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9069
9070	case strings.EqualFold("ServiceUnavailableException", errorCode):
9071		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9072
9073	case strings.EqualFold("ThrottledClientException", errorCode):
9074		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9075
9076	case strings.EqualFold("UnauthorizedClientException", errorCode):
9077		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9078
9079	default:
9080		genericError := &smithy.GenericAPIError{
9081			Code:    errorCode,
9082			Message: errorMessage,
9083		}
9084		return genericError
9085
9086	}
9087}
9088
9089func awsRestjson1_deserializeOpDocumentDescribeAppInstanceOutput(v **DescribeAppInstanceOutput, value interface{}) error {
9090	if v == nil {
9091		return fmt.Errorf("unexpected nil of type %T", v)
9092	}
9093	if value == nil {
9094		return nil
9095	}
9096
9097	shape, ok := value.(map[string]interface{})
9098	if !ok {
9099		return fmt.Errorf("unexpected JSON type %v", value)
9100	}
9101
9102	var sv *DescribeAppInstanceOutput
9103	if *v == nil {
9104		sv = &DescribeAppInstanceOutput{}
9105	} else {
9106		sv = *v
9107	}
9108
9109	for key, value := range shape {
9110		switch key {
9111		case "AppInstance":
9112			if err := awsRestjson1_deserializeDocumentAppInstance(&sv.AppInstance, value); err != nil {
9113				return err
9114			}
9115
9116		default:
9117			_, _ = key, value
9118
9119		}
9120	}
9121	*v = sv
9122	return nil
9123}
9124
9125type awsRestjson1_deserializeOpDescribeAppInstanceAdmin struct {
9126}
9127
9128func (*awsRestjson1_deserializeOpDescribeAppInstanceAdmin) ID() string {
9129	return "OperationDeserializer"
9130}
9131
9132func (m *awsRestjson1_deserializeOpDescribeAppInstanceAdmin) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9133	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9134) {
9135	out, metadata, err = next.HandleDeserialize(ctx, in)
9136	if err != nil {
9137		return out, metadata, err
9138	}
9139
9140	response, ok := out.RawResponse.(*smithyhttp.Response)
9141	if !ok {
9142		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9143	}
9144
9145	if response.StatusCode < 200 || response.StatusCode >= 300 {
9146		return out, metadata, awsRestjson1_deserializeOpErrorDescribeAppInstanceAdmin(response, &metadata)
9147	}
9148	output := &DescribeAppInstanceAdminOutput{}
9149	out.Result = output
9150
9151	var buff [1024]byte
9152	ringBuffer := smithyio.NewRingBuffer(buff[:])
9153
9154	body := io.TeeReader(response.Body, ringBuffer)
9155
9156	decoder := json.NewDecoder(body)
9157	decoder.UseNumber()
9158	var shape interface{}
9159	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9160		var snapshot bytes.Buffer
9161		io.Copy(&snapshot, ringBuffer)
9162		err = &smithy.DeserializationError{
9163			Err:      fmt.Errorf("failed to decode response body, %w", err),
9164			Snapshot: snapshot.Bytes(),
9165		}
9166		return out, metadata, err
9167	}
9168
9169	err = awsRestjson1_deserializeOpDocumentDescribeAppInstanceAdminOutput(&output, shape)
9170	if err != nil {
9171		var snapshot bytes.Buffer
9172		io.Copy(&snapshot, ringBuffer)
9173		return out, metadata, &smithy.DeserializationError{
9174			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9175			Snapshot: snapshot.Bytes(),
9176		}
9177	}
9178
9179	return out, metadata, err
9180}
9181
9182func awsRestjson1_deserializeOpErrorDescribeAppInstanceAdmin(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9183	var errorBuffer bytes.Buffer
9184	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9185		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9186	}
9187	errorBody := bytes.NewReader(errorBuffer.Bytes())
9188
9189	errorCode := "UnknownError"
9190	errorMessage := errorCode
9191
9192	code := response.Header.Get("X-Amzn-ErrorType")
9193	if len(code) != 0 {
9194		errorCode = restjson.SanitizeErrorCode(code)
9195	}
9196
9197	var buff [1024]byte
9198	ringBuffer := smithyio.NewRingBuffer(buff[:])
9199
9200	body := io.TeeReader(errorBody, ringBuffer)
9201	decoder := json.NewDecoder(body)
9202	decoder.UseNumber()
9203	code, message, err := restjson.GetErrorInfo(decoder)
9204	if err != nil {
9205		var snapshot bytes.Buffer
9206		io.Copy(&snapshot, ringBuffer)
9207		err = &smithy.DeserializationError{
9208			Err:      fmt.Errorf("failed to decode response body, %w", err),
9209			Snapshot: snapshot.Bytes(),
9210		}
9211		return err
9212	}
9213
9214	errorBody.Seek(0, io.SeekStart)
9215	if len(code) != 0 {
9216		errorCode = restjson.SanitizeErrorCode(code)
9217	}
9218	if len(message) != 0 {
9219		errorMessage = message
9220	}
9221
9222	switch {
9223	case strings.EqualFold("BadRequestException", errorCode):
9224		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9225
9226	case strings.EqualFold("ForbiddenException", errorCode):
9227		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9228
9229	case strings.EqualFold("ServiceFailureException", errorCode):
9230		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9231
9232	case strings.EqualFold("ServiceUnavailableException", errorCode):
9233		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9234
9235	case strings.EqualFold("ThrottledClientException", errorCode):
9236		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9237
9238	case strings.EqualFold("UnauthorizedClientException", errorCode):
9239		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9240
9241	default:
9242		genericError := &smithy.GenericAPIError{
9243			Code:    errorCode,
9244			Message: errorMessage,
9245		}
9246		return genericError
9247
9248	}
9249}
9250
9251func awsRestjson1_deserializeOpDocumentDescribeAppInstanceAdminOutput(v **DescribeAppInstanceAdminOutput, value interface{}) error {
9252	if v == nil {
9253		return fmt.Errorf("unexpected nil of type %T", v)
9254	}
9255	if value == nil {
9256		return nil
9257	}
9258
9259	shape, ok := value.(map[string]interface{})
9260	if !ok {
9261		return fmt.Errorf("unexpected JSON type %v", value)
9262	}
9263
9264	var sv *DescribeAppInstanceAdminOutput
9265	if *v == nil {
9266		sv = &DescribeAppInstanceAdminOutput{}
9267	} else {
9268		sv = *v
9269	}
9270
9271	for key, value := range shape {
9272		switch key {
9273		case "AppInstanceAdmin":
9274			if err := awsRestjson1_deserializeDocumentAppInstanceAdmin(&sv.AppInstanceAdmin, value); err != nil {
9275				return err
9276			}
9277
9278		default:
9279			_, _ = key, value
9280
9281		}
9282	}
9283	*v = sv
9284	return nil
9285}
9286
9287type awsRestjson1_deserializeOpDescribeAppInstanceUser struct {
9288}
9289
9290func (*awsRestjson1_deserializeOpDescribeAppInstanceUser) ID() string {
9291	return "OperationDeserializer"
9292}
9293
9294func (m *awsRestjson1_deserializeOpDescribeAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9295	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9296) {
9297	out, metadata, err = next.HandleDeserialize(ctx, in)
9298	if err != nil {
9299		return out, metadata, err
9300	}
9301
9302	response, ok := out.RawResponse.(*smithyhttp.Response)
9303	if !ok {
9304		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9305	}
9306
9307	if response.StatusCode < 200 || response.StatusCode >= 300 {
9308		return out, metadata, awsRestjson1_deserializeOpErrorDescribeAppInstanceUser(response, &metadata)
9309	}
9310	output := &DescribeAppInstanceUserOutput{}
9311	out.Result = output
9312
9313	var buff [1024]byte
9314	ringBuffer := smithyio.NewRingBuffer(buff[:])
9315
9316	body := io.TeeReader(response.Body, ringBuffer)
9317
9318	decoder := json.NewDecoder(body)
9319	decoder.UseNumber()
9320	var shape interface{}
9321	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9322		var snapshot bytes.Buffer
9323		io.Copy(&snapshot, ringBuffer)
9324		err = &smithy.DeserializationError{
9325			Err:      fmt.Errorf("failed to decode response body, %w", err),
9326			Snapshot: snapshot.Bytes(),
9327		}
9328		return out, metadata, err
9329	}
9330
9331	err = awsRestjson1_deserializeOpDocumentDescribeAppInstanceUserOutput(&output, shape)
9332	if err != nil {
9333		var snapshot bytes.Buffer
9334		io.Copy(&snapshot, ringBuffer)
9335		return out, metadata, &smithy.DeserializationError{
9336			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9337			Snapshot: snapshot.Bytes(),
9338		}
9339	}
9340
9341	return out, metadata, err
9342}
9343
9344func awsRestjson1_deserializeOpErrorDescribeAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9345	var errorBuffer bytes.Buffer
9346	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9347		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9348	}
9349	errorBody := bytes.NewReader(errorBuffer.Bytes())
9350
9351	errorCode := "UnknownError"
9352	errorMessage := errorCode
9353
9354	code := response.Header.Get("X-Amzn-ErrorType")
9355	if len(code) != 0 {
9356		errorCode = restjson.SanitizeErrorCode(code)
9357	}
9358
9359	var buff [1024]byte
9360	ringBuffer := smithyio.NewRingBuffer(buff[:])
9361
9362	body := io.TeeReader(errorBody, ringBuffer)
9363	decoder := json.NewDecoder(body)
9364	decoder.UseNumber()
9365	code, message, err := restjson.GetErrorInfo(decoder)
9366	if err != nil {
9367		var snapshot bytes.Buffer
9368		io.Copy(&snapshot, ringBuffer)
9369		err = &smithy.DeserializationError{
9370			Err:      fmt.Errorf("failed to decode response body, %w", err),
9371			Snapshot: snapshot.Bytes(),
9372		}
9373		return err
9374	}
9375
9376	errorBody.Seek(0, io.SeekStart)
9377	if len(code) != 0 {
9378		errorCode = restjson.SanitizeErrorCode(code)
9379	}
9380	if len(message) != 0 {
9381		errorMessage = message
9382	}
9383
9384	switch {
9385	case strings.EqualFold("BadRequestException", errorCode):
9386		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9387
9388	case strings.EqualFold("ForbiddenException", errorCode):
9389		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9390
9391	case strings.EqualFold("ServiceFailureException", errorCode):
9392		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9393
9394	case strings.EqualFold("ServiceUnavailableException", errorCode):
9395		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9396
9397	case strings.EqualFold("ThrottledClientException", errorCode):
9398		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9399
9400	case strings.EqualFold("UnauthorizedClientException", errorCode):
9401		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9402
9403	default:
9404		genericError := &smithy.GenericAPIError{
9405			Code:    errorCode,
9406			Message: errorMessage,
9407		}
9408		return genericError
9409
9410	}
9411}
9412
9413func awsRestjson1_deserializeOpDocumentDescribeAppInstanceUserOutput(v **DescribeAppInstanceUserOutput, value interface{}) error {
9414	if v == nil {
9415		return fmt.Errorf("unexpected nil of type %T", v)
9416	}
9417	if value == nil {
9418		return nil
9419	}
9420
9421	shape, ok := value.(map[string]interface{})
9422	if !ok {
9423		return fmt.Errorf("unexpected JSON type %v", value)
9424	}
9425
9426	var sv *DescribeAppInstanceUserOutput
9427	if *v == nil {
9428		sv = &DescribeAppInstanceUserOutput{}
9429	} else {
9430		sv = *v
9431	}
9432
9433	for key, value := range shape {
9434		switch key {
9435		case "AppInstanceUser":
9436			if err := awsRestjson1_deserializeDocumentAppInstanceUser(&sv.AppInstanceUser, value); err != nil {
9437				return err
9438			}
9439
9440		default:
9441			_, _ = key, value
9442
9443		}
9444	}
9445	*v = sv
9446	return nil
9447}
9448
9449type awsRestjson1_deserializeOpDescribeChannel struct {
9450}
9451
9452func (*awsRestjson1_deserializeOpDescribeChannel) ID() string {
9453	return "OperationDeserializer"
9454}
9455
9456func (m *awsRestjson1_deserializeOpDescribeChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9457	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9458) {
9459	out, metadata, err = next.HandleDeserialize(ctx, in)
9460	if err != nil {
9461		return out, metadata, err
9462	}
9463
9464	response, ok := out.RawResponse.(*smithyhttp.Response)
9465	if !ok {
9466		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9467	}
9468
9469	if response.StatusCode < 200 || response.StatusCode >= 300 {
9470		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannel(response, &metadata)
9471	}
9472	output := &DescribeChannelOutput{}
9473	out.Result = output
9474
9475	var buff [1024]byte
9476	ringBuffer := smithyio.NewRingBuffer(buff[:])
9477
9478	body := io.TeeReader(response.Body, ringBuffer)
9479
9480	decoder := json.NewDecoder(body)
9481	decoder.UseNumber()
9482	var shape interface{}
9483	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9484		var snapshot bytes.Buffer
9485		io.Copy(&snapshot, ringBuffer)
9486		err = &smithy.DeserializationError{
9487			Err:      fmt.Errorf("failed to decode response body, %w", err),
9488			Snapshot: snapshot.Bytes(),
9489		}
9490		return out, metadata, err
9491	}
9492
9493	err = awsRestjson1_deserializeOpDocumentDescribeChannelOutput(&output, shape)
9494	if err != nil {
9495		var snapshot bytes.Buffer
9496		io.Copy(&snapshot, ringBuffer)
9497		return out, metadata, &smithy.DeserializationError{
9498			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9499			Snapshot: snapshot.Bytes(),
9500		}
9501	}
9502
9503	return out, metadata, err
9504}
9505
9506func awsRestjson1_deserializeOpErrorDescribeChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9507	var errorBuffer bytes.Buffer
9508	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9509		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9510	}
9511	errorBody := bytes.NewReader(errorBuffer.Bytes())
9512
9513	errorCode := "UnknownError"
9514	errorMessage := errorCode
9515
9516	code := response.Header.Get("X-Amzn-ErrorType")
9517	if len(code) != 0 {
9518		errorCode = restjson.SanitizeErrorCode(code)
9519	}
9520
9521	var buff [1024]byte
9522	ringBuffer := smithyio.NewRingBuffer(buff[:])
9523
9524	body := io.TeeReader(errorBody, ringBuffer)
9525	decoder := json.NewDecoder(body)
9526	decoder.UseNumber()
9527	code, message, err := restjson.GetErrorInfo(decoder)
9528	if err != nil {
9529		var snapshot bytes.Buffer
9530		io.Copy(&snapshot, ringBuffer)
9531		err = &smithy.DeserializationError{
9532			Err:      fmt.Errorf("failed to decode response body, %w", err),
9533			Snapshot: snapshot.Bytes(),
9534		}
9535		return err
9536	}
9537
9538	errorBody.Seek(0, io.SeekStart)
9539	if len(code) != 0 {
9540		errorCode = restjson.SanitizeErrorCode(code)
9541	}
9542	if len(message) != 0 {
9543		errorMessage = message
9544	}
9545
9546	switch {
9547	case strings.EqualFold("BadRequestException", errorCode):
9548		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9549
9550	case strings.EqualFold("ForbiddenException", errorCode):
9551		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9552
9553	case strings.EqualFold("ServiceFailureException", errorCode):
9554		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9555
9556	case strings.EqualFold("ServiceUnavailableException", errorCode):
9557		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9558
9559	case strings.EqualFold("ThrottledClientException", errorCode):
9560		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9561
9562	case strings.EqualFold("UnauthorizedClientException", errorCode):
9563		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9564
9565	default:
9566		genericError := &smithy.GenericAPIError{
9567			Code:    errorCode,
9568			Message: errorMessage,
9569		}
9570		return genericError
9571
9572	}
9573}
9574
9575func awsRestjson1_deserializeOpDocumentDescribeChannelOutput(v **DescribeChannelOutput, value interface{}) error {
9576	if v == nil {
9577		return fmt.Errorf("unexpected nil of type %T", v)
9578	}
9579	if value == nil {
9580		return nil
9581	}
9582
9583	shape, ok := value.(map[string]interface{})
9584	if !ok {
9585		return fmt.Errorf("unexpected JSON type %v", value)
9586	}
9587
9588	var sv *DescribeChannelOutput
9589	if *v == nil {
9590		sv = &DescribeChannelOutput{}
9591	} else {
9592		sv = *v
9593	}
9594
9595	for key, value := range shape {
9596		switch key {
9597		case "Channel":
9598			if err := awsRestjson1_deserializeDocumentChannel(&sv.Channel, value); err != nil {
9599				return err
9600			}
9601
9602		default:
9603			_, _ = key, value
9604
9605		}
9606	}
9607	*v = sv
9608	return nil
9609}
9610
9611type awsRestjson1_deserializeOpDescribeChannelBan struct {
9612}
9613
9614func (*awsRestjson1_deserializeOpDescribeChannelBan) ID() string {
9615	return "OperationDeserializer"
9616}
9617
9618func (m *awsRestjson1_deserializeOpDescribeChannelBan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9619	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9620) {
9621	out, metadata, err = next.HandleDeserialize(ctx, in)
9622	if err != nil {
9623		return out, metadata, err
9624	}
9625
9626	response, ok := out.RawResponse.(*smithyhttp.Response)
9627	if !ok {
9628		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9629	}
9630
9631	if response.StatusCode < 200 || response.StatusCode >= 300 {
9632		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelBan(response, &metadata)
9633	}
9634	output := &DescribeChannelBanOutput{}
9635	out.Result = output
9636
9637	var buff [1024]byte
9638	ringBuffer := smithyio.NewRingBuffer(buff[:])
9639
9640	body := io.TeeReader(response.Body, ringBuffer)
9641
9642	decoder := json.NewDecoder(body)
9643	decoder.UseNumber()
9644	var shape interface{}
9645	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9646		var snapshot bytes.Buffer
9647		io.Copy(&snapshot, ringBuffer)
9648		err = &smithy.DeserializationError{
9649			Err:      fmt.Errorf("failed to decode response body, %w", err),
9650			Snapshot: snapshot.Bytes(),
9651		}
9652		return out, metadata, err
9653	}
9654
9655	err = awsRestjson1_deserializeOpDocumentDescribeChannelBanOutput(&output, shape)
9656	if err != nil {
9657		var snapshot bytes.Buffer
9658		io.Copy(&snapshot, ringBuffer)
9659		return out, metadata, &smithy.DeserializationError{
9660			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9661			Snapshot: snapshot.Bytes(),
9662		}
9663	}
9664
9665	return out, metadata, err
9666}
9667
9668func awsRestjson1_deserializeOpErrorDescribeChannelBan(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9669	var errorBuffer bytes.Buffer
9670	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9671		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9672	}
9673	errorBody := bytes.NewReader(errorBuffer.Bytes())
9674
9675	errorCode := "UnknownError"
9676	errorMessage := errorCode
9677
9678	code := response.Header.Get("X-Amzn-ErrorType")
9679	if len(code) != 0 {
9680		errorCode = restjson.SanitizeErrorCode(code)
9681	}
9682
9683	var buff [1024]byte
9684	ringBuffer := smithyio.NewRingBuffer(buff[:])
9685
9686	body := io.TeeReader(errorBody, ringBuffer)
9687	decoder := json.NewDecoder(body)
9688	decoder.UseNumber()
9689	code, message, err := restjson.GetErrorInfo(decoder)
9690	if err != nil {
9691		var snapshot bytes.Buffer
9692		io.Copy(&snapshot, ringBuffer)
9693		err = &smithy.DeserializationError{
9694			Err:      fmt.Errorf("failed to decode response body, %w", err),
9695			Snapshot: snapshot.Bytes(),
9696		}
9697		return err
9698	}
9699
9700	errorBody.Seek(0, io.SeekStart)
9701	if len(code) != 0 {
9702		errorCode = restjson.SanitizeErrorCode(code)
9703	}
9704	if len(message) != 0 {
9705		errorMessage = message
9706	}
9707
9708	switch {
9709	case strings.EqualFold("BadRequestException", errorCode):
9710		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9711
9712	case strings.EqualFold("ForbiddenException", errorCode):
9713		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9714
9715	case strings.EqualFold("NotFoundException", errorCode):
9716		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
9717
9718	case strings.EqualFold("ServiceFailureException", errorCode):
9719		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9720
9721	case strings.EqualFold("ServiceUnavailableException", errorCode):
9722		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9723
9724	case strings.EqualFold("ThrottledClientException", errorCode):
9725		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9726
9727	case strings.EqualFold("UnauthorizedClientException", errorCode):
9728		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9729
9730	default:
9731		genericError := &smithy.GenericAPIError{
9732			Code:    errorCode,
9733			Message: errorMessage,
9734		}
9735		return genericError
9736
9737	}
9738}
9739
9740func awsRestjson1_deserializeOpDocumentDescribeChannelBanOutput(v **DescribeChannelBanOutput, value interface{}) error {
9741	if v == nil {
9742		return fmt.Errorf("unexpected nil of type %T", v)
9743	}
9744	if value == nil {
9745		return nil
9746	}
9747
9748	shape, ok := value.(map[string]interface{})
9749	if !ok {
9750		return fmt.Errorf("unexpected JSON type %v", value)
9751	}
9752
9753	var sv *DescribeChannelBanOutput
9754	if *v == nil {
9755		sv = &DescribeChannelBanOutput{}
9756	} else {
9757		sv = *v
9758	}
9759
9760	for key, value := range shape {
9761		switch key {
9762		case "ChannelBan":
9763			if err := awsRestjson1_deserializeDocumentChannelBan(&sv.ChannelBan, value); err != nil {
9764				return err
9765			}
9766
9767		default:
9768			_, _ = key, value
9769
9770		}
9771	}
9772	*v = sv
9773	return nil
9774}
9775
9776type awsRestjson1_deserializeOpDescribeChannelMembership struct {
9777}
9778
9779func (*awsRestjson1_deserializeOpDescribeChannelMembership) ID() string {
9780	return "OperationDeserializer"
9781}
9782
9783func (m *awsRestjson1_deserializeOpDescribeChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9784	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9785) {
9786	out, metadata, err = next.HandleDeserialize(ctx, in)
9787	if err != nil {
9788		return out, metadata, err
9789	}
9790
9791	response, ok := out.RawResponse.(*smithyhttp.Response)
9792	if !ok {
9793		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9794	}
9795
9796	if response.StatusCode < 200 || response.StatusCode >= 300 {
9797		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelMembership(response, &metadata)
9798	}
9799	output := &DescribeChannelMembershipOutput{}
9800	out.Result = output
9801
9802	var buff [1024]byte
9803	ringBuffer := smithyio.NewRingBuffer(buff[:])
9804
9805	body := io.TeeReader(response.Body, ringBuffer)
9806
9807	decoder := json.NewDecoder(body)
9808	decoder.UseNumber()
9809	var shape interface{}
9810	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9811		var snapshot bytes.Buffer
9812		io.Copy(&snapshot, ringBuffer)
9813		err = &smithy.DeserializationError{
9814			Err:      fmt.Errorf("failed to decode response body, %w", err),
9815			Snapshot: snapshot.Bytes(),
9816		}
9817		return out, metadata, err
9818	}
9819
9820	err = awsRestjson1_deserializeOpDocumentDescribeChannelMembershipOutput(&output, shape)
9821	if err != nil {
9822		var snapshot bytes.Buffer
9823		io.Copy(&snapshot, ringBuffer)
9824		return out, metadata, &smithy.DeserializationError{
9825			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9826			Snapshot: snapshot.Bytes(),
9827		}
9828	}
9829
9830	return out, metadata, err
9831}
9832
9833func awsRestjson1_deserializeOpErrorDescribeChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9834	var errorBuffer bytes.Buffer
9835	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9836		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9837	}
9838	errorBody := bytes.NewReader(errorBuffer.Bytes())
9839
9840	errorCode := "UnknownError"
9841	errorMessage := errorCode
9842
9843	code := response.Header.Get("X-Amzn-ErrorType")
9844	if len(code) != 0 {
9845		errorCode = restjson.SanitizeErrorCode(code)
9846	}
9847
9848	var buff [1024]byte
9849	ringBuffer := smithyio.NewRingBuffer(buff[:])
9850
9851	body := io.TeeReader(errorBody, ringBuffer)
9852	decoder := json.NewDecoder(body)
9853	decoder.UseNumber()
9854	code, message, err := restjson.GetErrorInfo(decoder)
9855	if err != nil {
9856		var snapshot bytes.Buffer
9857		io.Copy(&snapshot, ringBuffer)
9858		err = &smithy.DeserializationError{
9859			Err:      fmt.Errorf("failed to decode response body, %w", err),
9860			Snapshot: snapshot.Bytes(),
9861		}
9862		return err
9863	}
9864
9865	errorBody.Seek(0, io.SeekStart)
9866	if len(code) != 0 {
9867		errorCode = restjson.SanitizeErrorCode(code)
9868	}
9869	if len(message) != 0 {
9870		errorMessage = message
9871	}
9872
9873	switch {
9874	case strings.EqualFold("BadRequestException", errorCode):
9875		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9876
9877	case strings.EqualFold("ForbiddenException", errorCode):
9878		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9879
9880	case strings.EqualFold("NotFoundException", errorCode):
9881		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
9882
9883	case strings.EqualFold("ServiceFailureException", errorCode):
9884		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9885
9886	case strings.EqualFold("ServiceUnavailableException", errorCode):
9887		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9888
9889	case strings.EqualFold("ThrottledClientException", errorCode):
9890		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9891
9892	case strings.EqualFold("UnauthorizedClientException", errorCode):
9893		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9894
9895	default:
9896		genericError := &smithy.GenericAPIError{
9897			Code:    errorCode,
9898			Message: errorMessage,
9899		}
9900		return genericError
9901
9902	}
9903}
9904
9905func awsRestjson1_deserializeOpDocumentDescribeChannelMembershipOutput(v **DescribeChannelMembershipOutput, value interface{}) error {
9906	if v == nil {
9907		return fmt.Errorf("unexpected nil of type %T", v)
9908	}
9909	if value == nil {
9910		return nil
9911	}
9912
9913	shape, ok := value.(map[string]interface{})
9914	if !ok {
9915		return fmt.Errorf("unexpected JSON type %v", value)
9916	}
9917
9918	var sv *DescribeChannelMembershipOutput
9919	if *v == nil {
9920		sv = &DescribeChannelMembershipOutput{}
9921	} else {
9922		sv = *v
9923	}
9924
9925	for key, value := range shape {
9926		switch key {
9927		case "ChannelMembership":
9928			if err := awsRestjson1_deserializeDocumentChannelMembership(&sv.ChannelMembership, value); err != nil {
9929				return err
9930			}
9931
9932		default:
9933			_, _ = key, value
9934
9935		}
9936	}
9937	*v = sv
9938	return nil
9939}
9940
9941type awsRestjson1_deserializeOpDescribeChannelMembershipForAppInstanceUser struct {
9942}
9943
9944func (*awsRestjson1_deserializeOpDescribeChannelMembershipForAppInstanceUser) ID() string {
9945	return "OperationDeserializer"
9946}
9947
9948func (m *awsRestjson1_deserializeOpDescribeChannelMembershipForAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9949	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9950) {
9951	out, metadata, err = next.HandleDeserialize(ctx, in)
9952	if err != nil {
9953		return out, metadata, err
9954	}
9955
9956	response, ok := out.RawResponse.(*smithyhttp.Response)
9957	if !ok {
9958		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9959	}
9960
9961	if response.StatusCode < 200 || response.StatusCode >= 300 {
9962		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelMembershipForAppInstanceUser(response, &metadata)
9963	}
9964	output := &DescribeChannelMembershipForAppInstanceUserOutput{}
9965	out.Result = output
9966
9967	var buff [1024]byte
9968	ringBuffer := smithyio.NewRingBuffer(buff[:])
9969
9970	body := io.TeeReader(response.Body, ringBuffer)
9971
9972	decoder := json.NewDecoder(body)
9973	decoder.UseNumber()
9974	var shape interface{}
9975	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9976		var snapshot bytes.Buffer
9977		io.Copy(&snapshot, ringBuffer)
9978		err = &smithy.DeserializationError{
9979			Err:      fmt.Errorf("failed to decode response body, %w", err),
9980			Snapshot: snapshot.Bytes(),
9981		}
9982		return out, metadata, err
9983	}
9984
9985	err = awsRestjson1_deserializeOpDocumentDescribeChannelMembershipForAppInstanceUserOutput(&output, shape)
9986	if err != nil {
9987		var snapshot bytes.Buffer
9988		io.Copy(&snapshot, ringBuffer)
9989		return out, metadata, &smithy.DeserializationError{
9990			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9991			Snapshot: snapshot.Bytes(),
9992		}
9993	}
9994
9995	return out, metadata, err
9996}
9997
9998func awsRestjson1_deserializeOpErrorDescribeChannelMembershipForAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9999	var errorBuffer bytes.Buffer
10000	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10001		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10002	}
10003	errorBody := bytes.NewReader(errorBuffer.Bytes())
10004
10005	errorCode := "UnknownError"
10006	errorMessage := errorCode
10007
10008	code := response.Header.Get("X-Amzn-ErrorType")
10009	if len(code) != 0 {
10010		errorCode = restjson.SanitizeErrorCode(code)
10011	}
10012
10013	var buff [1024]byte
10014	ringBuffer := smithyio.NewRingBuffer(buff[:])
10015
10016	body := io.TeeReader(errorBody, ringBuffer)
10017	decoder := json.NewDecoder(body)
10018	decoder.UseNumber()
10019	code, message, err := restjson.GetErrorInfo(decoder)
10020	if err != nil {
10021		var snapshot bytes.Buffer
10022		io.Copy(&snapshot, ringBuffer)
10023		err = &smithy.DeserializationError{
10024			Err:      fmt.Errorf("failed to decode response body, %w", err),
10025			Snapshot: snapshot.Bytes(),
10026		}
10027		return err
10028	}
10029
10030	errorBody.Seek(0, io.SeekStart)
10031	if len(code) != 0 {
10032		errorCode = restjson.SanitizeErrorCode(code)
10033	}
10034	if len(message) != 0 {
10035		errorMessage = message
10036	}
10037
10038	switch {
10039	case strings.EqualFold("BadRequestException", errorCode):
10040		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10041
10042	case strings.EqualFold("ForbiddenException", errorCode):
10043		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10044
10045	case strings.EqualFold("ServiceFailureException", errorCode):
10046		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10047
10048	case strings.EqualFold("ServiceUnavailableException", errorCode):
10049		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10050
10051	case strings.EqualFold("ThrottledClientException", errorCode):
10052		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10053
10054	case strings.EqualFold("UnauthorizedClientException", errorCode):
10055		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10056
10057	default:
10058		genericError := &smithy.GenericAPIError{
10059			Code:    errorCode,
10060			Message: errorMessage,
10061		}
10062		return genericError
10063
10064	}
10065}
10066
10067func awsRestjson1_deserializeOpDocumentDescribeChannelMembershipForAppInstanceUserOutput(v **DescribeChannelMembershipForAppInstanceUserOutput, value interface{}) error {
10068	if v == nil {
10069		return fmt.Errorf("unexpected nil of type %T", v)
10070	}
10071	if value == nil {
10072		return nil
10073	}
10074
10075	shape, ok := value.(map[string]interface{})
10076	if !ok {
10077		return fmt.Errorf("unexpected JSON type %v", value)
10078	}
10079
10080	var sv *DescribeChannelMembershipForAppInstanceUserOutput
10081	if *v == nil {
10082		sv = &DescribeChannelMembershipForAppInstanceUserOutput{}
10083	} else {
10084		sv = *v
10085	}
10086
10087	for key, value := range shape {
10088		switch key {
10089		case "ChannelMembership":
10090			if err := awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummary(&sv.ChannelMembership, value); err != nil {
10091				return err
10092			}
10093
10094		default:
10095			_, _ = key, value
10096
10097		}
10098	}
10099	*v = sv
10100	return nil
10101}
10102
10103type awsRestjson1_deserializeOpDescribeChannelModeratedByAppInstanceUser struct {
10104}
10105
10106func (*awsRestjson1_deserializeOpDescribeChannelModeratedByAppInstanceUser) ID() string {
10107	return "OperationDeserializer"
10108}
10109
10110func (m *awsRestjson1_deserializeOpDescribeChannelModeratedByAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10111	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10112) {
10113	out, metadata, err = next.HandleDeserialize(ctx, in)
10114	if err != nil {
10115		return out, metadata, err
10116	}
10117
10118	response, ok := out.RawResponse.(*smithyhttp.Response)
10119	if !ok {
10120		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10121	}
10122
10123	if response.StatusCode < 200 || response.StatusCode >= 300 {
10124		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelModeratedByAppInstanceUser(response, &metadata)
10125	}
10126	output := &DescribeChannelModeratedByAppInstanceUserOutput{}
10127	out.Result = output
10128
10129	var buff [1024]byte
10130	ringBuffer := smithyio.NewRingBuffer(buff[:])
10131
10132	body := io.TeeReader(response.Body, ringBuffer)
10133
10134	decoder := json.NewDecoder(body)
10135	decoder.UseNumber()
10136	var shape interface{}
10137	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10138		var snapshot bytes.Buffer
10139		io.Copy(&snapshot, ringBuffer)
10140		err = &smithy.DeserializationError{
10141			Err:      fmt.Errorf("failed to decode response body, %w", err),
10142			Snapshot: snapshot.Bytes(),
10143		}
10144		return out, metadata, err
10145	}
10146
10147	err = awsRestjson1_deserializeOpDocumentDescribeChannelModeratedByAppInstanceUserOutput(&output, shape)
10148	if err != nil {
10149		var snapshot bytes.Buffer
10150		io.Copy(&snapshot, ringBuffer)
10151		return out, metadata, &smithy.DeserializationError{
10152			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10153			Snapshot: snapshot.Bytes(),
10154		}
10155	}
10156
10157	return out, metadata, err
10158}
10159
10160func awsRestjson1_deserializeOpErrorDescribeChannelModeratedByAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10161	var errorBuffer bytes.Buffer
10162	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10163		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10164	}
10165	errorBody := bytes.NewReader(errorBuffer.Bytes())
10166
10167	errorCode := "UnknownError"
10168	errorMessage := errorCode
10169
10170	code := response.Header.Get("X-Amzn-ErrorType")
10171	if len(code) != 0 {
10172		errorCode = restjson.SanitizeErrorCode(code)
10173	}
10174
10175	var buff [1024]byte
10176	ringBuffer := smithyio.NewRingBuffer(buff[:])
10177
10178	body := io.TeeReader(errorBody, ringBuffer)
10179	decoder := json.NewDecoder(body)
10180	decoder.UseNumber()
10181	code, message, err := restjson.GetErrorInfo(decoder)
10182	if err != nil {
10183		var snapshot bytes.Buffer
10184		io.Copy(&snapshot, ringBuffer)
10185		err = &smithy.DeserializationError{
10186			Err:      fmt.Errorf("failed to decode response body, %w", err),
10187			Snapshot: snapshot.Bytes(),
10188		}
10189		return err
10190	}
10191
10192	errorBody.Seek(0, io.SeekStart)
10193	if len(code) != 0 {
10194		errorCode = restjson.SanitizeErrorCode(code)
10195	}
10196	if len(message) != 0 {
10197		errorMessage = message
10198	}
10199
10200	switch {
10201	case strings.EqualFold("BadRequestException", errorCode):
10202		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10203
10204	case strings.EqualFold("ForbiddenException", errorCode):
10205		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10206
10207	case strings.EqualFold("ServiceFailureException", errorCode):
10208		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10209
10210	case strings.EqualFold("ServiceUnavailableException", errorCode):
10211		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10212
10213	case strings.EqualFold("ThrottledClientException", errorCode):
10214		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10215
10216	case strings.EqualFold("UnauthorizedClientException", errorCode):
10217		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10218
10219	default:
10220		genericError := &smithy.GenericAPIError{
10221			Code:    errorCode,
10222			Message: errorMessage,
10223		}
10224		return genericError
10225
10226	}
10227}
10228
10229func awsRestjson1_deserializeOpDocumentDescribeChannelModeratedByAppInstanceUserOutput(v **DescribeChannelModeratedByAppInstanceUserOutput, value interface{}) error {
10230	if v == nil {
10231		return fmt.Errorf("unexpected nil of type %T", v)
10232	}
10233	if value == nil {
10234		return nil
10235	}
10236
10237	shape, ok := value.(map[string]interface{})
10238	if !ok {
10239		return fmt.Errorf("unexpected JSON type %v", value)
10240	}
10241
10242	var sv *DescribeChannelModeratedByAppInstanceUserOutput
10243	if *v == nil {
10244		sv = &DescribeChannelModeratedByAppInstanceUserOutput{}
10245	} else {
10246		sv = *v
10247	}
10248
10249	for key, value := range shape {
10250		switch key {
10251		case "Channel":
10252			if err := awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummary(&sv.Channel, value); err != nil {
10253				return err
10254			}
10255
10256		default:
10257			_, _ = key, value
10258
10259		}
10260	}
10261	*v = sv
10262	return nil
10263}
10264
10265type awsRestjson1_deserializeOpDescribeChannelModerator struct {
10266}
10267
10268func (*awsRestjson1_deserializeOpDescribeChannelModerator) ID() string {
10269	return "OperationDeserializer"
10270}
10271
10272func (m *awsRestjson1_deserializeOpDescribeChannelModerator) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10273	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10274) {
10275	out, metadata, err = next.HandleDeserialize(ctx, in)
10276	if err != nil {
10277		return out, metadata, err
10278	}
10279
10280	response, ok := out.RawResponse.(*smithyhttp.Response)
10281	if !ok {
10282		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10283	}
10284
10285	if response.StatusCode < 200 || response.StatusCode >= 300 {
10286		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelModerator(response, &metadata)
10287	}
10288	output := &DescribeChannelModeratorOutput{}
10289	out.Result = output
10290
10291	var buff [1024]byte
10292	ringBuffer := smithyio.NewRingBuffer(buff[:])
10293
10294	body := io.TeeReader(response.Body, ringBuffer)
10295
10296	decoder := json.NewDecoder(body)
10297	decoder.UseNumber()
10298	var shape interface{}
10299	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10300		var snapshot bytes.Buffer
10301		io.Copy(&snapshot, ringBuffer)
10302		err = &smithy.DeserializationError{
10303			Err:      fmt.Errorf("failed to decode response body, %w", err),
10304			Snapshot: snapshot.Bytes(),
10305		}
10306		return out, metadata, err
10307	}
10308
10309	err = awsRestjson1_deserializeOpDocumentDescribeChannelModeratorOutput(&output, shape)
10310	if err != nil {
10311		var snapshot bytes.Buffer
10312		io.Copy(&snapshot, ringBuffer)
10313		return out, metadata, &smithy.DeserializationError{
10314			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10315			Snapshot: snapshot.Bytes(),
10316		}
10317	}
10318
10319	return out, metadata, err
10320}
10321
10322func awsRestjson1_deserializeOpErrorDescribeChannelModerator(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10323	var errorBuffer bytes.Buffer
10324	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10325		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10326	}
10327	errorBody := bytes.NewReader(errorBuffer.Bytes())
10328
10329	errorCode := "UnknownError"
10330	errorMessage := errorCode
10331
10332	code := response.Header.Get("X-Amzn-ErrorType")
10333	if len(code) != 0 {
10334		errorCode = restjson.SanitizeErrorCode(code)
10335	}
10336
10337	var buff [1024]byte
10338	ringBuffer := smithyio.NewRingBuffer(buff[:])
10339
10340	body := io.TeeReader(errorBody, ringBuffer)
10341	decoder := json.NewDecoder(body)
10342	decoder.UseNumber()
10343	code, message, err := restjson.GetErrorInfo(decoder)
10344	if err != nil {
10345		var snapshot bytes.Buffer
10346		io.Copy(&snapshot, ringBuffer)
10347		err = &smithy.DeserializationError{
10348			Err:      fmt.Errorf("failed to decode response body, %w", err),
10349			Snapshot: snapshot.Bytes(),
10350		}
10351		return err
10352	}
10353
10354	errorBody.Seek(0, io.SeekStart)
10355	if len(code) != 0 {
10356		errorCode = restjson.SanitizeErrorCode(code)
10357	}
10358	if len(message) != 0 {
10359		errorMessage = message
10360	}
10361
10362	switch {
10363	case strings.EqualFold("BadRequestException", errorCode):
10364		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10365
10366	case strings.EqualFold("ForbiddenException", errorCode):
10367		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10368
10369	case strings.EqualFold("NotFoundException", errorCode):
10370		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10371
10372	case strings.EqualFold("ServiceFailureException", errorCode):
10373		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10374
10375	case strings.EqualFold("ServiceUnavailableException", errorCode):
10376		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10377
10378	case strings.EqualFold("ThrottledClientException", errorCode):
10379		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10380
10381	case strings.EqualFold("UnauthorizedClientException", errorCode):
10382		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10383
10384	default:
10385		genericError := &smithy.GenericAPIError{
10386			Code:    errorCode,
10387			Message: errorMessage,
10388		}
10389		return genericError
10390
10391	}
10392}
10393
10394func awsRestjson1_deserializeOpDocumentDescribeChannelModeratorOutput(v **DescribeChannelModeratorOutput, value interface{}) error {
10395	if v == nil {
10396		return fmt.Errorf("unexpected nil of type %T", v)
10397	}
10398	if value == nil {
10399		return nil
10400	}
10401
10402	shape, ok := value.(map[string]interface{})
10403	if !ok {
10404		return fmt.Errorf("unexpected JSON type %v", value)
10405	}
10406
10407	var sv *DescribeChannelModeratorOutput
10408	if *v == nil {
10409		sv = &DescribeChannelModeratorOutput{}
10410	} else {
10411		sv = *v
10412	}
10413
10414	for key, value := range shape {
10415		switch key {
10416		case "ChannelModerator":
10417			if err := awsRestjson1_deserializeDocumentChannelModerator(&sv.ChannelModerator, value); err != nil {
10418				return err
10419			}
10420
10421		default:
10422			_, _ = key, value
10423
10424		}
10425	}
10426	*v = sv
10427	return nil
10428}
10429
10430type awsRestjson1_deserializeOpDisassociatePhoneNumberFromUser struct {
10431}
10432
10433func (*awsRestjson1_deserializeOpDisassociatePhoneNumberFromUser) ID() string {
10434	return "OperationDeserializer"
10435}
10436
10437func (m *awsRestjson1_deserializeOpDisassociatePhoneNumberFromUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10438	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10439) {
10440	out, metadata, err = next.HandleDeserialize(ctx, in)
10441	if err != nil {
10442		return out, metadata, err
10443	}
10444
10445	response, ok := out.RawResponse.(*smithyhttp.Response)
10446	if !ok {
10447		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10448	}
10449
10450	if response.StatusCode < 200 || response.StatusCode >= 300 {
10451		return out, metadata, awsRestjson1_deserializeOpErrorDisassociatePhoneNumberFromUser(response, &metadata)
10452	}
10453	output := &DisassociatePhoneNumberFromUserOutput{}
10454	out.Result = output
10455
10456	return out, metadata, err
10457}
10458
10459func awsRestjson1_deserializeOpErrorDisassociatePhoneNumberFromUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10460	var errorBuffer bytes.Buffer
10461	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10462		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10463	}
10464	errorBody := bytes.NewReader(errorBuffer.Bytes())
10465
10466	errorCode := "UnknownError"
10467	errorMessage := errorCode
10468
10469	code := response.Header.Get("X-Amzn-ErrorType")
10470	if len(code) != 0 {
10471		errorCode = restjson.SanitizeErrorCode(code)
10472	}
10473
10474	var buff [1024]byte
10475	ringBuffer := smithyio.NewRingBuffer(buff[:])
10476
10477	body := io.TeeReader(errorBody, ringBuffer)
10478	decoder := json.NewDecoder(body)
10479	decoder.UseNumber()
10480	code, message, err := restjson.GetErrorInfo(decoder)
10481	if err != nil {
10482		var snapshot bytes.Buffer
10483		io.Copy(&snapshot, ringBuffer)
10484		err = &smithy.DeserializationError{
10485			Err:      fmt.Errorf("failed to decode response body, %w", err),
10486			Snapshot: snapshot.Bytes(),
10487		}
10488		return err
10489	}
10490
10491	errorBody.Seek(0, io.SeekStart)
10492	if len(code) != 0 {
10493		errorCode = restjson.SanitizeErrorCode(code)
10494	}
10495	if len(message) != 0 {
10496		errorMessage = message
10497	}
10498
10499	switch {
10500	case strings.EqualFold("BadRequestException", errorCode):
10501		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10502
10503	case strings.EqualFold("ForbiddenException", errorCode):
10504		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10505
10506	case strings.EqualFold("NotFoundException", errorCode):
10507		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10508
10509	case strings.EqualFold("ServiceFailureException", errorCode):
10510		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10511
10512	case strings.EqualFold("ServiceUnavailableException", errorCode):
10513		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10514
10515	case strings.EqualFold("ThrottledClientException", errorCode):
10516		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10517
10518	case strings.EqualFold("UnauthorizedClientException", errorCode):
10519		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10520
10521	default:
10522		genericError := &smithy.GenericAPIError{
10523			Code:    errorCode,
10524			Message: errorMessage,
10525		}
10526		return genericError
10527
10528	}
10529}
10530
10531type awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnector struct {
10532}
10533
10534func (*awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnector) ID() string {
10535	return "OperationDeserializer"
10536}
10537
10538func (m *awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10539	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10540) {
10541	out, metadata, err = next.HandleDeserialize(ctx, in)
10542	if err != nil {
10543		return out, metadata, err
10544	}
10545
10546	response, ok := out.RawResponse.(*smithyhttp.Response)
10547	if !ok {
10548		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10549	}
10550
10551	if response.StatusCode < 200 || response.StatusCode >= 300 {
10552		return out, metadata, awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnector(response, &metadata)
10553	}
10554	output := &DisassociatePhoneNumbersFromVoiceConnectorOutput{}
10555	out.Result = output
10556
10557	var buff [1024]byte
10558	ringBuffer := smithyio.NewRingBuffer(buff[:])
10559
10560	body := io.TeeReader(response.Body, ringBuffer)
10561
10562	decoder := json.NewDecoder(body)
10563	decoder.UseNumber()
10564	var shape interface{}
10565	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10566		var snapshot bytes.Buffer
10567		io.Copy(&snapshot, ringBuffer)
10568		err = &smithy.DeserializationError{
10569			Err:      fmt.Errorf("failed to decode response body, %w", err),
10570			Snapshot: snapshot.Bytes(),
10571		}
10572		return out, metadata, err
10573	}
10574
10575	err = awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorOutput(&output, shape)
10576	if err != nil {
10577		var snapshot bytes.Buffer
10578		io.Copy(&snapshot, ringBuffer)
10579		return out, metadata, &smithy.DeserializationError{
10580			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10581			Snapshot: snapshot.Bytes(),
10582		}
10583	}
10584
10585	return out, metadata, err
10586}
10587
10588func awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10589	var errorBuffer bytes.Buffer
10590	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10591		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10592	}
10593	errorBody := bytes.NewReader(errorBuffer.Bytes())
10594
10595	errorCode := "UnknownError"
10596	errorMessage := errorCode
10597
10598	code := response.Header.Get("X-Amzn-ErrorType")
10599	if len(code) != 0 {
10600		errorCode = restjson.SanitizeErrorCode(code)
10601	}
10602
10603	var buff [1024]byte
10604	ringBuffer := smithyio.NewRingBuffer(buff[:])
10605
10606	body := io.TeeReader(errorBody, ringBuffer)
10607	decoder := json.NewDecoder(body)
10608	decoder.UseNumber()
10609	code, message, err := restjson.GetErrorInfo(decoder)
10610	if err != nil {
10611		var snapshot bytes.Buffer
10612		io.Copy(&snapshot, ringBuffer)
10613		err = &smithy.DeserializationError{
10614			Err:      fmt.Errorf("failed to decode response body, %w", err),
10615			Snapshot: snapshot.Bytes(),
10616		}
10617		return err
10618	}
10619
10620	errorBody.Seek(0, io.SeekStart)
10621	if len(code) != 0 {
10622		errorCode = restjson.SanitizeErrorCode(code)
10623	}
10624	if len(message) != 0 {
10625		errorMessage = message
10626	}
10627
10628	switch {
10629	case strings.EqualFold("BadRequestException", errorCode):
10630		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10631
10632	case strings.EqualFold("ForbiddenException", errorCode):
10633		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10634
10635	case strings.EqualFold("NotFoundException", errorCode):
10636		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10637
10638	case strings.EqualFold("ServiceFailureException", errorCode):
10639		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10640
10641	case strings.EqualFold("ServiceUnavailableException", errorCode):
10642		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10643
10644	case strings.EqualFold("ThrottledClientException", errorCode):
10645		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10646
10647	case strings.EqualFold("UnauthorizedClientException", errorCode):
10648		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10649
10650	default:
10651		genericError := &smithy.GenericAPIError{
10652			Code:    errorCode,
10653			Message: errorMessage,
10654		}
10655		return genericError
10656
10657	}
10658}
10659
10660func awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorOutput(v **DisassociatePhoneNumbersFromVoiceConnectorOutput, value interface{}) error {
10661	if v == nil {
10662		return fmt.Errorf("unexpected nil of type %T", v)
10663	}
10664	if value == nil {
10665		return nil
10666	}
10667
10668	shape, ok := value.(map[string]interface{})
10669	if !ok {
10670		return fmt.Errorf("unexpected JSON type %v", value)
10671	}
10672
10673	var sv *DisassociatePhoneNumbersFromVoiceConnectorOutput
10674	if *v == nil {
10675		sv = &DisassociatePhoneNumbersFromVoiceConnectorOutput{}
10676	} else {
10677		sv = *v
10678	}
10679
10680	for key, value := range shape {
10681		switch key {
10682		case "PhoneNumberErrors":
10683			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
10684				return err
10685			}
10686
10687		default:
10688			_, _ = key, value
10689
10690		}
10691	}
10692	*v = sv
10693	return nil
10694}
10695
10696type awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnectorGroup struct {
10697}
10698
10699func (*awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnectorGroup) ID() string {
10700	return "OperationDeserializer"
10701}
10702
10703func (m *awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10704	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10705) {
10706	out, metadata, err = next.HandleDeserialize(ctx, in)
10707	if err != nil {
10708		return out, metadata, err
10709	}
10710
10711	response, ok := out.RawResponse.(*smithyhttp.Response)
10712	if !ok {
10713		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10714	}
10715
10716	if response.StatusCode < 200 || response.StatusCode >= 300 {
10717		return out, metadata, awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnectorGroup(response, &metadata)
10718	}
10719	output := &DisassociatePhoneNumbersFromVoiceConnectorGroupOutput{}
10720	out.Result = output
10721
10722	var buff [1024]byte
10723	ringBuffer := smithyio.NewRingBuffer(buff[:])
10724
10725	body := io.TeeReader(response.Body, ringBuffer)
10726
10727	decoder := json.NewDecoder(body)
10728	decoder.UseNumber()
10729	var shape interface{}
10730	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10731		var snapshot bytes.Buffer
10732		io.Copy(&snapshot, ringBuffer)
10733		err = &smithy.DeserializationError{
10734			Err:      fmt.Errorf("failed to decode response body, %w", err),
10735			Snapshot: snapshot.Bytes(),
10736		}
10737		return out, metadata, err
10738	}
10739
10740	err = awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorGroupOutput(&output, shape)
10741	if err != nil {
10742		var snapshot bytes.Buffer
10743		io.Copy(&snapshot, ringBuffer)
10744		return out, metadata, &smithy.DeserializationError{
10745			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10746			Snapshot: snapshot.Bytes(),
10747		}
10748	}
10749
10750	return out, metadata, err
10751}
10752
10753func awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10754	var errorBuffer bytes.Buffer
10755	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10756		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10757	}
10758	errorBody := bytes.NewReader(errorBuffer.Bytes())
10759
10760	errorCode := "UnknownError"
10761	errorMessage := errorCode
10762
10763	code := response.Header.Get("X-Amzn-ErrorType")
10764	if len(code) != 0 {
10765		errorCode = restjson.SanitizeErrorCode(code)
10766	}
10767
10768	var buff [1024]byte
10769	ringBuffer := smithyio.NewRingBuffer(buff[:])
10770
10771	body := io.TeeReader(errorBody, ringBuffer)
10772	decoder := json.NewDecoder(body)
10773	decoder.UseNumber()
10774	code, message, err := restjson.GetErrorInfo(decoder)
10775	if err != nil {
10776		var snapshot bytes.Buffer
10777		io.Copy(&snapshot, ringBuffer)
10778		err = &smithy.DeserializationError{
10779			Err:      fmt.Errorf("failed to decode response body, %w", err),
10780			Snapshot: snapshot.Bytes(),
10781		}
10782		return err
10783	}
10784
10785	errorBody.Seek(0, io.SeekStart)
10786	if len(code) != 0 {
10787		errorCode = restjson.SanitizeErrorCode(code)
10788	}
10789	if len(message) != 0 {
10790		errorMessage = message
10791	}
10792
10793	switch {
10794	case strings.EqualFold("BadRequestException", errorCode):
10795		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10796
10797	case strings.EqualFold("ForbiddenException", errorCode):
10798		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10799
10800	case strings.EqualFold("NotFoundException", errorCode):
10801		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10802
10803	case strings.EqualFold("ServiceFailureException", errorCode):
10804		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10805
10806	case strings.EqualFold("ServiceUnavailableException", errorCode):
10807		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10808
10809	case strings.EqualFold("ThrottledClientException", errorCode):
10810		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10811
10812	case strings.EqualFold("UnauthorizedClientException", errorCode):
10813		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10814
10815	default:
10816		genericError := &smithy.GenericAPIError{
10817			Code:    errorCode,
10818			Message: errorMessage,
10819		}
10820		return genericError
10821
10822	}
10823}
10824
10825func awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorGroupOutput(v **DisassociatePhoneNumbersFromVoiceConnectorGroupOutput, value interface{}) error {
10826	if v == nil {
10827		return fmt.Errorf("unexpected nil of type %T", v)
10828	}
10829	if value == nil {
10830		return nil
10831	}
10832
10833	shape, ok := value.(map[string]interface{})
10834	if !ok {
10835		return fmt.Errorf("unexpected JSON type %v", value)
10836	}
10837
10838	var sv *DisassociatePhoneNumbersFromVoiceConnectorGroupOutput
10839	if *v == nil {
10840		sv = &DisassociatePhoneNumbersFromVoiceConnectorGroupOutput{}
10841	} else {
10842		sv = *v
10843	}
10844
10845	for key, value := range shape {
10846		switch key {
10847		case "PhoneNumberErrors":
10848			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
10849				return err
10850			}
10851
10852		default:
10853			_, _ = key, value
10854
10855		}
10856	}
10857	*v = sv
10858	return nil
10859}
10860
10861type awsRestjson1_deserializeOpDisassociateSigninDelegateGroupsFromAccount struct {
10862}
10863
10864func (*awsRestjson1_deserializeOpDisassociateSigninDelegateGroupsFromAccount) ID() string {
10865	return "OperationDeserializer"
10866}
10867
10868func (m *awsRestjson1_deserializeOpDisassociateSigninDelegateGroupsFromAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10869	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10870) {
10871	out, metadata, err = next.HandleDeserialize(ctx, in)
10872	if err != nil {
10873		return out, metadata, err
10874	}
10875
10876	response, ok := out.RawResponse.(*smithyhttp.Response)
10877	if !ok {
10878		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10879	}
10880
10881	if response.StatusCode < 200 || response.StatusCode >= 300 {
10882		return out, metadata, awsRestjson1_deserializeOpErrorDisassociateSigninDelegateGroupsFromAccount(response, &metadata)
10883	}
10884	output := &DisassociateSigninDelegateGroupsFromAccountOutput{}
10885	out.Result = output
10886
10887	return out, metadata, err
10888}
10889
10890func awsRestjson1_deserializeOpErrorDisassociateSigninDelegateGroupsFromAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10891	var errorBuffer bytes.Buffer
10892	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10893		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10894	}
10895	errorBody := bytes.NewReader(errorBuffer.Bytes())
10896
10897	errorCode := "UnknownError"
10898	errorMessage := errorCode
10899
10900	code := response.Header.Get("X-Amzn-ErrorType")
10901	if len(code) != 0 {
10902		errorCode = restjson.SanitizeErrorCode(code)
10903	}
10904
10905	var buff [1024]byte
10906	ringBuffer := smithyio.NewRingBuffer(buff[:])
10907
10908	body := io.TeeReader(errorBody, ringBuffer)
10909	decoder := json.NewDecoder(body)
10910	decoder.UseNumber()
10911	code, message, err := restjson.GetErrorInfo(decoder)
10912	if err != nil {
10913		var snapshot bytes.Buffer
10914		io.Copy(&snapshot, ringBuffer)
10915		err = &smithy.DeserializationError{
10916			Err:      fmt.Errorf("failed to decode response body, %w", err),
10917			Snapshot: snapshot.Bytes(),
10918		}
10919		return err
10920	}
10921
10922	errorBody.Seek(0, io.SeekStart)
10923	if len(code) != 0 {
10924		errorCode = restjson.SanitizeErrorCode(code)
10925	}
10926	if len(message) != 0 {
10927		errorMessage = message
10928	}
10929
10930	switch {
10931	case strings.EqualFold("BadRequestException", errorCode):
10932		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10933
10934	case strings.EqualFold("ForbiddenException", errorCode):
10935		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10936
10937	case strings.EqualFold("NotFoundException", errorCode):
10938		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10939
10940	case strings.EqualFold("ServiceFailureException", errorCode):
10941		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10942
10943	case strings.EqualFold("ServiceUnavailableException", errorCode):
10944		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10945
10946	case strings.EqualFold("ThrottledClientException", errorCode):
10947		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10948
10949	case strings.EqualFold("UnauthorizedClientException", errorCode):
10950		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10951
10952	default:
10953		genericError := &smithy.GenericAPIError{
10954			Code:    errorCode,
10955			Message: errorMessage,
10956		}
10957		return genericError
10958
10959	}
10960}
10961
10962type awsRestjson1_deserializeOpGetAccount struct {
10963}
10964
10965func (*awsRestjson1_deserializeOpGetAccount) ID() string {
10966	return "OperationDeserializer"
10967}
10968
10969func (m *awsRestjson1_deserializeOpGetAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10970	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10971) {
10972	out, metadata, err = next.HandleDeserialize(ctx, in)
10973	if err != nil {
10974		return out, metadata, err
10975	}
10976
10977	response, ok := out.RawResponse.(*smithyhttp.Response)
10978	if !ok {
10979		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10980	}
10981
10982	if response.StatusCode < 200 || response.StatusCode >= 300 {
10983		return out, metadata, awsRestjson1_deserializeOpErrorGetAccount(response, &metadata)
10984	}
10985	output := &GetAccountOutput{}
10986	out.Result = output
10987
10988	var buff [1024]byte
10989	ringBuffer := smithyio.NewRingBuffer(buff[:])
10990
10991	body := io.TeeReader(response.Body, ringBuffer)
10992
10993	decoder := json.NewDecoder(body)
10994	decoder.UseNumber()
10995	var shape interface{}
10996	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10997		var snapshot bytes.Buffer
10998		io.Copy(&snapshot, ringBuffer)
10999		err = &smithy.DeserializationError{
11000			Err:      fmt.Errorf("failed to decode response body, %w", err),
11001			Snapshot: snapshot.Bytes(),
11002		}
11003		return out, metadata, err
11004	}
11005
11006	err = awsRestjson1_deserializeOpDocumentGetAccountOutput(&output, shape)
11007	if err != nil {
11008		var snapshot bytes.Buffer
11009		io.Copy(&snapshot, ringBuffer)
11010		return out, metadata, &smithy.DeserializationError{
11011			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11012			Snapshot: snapshot.Bytes(),
11013		}
11014	}
11015
11016	return out, metadata, err
11017}
11018
11019func awsRestjson1_deserializeOpErrorGetAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11020	var errorBuffer bytes.Buffer
11021	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11022		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11023	}
11024	errorBody := bytes.NewReader(errorBuffer.Bytes())
11025
11026	errorCode := "UnknownError"
11027	errorMessage := errorCode
11028
11029	code := response.Header.Get("X-Amzn-ErrorType")
11030	if len(code) != 0 {
11031		errorCode = restjson.SanitizeErrorCode(code)
11032	}
11033
11034	var buff [1024]byte
11035	ringBuffer := smithyio.NewRingBuffer(buff[:])
11036
11037	body := io.TeeReader(errorBody, ringBuffer)
11038	decoder := json.NewDecoder(body)
11039	decoder.UseNumber()
11040	code, message, err := restjson.GetErrorInfo(decoder)
11041	if err != nil {
11042		var snapshot bytes.Buffer
11043		io.Copy(&snapshot, ringBuffer)
11044		err = &smithy.DeserializationError{
11045			Err:      fmt.Errorf("failed to decode response body, %w", err),
11046			Snapshot: snapshot.Bytes(),
11047		}
11048		return err
11049	}
11050
11051	errorBody.Seek(0, io.SeekStart)
11052	if len(code) != 0 {
11053		errorCode = restjson.SanitizeErrorCode(code)
11054	}
11055	if len(message) != 0 {
11056		errorMessage = message
11057	}
11058
11059	switch {
11060	case strings.EqualFold("BadRequestException", errorCode):
11061		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11062
11063	case strings.EqualFold("ForbiddenException", errorCode):
11064		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11065
11066	case strings.EqualFold("NotFoundException", errorCode):
11067		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11068
11069	case strings.EqualFold("ServiceFailureException", errorCode):
11070		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11071
11072	case strings.EqualFold("ServiceUnavailableException", errorCode):
11073		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11074
11075	case strings.EqualFold("ThrottledClientException", errorCode):
11076		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11077
11078	case strings.EqualFold("UnauthorizedClientException", errorCode):
11079		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11080
11081	default:
11082		genericError := &smithy.GenericAPIError{
11083			Code:    errorCode,
11084			Message: errorMessage,
11085		}
11086		return genericError
11087
11088	}
11089}
11090
11091func awsRestjson1_deserializeOpDocumentGetAccountOutput(v **GetAccountOutput, value interface{}) error {
11092	if v == nil {
11093		return fmt.Errorf("unexpected nil of type %T", v)
11094	}
11095	if value == nil {
11096		return nil
11097	}
11098
11099	shape, ok := value.(map[string]interface{})
11100	if !ok {
11101		return fmt.Errorf("unexpected JSON type %v", value)
11102	}
11103
11104	var sv *GetAccountOutput
11105	if *v == nil {
11106		sv = &GetAccountOutput{}
11107	} else {
11108		sv = *v
11109	}
11110
11111	for key, value := range shape {
11112		switch key {
11113		case "Account":
11114			if err := awsRestjson1_deserializeDocumentAccount(&sv.Account, value); err != nil {
11115				return err
11116			}
11117
11118		default:
11119			_, _ = key, value
11120
11121		}
11122	}
11123	*v = sv
11124	return nil
11125}
11126
11127type awsRestjson1_deserializeOpGetAccountSettings struct {
11128}
11129
11130func (*awsRestjson1_deserializeOpGetAccountSettings) ID() string {
11131	return "OperationDeserializer"
11132}
11133
11134func (m *awsRestjson1_deserializeOpGetAccountSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11135	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11136) {
11137	out, metadata, err = next.HandleDeserialize(ctx, in)
11138	if err != nil {
11139		return out, metadata, err
11140	}
11141
11142	response, ok := out.RawResponse.(*smithyhttp.Response)
11143	if !ok {
11144		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11145	}
11146
11147	if response.StatusCode < 200 || response.StatusCode >= 300 {
11148		return out, metadata, awsRestjson1_deserializeOpErrorGetAccountSettings(response, &metadata)
11149	}
11150	output := &GetAccountSettingsOutput{}
11151	out.Result = output
11152
11153	var buff [1024]byte
11154	ringBuffer := smithyio.NewRingBuffer(buff[:])
11155
11156	body := io.TeeReader(response.Body, ringBuffer)
11157
11158	decoder := json.NewDecoder(body)
11159	decoder.UseNumber()
11160	var shape interface{}
11161	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11162		var snapshot bytes.Buffer
11163		io.Copy(&snapshot, ringBuffer)
11164		err = &smithy.DeserializationError{
11165			Err:      fmt.Errorf("failed to decode response body, %w", err),
11166			Snapshot: snapshot.Bytes(),
11167		}
11168		return out, metadata, err
11169	}
11170
11171	err = awsRestjson1_deserializeOpDocumentGetAccountSettingsOutput(&output, shape)
11172	if err != nil {
11173		var snapshot bytes.Buffer
11174		io.Copy(&snapshot, ringBuffer)
11175		return out, metadata, &smithy.DeserializationError{
11176			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11177			Snapshot: snapshot.Bytes(),
11178		}
11179	}
11180
11181	return out, metadata, err
11182}
11183
11184func awsRestjson1_deserializeOpErrorGetAccountSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11185	var errorBuffer bytes.Buffer
11186	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11187		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11188	}
11189	errorBody := bytes.NewReader(errorBuffer.Bytes())
11190
11191	errorCode := "UnknownError"
11192	errorMessage := errorCode
11193
11194	code := response.Header.Get("X-Amzn-ErrorType")
11195	if len(code) != 0 {
11196		errorCode = restjson.SanitizeErrorCode(code)
11197	}
11198
11199	var buff [1024]byte
11200	ringBuffer := smithyio.NewRingBuffer(buff[:])
11201
11202	body := io.TeeReader(errorBody, ringBuffer)
11203	decoder := json.NewDecoder(body)
11204	decoder.UseNumber()
11205	code, message, err := restjson.GetErrorInfo(decoder)
11206	if err != nil {
11207		var snapshot bytes.Buffer
11208		io.Copy(&snapshot, ringBuffer)
11209		err = &smithy.DeserializationError{
11210			Err:      fmt.Errorf("failed to decode response body, %w", err),
11211			Snapshot: snapshot.Bytes(),
11212		}
11213		return err
11214	}
11215
11216	errorBody.Seek(0, io.SeekStart)
11217	if len(code) != 0 {
11218		errorCode = restjson.SanitizeErrorCode(code)
11219	}
11220	if len(message) != 0 {
11221		errorMessage = message
11222	}
11223
11224	switch {
11225	case strings.EqualFold("BadRequestException", errorCode):
11226		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11227
11228	case strings.EqualFold("ForbiddenException", errorCode):
11229		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11230
11231	case strings.EqualFold("NotFoundException", errorCode):
11232		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11233
11234	case strings.EqualFold("ServiceFailureException", errorCode):
11235		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11236
11237	case strings.EqualFold("ServiceUnavailableException", errorCode):
11238		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11239
11240	case strings.EqualFold("ThrottledClientException", errorCode):
11241		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11242
11243	case strings.EqualFold("UnauthorizedClientException", errorCode):
11244		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11245
11246	default:
11247		genericError := &smithy.GenericAPIError{
11248			Code:    errorCode,
11249			Message: errorMessage,
11250		}
11251		return genericError
11252
11253	}
11254}
11255
11256func awsRestjson1_deserializeOpDocumentGetAccountSettingsOutput(v **GetAccountSettingsOutput, value interface{}) error {
11257	if v == nil {
11258		return fmt.Errorf("unexpected nil of type %T", v)
11259	}
11260	if value == nil {
11261		return nil
11262	}
11263
11264	shape, ok := value.(map[string]interface{})
11265	if !ok {
11266		return fmt.Errorf("unexpected JSON type %v", value)
11267	}
11268
11269	var sv *GetAccountSettingsOutput
11270	if *v == nil {
11271		sv = &GetAccountSettingsOutput{}
11272	} else {
11273		sv = *v
11274	}
11275
11276	for key, value := range shape {
11277		switch key {
11278		case "AccountSettings":
11279			if err := awsRestjson1_deserializeDocumentAccountSettings(&sv.AccountSettings, value); err != nil {
11280				return err
11281			}
11282
11283		default:
11284			_, _ = key, value
11285
11286		}
11287	}
11288	*v = sv
11289	return nil
11290}
11291
11292type awsRestjson1_deserializeOpGetAppInstanceRetentionSettings struct {
11293}
11294
11295func (*awsRestjson1_deserializeOpGetAppInstanceRetentionSettings) ID() string {
11296	return "OperationDeserializer"
11297}
11298
11299func (m *awsRestjson1_deserializeOpGetAppInstanceRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11300	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11301) {
11302	out, metadata, err = next.HandleDeserialize(ctx, in)
11303	if err != nil {
11304		return out, metadata, err
11305	}
11306
11307	response, ok := out.RawResponse.(*smithyhttp.Response)
11308	if !ok {
11309		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11310	}
11311
11312	if response.StatusCode < 200 || response.StatusCode >= 300 {
11313		return out, metadata, awsRestjson1_deserializeOpErrorGetAppInstanceRetentionSettings(response, &metadata)
11314	}
11315	output := &GetAppInstanceRetentionSettingsOutput{}
11316	out.Result = output
11317
11318	var buff [1024]byte
11319	ringBuffer := smithyio.NewRingBuffer(buff[:])
11320
11321	body := io.TeeReader(response.Body, ringBuffer)
11322
11323	decoder := json.NewDecoder(body)
11324	decoder.UseNumber()
11325	var shape interface{}
11326	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11327		var snapshot bytes.Buffer
11328		io.Copy(&snapshot, ringBuffer)
11329		err = &smithy.DeserializationError{
11330			Err:      fmt.Errorf("failed to decode response body, %w", err),
11331			Snapshot: snapshot.Bytes(),
11332		}
11333		return out, metadata, err
11334	}
11335
11336	err = awsRestjson1_deserializeOpDocumentGetAppInstanceRetentionSettingsOutput(&output, shape)
11337	if err != nil {
11338		var snapshot bytes.Buffer
11339		io.Copy(&snapshot, ringBuffer)
11340		return out, metadata, &smithy.DeserializationError{
11341			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11342			Snapshot: snapshot.Bytes(),
11343		}
11344	}
11345
11346	return out, metadata, err
11347}
11348
11349func awsRestjson1_deserializeOpErrorGetAppInstanceRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11350	var errorBuffer bytes.Buffer
11351	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11352		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11353	}
11354	errorBody := bytes.NewReader(errorBuffer.Bytes())
11355
11356	errorCode := "UnknownError"
11357	errorMessage := errorCode
11358
11359	code := response.Header.Get("X-Amzn-ErrorType")
11360	if len(code) != 0 {
11361		errorCode = restjson.SanitizeErrorCode(code)
11362	}
11363
11364	var buff [1024]byte
11365	ringBuffer := smithyio.NewRingBuffer(buff[:])
11366
11367	body := io.TeeReader(errorBody, ringBuffer)
11368	decoder := json.NewDecoder(body)
11369	decoder.UseNumber()
11370	code, message, err := restjson.GetErrorInfo(decoder)
11371	if err != nil {
11372		var snapshot bytes.Buffer
11373		io.Copy(&snapshot, ringBuffer)
11374		err = &smithy.DeserializationError{
11375			Err:      fmt.Errorf("failed to decode response body, %w", err),
11376			Snapshot: snapshot.Bytes(),
11377		}
11378		return err
11379	}
11380
11381	errorBody.Seek(0, io.SeekStart)
11382	if len(code) != 0 {
11383		errorCode = restjson.SanitizeErrorCode(code)
11384	}
11385	if len(message) != 0 {
11386		errorMessage = message
11387	}
11388
11389	switch {
11390	case strings.EqualFold("BadRequestException", errorCode):
11391		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11392
11393	case strings.EqualFold("ForbiddenException", errorCode):
11394		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11395
11396	case strings.EqualFold("NotFoundException", errorCode):
11397		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11398
11399	case strings.EqualFold("ServiceFailureException", errorCode):
11400		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11401
11402	case strings.EqualFold("ServiceUnavailableException", errorCode):
11403		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11404
11405	case strings.EqualFold("ThrottledClientException", errorCode):
11406		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11407
11408	case strings.EqualFold("UnauthorizedClientException", errorCode):
11409		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11410
11411	default:
11412		genericError := &smithy.GenericAPIError{
11413			Code:    errorCode,
11414			Message: errorMessage,
11415		}
11416		return genericError
11417
11418	}
11419}
11420
11421func awsRestjson1_deserializeOpDocumentGetAppInstanceRetentionSettingsOutput(v **GetAppInstanceRetentionSettingsOutput, value interface{}) error {
11422	if v == nil {
11423		return fmt.Errorf("unexpected nil of type %T", v)
11424	}
11425	if value == nil {
11426		return nil
11427	}
11428
11429	shape, ok := value.(map[string]interface{})
11430	if !ok {
11431		return fmt.Errorf("unexpected JSON type %v", value)
11432	}
11433
11434	var sv *GetAppInstanceRetentionSettingsOutput
11435	if *v == nil {
11436		sv = &GetAppInstanceRetentionSettingsOutput{}
11437	} else {
11438		sv = *v
11439	}
11440
11441	for key, value := range shape {
11442		switch key {
11443		case "AppInstanceRetentionSettings":
11444			if err := awsRestjson1_deserializeDocumentAppInstanceRetentionSettings(&sv.AppInstanceRetentionSettings, value); err != nil {
11445				return err
11446			}
11447
11448		case "InitiateDeletionTimestamp":
11449			if value != nil {
11450				switch jtv := value.(type) {
11451				case json.Number:
11452					f64, err := jtv.Float64()
11453					if err != nil {
11454						return err
11455					}
11456					sv.InitiateDeletionTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
11457
11458				default:
11459					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
11460
11461				}
11462			}
11463
11464		default:
11465			_, _ = key, value
11466
11467		}
11468	}
11469	*v = sv
11470	return nil
11471}
11472
11473type awsRestjson1_deserializeOpGetAppInstanceStreamingConfigurations struct {
11474}
11475
11476func (*awsRestjson1_deserializeOpGetAppInstanceStreamingConfigurations) ID() string {
11477	return "OperationDeserializer"
11478}
11479
11480func (m *awsRestjson1_deserializeOpGetAppInstanceStreamingConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11481	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11482) {
11483	out, metadata, err = next.HandleDeserialize(ctx, in)
11484	if err != nil {
11485		return out, metadata, err
11486	}
11487
11488	response, ok := out.RawResponse.(*smithyhttp.Response)
11489	if !ok {
11490		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11491	}
11492
11493	if response.StatusCode < 200 || response.StatusCode >= 300 {
11494		return out, metadata, awsRestjson1_deserializeOpErrorGetAppInstanceStreamingConfigurations(response, &metadata)
11495	}
11496	output := &GetAppInstanceStreamingConfigurationsOutput{}
11497	out.Result = output
11498
11499	var buff [1024]byte
11500	ringBuffer := smithyio.NewRingBuffer(buff[:])
11501
11502	body := io.TeeReader(response.Body, ringBuffer)
11503
11504	decoder := json.NewDecoder(body)
11505	decoder.UseNumber()
11506	var shape interface{}
11507	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11508		var snapshot bytes.Buffer
11509		io.Copy(&snapshot, ringBuffer)
11510		err = &smithy.DeserializationError{
11511			Err:      fmt.Errorf("failed to decode response body, %w", err),
11512			Snapshot: snapshot.Bytes(),
11513		}
11514		return out, metadata, err
11515	}
11516
11517	err = awsRestjson1_deserializeOpDocumentGetAppInstanceStreamingConfigurationsOutput(&output, shape)
11518	if err != nil {
11519		var snapshot bytes.Buffer
11520		io.Copy(&snapshot, ringBuffer)
11521		return out, metadata, &smithy.DeserializationError{
11522			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11523			Snapshot: snapshot.Bytes(),
11524		}
11525	}
11526
11527	return out, metadata, err
11528}
11529
11530func awsRestjson1_deserializeOpErrorGetAppInstanceStreamingConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11531	var errorBuffer bytes.Buffer
11532	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11533		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11534	}
11535	errorBody := bytes.NewReader(errorBuffer.Bytes())
11536
11537	errorCode := "UnknownError"
11538	errorMessage := errorCode
11539
11540	code := response.Header.Get("X-Amzn-ErrorType")
11541	if len(code) != 0 {
11542		errorCode = restjson.SanitizeErrorCode(code)
11543	}
11544
11545	var buff [1024]byte
11546	ringBuffer := smithyio.NewRingBuffer(buff[:])
11547
11548	body := io.TeeReader(errorBody, ringBuffer)
11549	decoder := json.NewDecoder(body)
11550	decoder.UseNumber()
11551	code, message, err := restjson.GetErrorInfo(decoder)
11552	if err != nil {
11553		var snapshot bytes.Buffer
11554		io.Copy(&snapshot, ringBuffer)
11555		err = &smithy.DeserializationError{
11556			Err:      fmt.Errorf("failed to decode response body, %w", err),
11557			Snapshot: snapshot.Bytes(),
11558		}
11559		return err
11560	}
11561
11562	errorBody.Seek(0, io.SeekStart)
11563	if len(code) != 0 {
11564		errorCode = restjson.SanitizeErrorCode(code)
11565	}
11566	if len(message) != 0 {
11567		errorMessage = message
11568	}
11569
11570	switch {
11571	case strings.EqualFold("BadRequestException", errorCode):
11572		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11573
11574	case strings.EqualFold("ForbiddenException", errorCode):
11575		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11576
11577	case strings.EqualFold("NotFoundException", errorCode):
11578		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11579
11580	case strings.EqualFold("ServiceFailureException", errorCode):
11581		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11582
11583	case strings.EqualFold("ServiceUnavailableException", errorCode):
11584		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11585
11586	case strings.EqualFold("ThrottledClientException", errorCode):
11587		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11588
11589	case strings.EqualFold("UnauthorizedClientException", errorCode):
11590		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11591
11592	default:
11593		genericError := &smithy.GenericAPIError{
11594			Code:    errorCode,
11595			Message: errorMessage,
11596		}
11597		return genericError
11598
11599	}
11600}
11601
11602func awsRestjson1_deserializeOpDocumentGetAppInstanceStreamingConfigurationsOutput(v **GetAppInstanceStreamingConfigurationsOutput, value interface{}) error {
11603	if v == nil {
11604		return fmt.Errorf("unexpected nil of type %T", v)
11605	}
11606	if value == nil {
11607		return nil
11608	}
11609
11610	shape, ok := value.(map[string]interface{})
11611	if !ok {
11612		return fmt.Errorf("unexpected JSON type %v", value)
11613	}
11614
11615	var sv *GetAppInstanceStreamingConfigurationsOutput
11616	if *v == nil {
11617		sv = &GetAppInstanceStreamingConfigurationsOutput{}
11618	} else {
11619		sv = *v
11620	}
11621
11622	for key, value := range shape {
11623		switch key {
11624		case "AppInstanceStreamingConfigurations":
11625			if err := awsRestjson1_deserializeDocumentAppInstanceStreamingConfigurationList(&sv.AppInstanceStreamingConfigurations, value); err != nil {
11626				return err
11627			}
11628
11629		default:
11630			_, _ = key, value
11631
11632		}
11633	}
11634	*v = sv
11635	return nil
11636}
11637
11638type awsRestjson1_deserializeOpGetAttendee struct {
11639}
11640
11641func (*awsRestjson1_deserializeOpGetAttendee) ID() string {
11642	return "OperationDeserializer"
11643}
11644
11645func (m *awsRestjson1_deserializeOpGetAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11646	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11647) {
11648	out, metadata, err = next.HandleDeserialize(ctx, in)
11649	if err != nil {
11650		return out, metadata, err
11651	}
11652
11653	response, ok := out.RawResponse.(*smithyhttp.Response)
11654	if !ok {
11655		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11656	}
11657
11658	if response.StatusCode < 200 || response.StatusCode >= 300 {
11659		return out, metadata, awsRestjson1_deserializeOpErrorGetAttendee(response, &metadata)
11660	}
11661	output := &GetAttendeeOutput{}
11662	out.Result = output
11663
11664	var buff [1024]byte
11665	ringBuffer := smithyio.NewRingBuffer(buff[:])
11666
11667	body := io.TeeReader(response.Body, ringBuffer)
11668
11669	decoder := json.NewDecoder(body)
11670	decoder.UseNumber()
11671	var shape interface{}
11672	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11673		var snapshot bytes.Buffer
11674		io.Copy(&snapshot, ringBuffer)
11675		err = &smithy.DeserializationError{
11676			Err:      fmt.Errorf("failed to decode response body, %w", err),
11677			Snapshot: snapshot.Bytes(),
11678		}
11679		return out, metadata, err
11680	}
11681
11682	err = awsRestjson1_deserializeOpDocumentGetAttendeeOutput(&output, shape)
11683	if err != nil {
11684		var snapshot bytes.Buffer
11685		io.Copy(&snapshot, ringBuffer)
11686		return out, metadata, &smithy.DeserializationError{
11687			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11688			Snapshot: snapshot.Bytes(),
11689		}
11690	}
11691
11692	return out, metadata, err
11693}
11694
11695func awsRestjson1_deserializeOpErrorGetAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11696	var errorBuffer bytes.Buffer
11697	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11698		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11699	}
11700	errorBody := bytes.NewReader(errorBuffer.Bytes())
11701
11702	errorCode := "UnknownError"
11703	errorMessage := errorCode
11704
11705	code := response.Header.Get("X-Amzn-ErrorType")
11706	if len(code) != 0 {
11707		errorCode = restjson.SanitizeErrorCode(code)
11708	}
11709
11710	var buff [1024]byte
11711	ringBuffer := smithyio.NewRingBuffer(buff[:])
11712
11713	body := io.TeeReader(errorBody, ringBuffer)
11714	decoder := json.NewDecoder(body)
11715	decoder.UseNumber()
11716	code, message, err := restjson.GetErrorInfo(decoder)
11717	if err != nil {
11718		var snapshot bytes.Buffer
11719		io.Copy(&snapshot, ringBuffer)
11720		err = &smithy.DeserializationError{
11721			Err:      fmt.Errorf("failed to decode response body, %w", err),
11722			Snapshot: snapshot.Bytes(),
11723		}
11724		return err
11725	}
11726
11727	errorBody.Seek(0, io.SeekStart)
11728	if len(code) != 0 {
11729		errorCode = restjson.SanitizeErrorCode(code)
11730	}
11731	if len(message) != 0 {
11732		errorMessage = message
11733	}
11734
11735	switch {
11736	case strings.EqualFold("BadRequestException", errorCode):
11737		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11738
11739	case strings.EqualFold("ForbiddenException", errorCode):
11740		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11741
11742	case strings.EqualFold("NotFoundException", errorCode):
11743		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11744
11745	case strings.EqualFold("ServiceFailureException", errorCode):
11746		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11747
11748	case strings.EqualFold("ServiceUnavailableException", errorCode):
11749		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11750
11751	case strings.EqualFold("ThrottledClientException", errorCode):
11752		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11753
11754	case strings.EqualFold("UnauthorizedClientException", errorCode):
11755		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11756
11757	default:
11758		genericError := &smithy.GenericAPIError{
11759			Code:    errorCode,
11760			Message: errorMessage,
11761		}
11762		return genericError
11763
11764	}
11765}
11766
11767func awsRestjson1_deserializeOpDocumentGetAttendeeOutput(v **GetAttendeeOutput, value interface{}) error {
11768	if v == nil {
11769		return fmt.Errorf("unexpected nil of type %T", v)
11770	}
11771	if value == nil {
11772		return nil
11773	}
11774
11775	shape, ok := value.(map[string]interface{})
11776	if !ok {
11777		return fmt.Errorf("unexpected JSON type %v", value)
11778	}
11779
11780	var sv *GetAttendeeOutput
11781	if *v == nil {
11782		sv = &GetAttendeeOutput{}
11783	} else {
11784		sv = *v
11785	}
11786
11787	for key, value := range shape {
11788		switch key {
11789		case "Attendee":
11790			if err := awsRestjson1_deserializeDocumentAttendee(&sv.Attendee, value); err != nil {
11791				return err
11792			}
11793
11794		default:
11795			_, _ = key, value
11796
11797		}
11798	}
11799	*v = sv
11800	return nil
11801}
11802
11803type awsRestjson1_deserializeOpGetBot struct {
11804}
11805
11806func (*awsRestjson1_deserializeOpGetBot) ID() string {
11807	return "OperationDeserializer"
11808}
11809
11810func (m *awsRestjson1_deserializeOpGetBot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11811	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11812) {
11813	out, metadata, err = next.HandleDeserialize(ctx, in)
11814	if err != nil {
11815		return out, metadata, err
11816	}
11817
11818	response, ok := out.RawResponse.(*smithyhttp.Response)
11819	if !ok {
11820		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11821	}
11822
11823	if response.StatusCode < 200 || response.StatusCode >= 300 {
11824		return out, metadata, awsRestjson1_deserializeOpErrorGetBot(response, &metadata)
11825	}
11826	output := &GetBotOutput{}
11827	out.Result = output
11828
11829	var buff [1024]byte
11830	ringBuffer := smithyio.NewRingBuffer(buff[:])
11831
11832	body := io.TeeReader(response.Body, ringBuffer)
11833
11834	decoder := json.NewDecoder(body)
11835	decoder.UseNumber()
11836	var shape interface{}
11837	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11838		var snapshot bytes.Buffer
11839		io.Copy(&snapshot, ringBuffer)
11840		err = &smithy.DeserializationError{
11841			Err:      fmt.Errorf("failed to decode response body, %w", err),
11842			Snapshot: snapshot.Bytes(),
11843		}
11844		return out, metadata, err
11845	}
11846
11847	err = awsRestjson1_deserializeOpDocumentGetBotOutput(&output, shape)
11848	if err != nil {
11849		var snapshot bytes.Buffer
11850		io.Copy(&snapshot, ringBuffer)
11851		return out, metadata, &smithy.DeserializationError{
11852			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11853			Snapshot: snapshot.Bytes(),
11854		}
11855	}
11856
11857	return out, metadata, err
11858}
11859
11860func awsRestjson1_deserializeOpErrorGetBot(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11861	var errorBuffer bytes.Buffer
11862	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11863		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11864	}
11865	errorBody := bytes.NewReader(errorBuffer.Bytes())
11866
11867	errorCode := "UnknownError"
11868	errorMessage := errorCode
11869
11870	code := response.Header.Get("X-Amzn-ErrorType")
11871	if len(code) != 0 {
11872		errorCode = restjson.SanitizeErrorCode(code)
11873	}
11874
11875	var buff [1024]byte
11876	ringBuffer := smithyio.NewRingBuffer(buff[:])
11877
11878	body := io.TeeReader(errorBody, ringBuffer)
11879	decoder := json.NewDecoder(body)
11880	decoder.UseNumber()
11881	code, message, err := restjson.GetErrorInfo(decoder)
11882	if err != nil {
11883		var snapshot bytes.Buffer
11884		io.Copy(&snapshot, ringBuffer)
11885		err = &smithy.DeserializationError{
11886			Err:      fmt.Errorf("failed to decode response body, %w", err),
11887			Snapshot: snapshot.Bytes(),
11888		}
11889		return err
11890	}
11891
11892	errorBody.Seek(0, io.SeekStart)
11893	if len(code) != 0 {
11894		errorCode = restjson.SanitizeErrorCode(code)
11895	}
11896	if len(message) != 0 {
11897		errorMessage = message
11898	}
11899
11900	switch {
11901	case strings.EqualFold("BadRequestException", errorCode):
11902		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11903
11904	case strings.EqualFold("ForbiddenException", errorCode):
11905		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11906
11907	case strings.EqualFold("NotFoundException", errorCode):
11908		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11909
11910	case strings.EqualFold("ServiceFailureException", errorCode):
11911		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11912
11913	case strings.EqualFold("ServiceUnavailableException", errorCode):
11914		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11915
11916	case strings.EqualFold("ThrottledClientException", errorCode):
11917		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11918
11919	case strings.EqualFold("UnauthorizedClientException", errorCode):
11920		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11921
11922	default:
11923		genericError := &smithy.GenericAPIError{
11924			Code:    errorCode,
11925			Message: errorMessage,
11926		}
11927		return genericError
11928
11929	}
11930}
11931
11932func awsRestjson1_deserializeOpDocumentGetBotOutput(v **GetBotOutput, value interface{}) error {
11933	if v == nil {
11934		return fmt.Errorf("unexpected nil of type %T", v)
11935	}
11936	if value == nil {
11937		return nil
11938	}
11939
11940	shape, ok := value.(map[string]interface{})
11941	if !ok {
11942		return fmt.Errorf("unexpected JSON type %v", value)
11943	}
11944
11945	var sv *GetBotOutput
11946	if *v == nil {
11947		sv = &GetBotOutput{}
11948	} else {
11949		sv = *v
11950	}
11951
11952	for key, value := range shape {
11953		switch key {
11954		case "Bot":
11955			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
11956				return err
11957			}
11958
11959		default:
11960			_, _ = key, value
11961
11962		}
11963	}
11964	*v = sv
11965	return nil
11966}
11967
11968type awsRestjson1_deserializeOpGetChannelMessage struct {
11969}
11970
11971func (*awsRestjson1_deserializeOpGetChannelMessage) ID() string {
11972	return "OperationDeserializer"
11973}
11974
11975func (m *awsRestjson1_deserializeOpGetChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11976	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11977) {
11978	out, metadata, err = next.HandleDeserialize(ctx, in)
11979	if err != nil {
11980		return out, metadata, err
11981	}
11982
11983	response, ok := out.RawResponse.(*smithyhttp.Response)
11984	if !ok {
11985		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11986	}
11987
11988	if response.StatusCode < 200 || response.StatusCode >= 300 {
11989		return out, metadata, awsRestjson1_deserializeOpErrorGetChannelMessage(response, &metadata)
11990	}
11991	output := &GetChannelMessageOutput{}
11992	out.Result = output
11993
11994	var buff [1024]byte
11995	ringBuffer := smithyio.NewRingBuffer(buff[:])
11996
11997	body := io.TeeReader(response.Body, ringBuffer)
11998
11999	decoder := json.NewDecoder(body)
12000	decoder.UseNumber()
12001	var shape interface{}
12002	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12003		var snapshot bytes.Buffer
12004		io.Copy(&snapshot, ringBuffer)
12005		err = &smithy.DeserializationError{
12006			Err:      fmt.Errorf("failed to decode response body, %w", err),
12007			Snapshot: snapshot.Bytes(),
12008		}
12009		return out, metadata, err
12010	}
12011
12012	err = awsRestjson1_deserializeOpDocumentGetChannelMessageOutput(&output, shape)
12013	if err != nil {
12014		var snapshot bytes.Buffer
12015		io.Copy(&snapshot, ringBuffer)
12016		return out, metadata, &smithy.DeserializationError{
12017			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12018			Snapshot: snapshot.Bytes(),
12019		}
12020	}
12021
12022	return out, metadata, err
12023}
12024
12025func awsRestjson1_deserializeOpErrorGetChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12026	var errorBuffer bytes.Buffer
12027	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12028		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12029	}
12030	errorBody := bytes.NewReader(errorBuffer.Bytes())
12031
12032	errorCode := "UnknownError"
12033	errorMessage := errorCode
12034
12035	code := response.Header.Get("X-Amzn-ErrorType")
12036	if len(code) != 0 {
12037		errorCode = restjson.SanitizeErrorCode(code)
12038	}
12039
12040	var buff [1024]byte
12041	ringBuffer := smithyio.NewRingBuffer(buff[:])
12042
12043	body := io.TeeReader(errorBody, ringBuffer)
12044	decoder := json.NewDecoder(body)
12045	decoder.UseNumber()
12046	code, message, err := restjson.GetErrorInfo(decoder)
12047	if err != nil {
12048		var snapshot bytes.Buffer
12049		io.Copy(&snapshot, ringBuffer)
12050		err = &smithy.DeserializationError{
12051			Err:      fmt.Errorf("failed to decode response body, %w", err),
12052			Snapshot: snapshot.Bytes(),
12053		}
12054		return err
12055	}
12056
12057	errorBody.Seek(0, io.SeekStart)
12058	if len(code) != 0 {
12059		errorCode = restjson.SanitizeErrorCode(code)
12060	}
12061	if len(message) != 0 {
12062		errorMessage = message
12063	}
12064
12065	switch {
12066	case strings.EqualFold("BadRequestException", errorCode):
12067		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12068
12069	case strings.EqualFold("ForbiddenException", errorCode):
12070		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12071
12072	case strings.EqualFold("NotFoundException", errorCode):
12073		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12074
12075	case strings.EqualFold("ServiceFailureException", errorCode):
12076		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12077
12078	case strings.EqualFold("ServiceUnavailableException", errorCode):
12079		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12080
12081	case strings.EqualFold("ThrottledClientException", errorCode):
12082		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12083
12084	case strings.EqualFold("UnauthorizedClientException", errorCode):
12085		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12086
12087	default:
12088		genericError := &smithy.GenericAPIError{
12089			Code:    errorCode,
12090			Message: errorMessage,
12091		}
12092		return genericError
12093
12094	}
12095}
12096
12097func awsRestjson1_deserializeOpDocumentGetChannelMessageOutput(v **GetChannelMessageOutput, value interface{}) error {
12098	if v == nil {
12099		return fmt.Errorf("unexpected nil of type %T", v)
12100	}
12101	if value == nil {
12102		return nil
12103	}
12104
12105	shape, ok := value.(map[string]interface{})
12106	if !ok {
12107		return fmt.Errorf("unexpected JSON type %v", value)
12108	}
12109
12110	var sv *GetChannelMessageOutput
12111	if *v == nil {
12112		sv = &GetChannelMessageOutput{}
12113	} else {
12114		sv = *v
12115	}
12116
12117	for key, value := range shape {
12118		switch key {
12119		case "ChannelMessage":
12120			if err := awsRestjson1_deserializeDocumentChannelMessage(&sv.ChannelMessage, value); err != nil {
12121				return err
12122			}
12123
12124		default:
12125			_, _ = key, value
12126
12127		}
12128	}
12129	*v = sv
12130	return nil
12131}
12132
12133type awsRestjson1_deserializeOpGetEventsConfiguration struct {
12134}
12135
12136func (*awsRestjson1_deserializeOpGetEventsConfiguration) ID() string {
12137	return "OperationDeserializer"
12138}
12139
12140func (m *awsRestjson1_deserializeOpGetEventsConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12141	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12142) {
12143	out, metadata, err = next.HandleDeserialize(ctx, in)
12144	if err != nil {
12145		return out, metadata, err
12146	}
12147
12148	response, ok := out.RawResponse.(*smithyhttp.Response)
12149	if !ok {
12150		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12151	}
12152
12153	if response.StatusCode < 200 || response.StatusCode >= 300 {
12154		return out, metadata, awsRestjson1_deserializeOpErrorGetEventsConfiguration(response, &metadata)
12155	}
12156	output := &GetEventsConfigurationOutput{}
12157	out.Result = output
12158
12159	var buff [1024]byte
12160	ringBuffer := smithyio.NewRingBuffer(buff[:])
12161
12162	body := io.TeeReader(response.Body, ringBuffer)
12163
12164	decoder := json.NewDecoder(body)
12165	decoder.UseNumber()
12166	var shape interface{}
12167	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12168		var snapshot bytes.Buffer
12169		io.Copy(&snapshot, ringBuffer)
12170		err = &smithy.DeserializationError{
12171			Err:      fmt.Errorf("failed to decode response body, %w", err),
12172			Snapshot: snapshot.Bytes(),
12173		}
12174		return out, metadata, err
12175	}
12176
12177	err = awsRestjson1_deserializeOpDocumentGetEventsConfigurationOutput(&output, shape)
12178	if err != nil {
12179		var snapshot bytes.Buffer
12180		io.Copy(&snapshot, ringBuffer)
12181		return out, metadata, &smithy.DeserializationError{
12182			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12183			Snapshot: snapshot.Bytes(),
12184		}
12185	}
12186
12187	return out, metadata, err
12188}
12189
12190func awsRestjson1_deserializeOpErrorGetEventsConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12191	var errorBuffer bytes.Buffer
12192	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12193		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12194	}
12195	errorBody := bytes.NewReader(errorBuffer.Bytes())
12196
12197	errorCode := "UnknownError"
12198	errorMessage := errorCode
12199
12200	code := response.Header.Get("X-Amzn-ErrorType")
12201	if len(code) != 0 {
12202		errorCode = restjson.SanitizeErrorCode(code)
12203	}
12204
12205	var buff [1024]byte
12206	ringBuffer := smithyio.NewRingBuffer(buff[:])
12207
12208	body := io.TeeReader(errorBody, ringBuffer)
12209	decoder := json.NewDecoder(body)
12210	decoder.UseNumber()
12211	code, message, err := restjson.GetErrorInfo(decoder)
12212	if err != nil {
12213		var snapshot bytes.Buffer
12214		io.Copy(&snapshot, ringBuffer)
12215		err = &smithy.DeserializationError{
12216			Err:      fmt.Errorf("failed to decode response body, %w", err),
12217			Snapshot: snapshot.Bytes(),
12218		}
12219		return err
12220	}
12221
12222	errorBody.Seek(0, io.SeekStart)
12223	if len(code) != 0 {
12224		errorCode = restjson.SanitizeErrorCode(code)
12225	}
12226	if len(message) != 0 {
12227		errorMessage = message
12228	}
12229
12230	switch {
12231	case strings.EqualFold("BadRequestException", errorCode):
12232		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12233
12234	case strings.EqualFold("ForbiddenException", errorCode):
12235		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12236
12237	case strings.EqualFold("NotFoundException", errorCode):
12238		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12239
12240	case strings.EqualFold("ResourceLimitExceededException", errorCode):
12241		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
12242
12243	case strings.EqualFold("ServiceFailureException", errorCode):
12244		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12245
12246	case strings.EqualFold("ServiceUnavailableException", errorCode):
12247		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12248
12249	case strings.EqualFold("UnauthorizedClientException", errorCode):
12250		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12251
12252	default:
12253		genericError := &smithy.GenericAPIError{
12254			Code:    errorCode,
12255			Message: errorMessage,
12256		}
12257		return genericError
12258
12259	}
12260}
12261
12262func awsRestjson1_deserializeOpDocumentGetEventsConfigurationOutput(v **GetEventsConfigurationOutput, value interface{}) error {
12263	if v == nil {
12264		return fmt.Errorf("unexpected nil of type %T", v)
12265	}
12266	if value == nil {
12267		return nil
12268	}
12269
12270	shape, ok := value.(map[string]interface{})
12271	if !ok {
12272		return fmt.Errorf("unexpected JSON type %v", value)
12273	}
12274
12275	var sv *GetEventsConfigurationOutput
12276	if *v == nil {
12277		sv = &GetEventsConfigurationOutput{}
12278	} else {
12279		sv = *v
12280	}
12281
12282	for key, value := range shape {
12283		switch key {
12284		case "EventsConfiguration":
12285			if err := awsRestjson1_deserializeDocumentEventsConfiguration(&sv.EventsConfiguration, value); err != nil {
12286				return err
12287			}
12288
12289		default:
12290			_, _ = key, value
12291
12292		}
12293	}
12294	*v = sv
12295	return nil
12296}
12297
12298type awsRestjson1_deserializeOpGetGlobalSettings struct {
12299}
12300
12301func (*awsRestjson1_deserializeOpGetGlobalSettings) ID() string {
12302	return "OperationDeserializer"
12303}
12304
12305func (m *awsRestjson1_deserializeOpGetGlobalSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12306	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12307) {
12308	out, metadata, err = next.HandleDeserialize(ctx, in)
12309	if err != nil {
12310		return out, metadata, err
12311	}
12312
12313	response, ok := out.RawResponse.(*smithyhttp.Response)
12314	if !ok {
12315		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12316	}
12317
12318	if response.StatusCode < 200 || response.StatusCode >= 300 {
12319		return out, metadata, awsRestjson1_deserializeOpErrorGetGlobalSettings(response, &metadata)
12320	}
12321	output := &GetGlobalSettingsOutput{}
12322	out.Result = output
12323
12324	var buff [1024]byte
12325	ringBuffer := smithyio.NewRingBuffer(buff[:])
12326
12327	body := io.TeeReader(response.Body, ringBuffer)
12328
12329	decoder := json.NewDecoder(body)
12330	decoder.UseNumber()
12331	var shape interface{}
12332	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12333		var snapshot bytes.Buffer
12334		io.Copy(&snapshot, ringBuffer)
12335		err = &smithy.DeserializationError{
12336			Err:      fmt.Errorf("failed to decode response body, %w", err),
12337			Snapshot: snapshot.Bytes(),
12338		}
12339		return out, metadata, err
12340	}
12341
12342	err = awsRestjson1_deserializeOpDocumentGetGlobalSettingsOutput(&output, shape)
12343	if err != nil {
12344		var snapshot bytes.Buffer
12345		io.Copy(&snapshot, ringBuffer)
12346		return out, metadata, &smithy.DeserializationError{
12347			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12348			Snapshot: snapshot.Bytes(),
12349		}
12350	}
12351
12352	return out, metadata, err
12353}
12354
12355func awsRestjson1_deserializeOpErrorGetGlobalSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12356	var errorBuffer bytes.Buffer
12357	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12358		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12359	}
12360	errorBody := bytes.NewReader(errorBuffer.Bytes())
12361
12362	errorCode := "UnknownError"
12363	errorMessage := errorCode
12364
12365	code := response.Header.Get("X-Amzn-ErrorType")
12366	if len(code) != 0 {
12367		errorCode = restjson.SanitizeErrorCode(code)
12368	}
12369
12370	var buff [1024]byte
12371	ringBuffer := smithyio.NewRingBuffer(buff[:])
12372
12373	body := io.TeeReader(errorBody, ringBuffer)
12374	decoder := json.NewDecoder(body)
12375	decoder.UseNumber()
12376	code, message, err := restjson.GetErrorInfo(decoder)
12377	if err != nil {
12378		var snapshot bytes.Buffer
12379		io.Copy(&snapshot, ringBuffer)
12380		err = &smithy.DeserializationError{
12381			Err:      fmt.Errorf("failed to decode response body, %w", err),
12382			Snapshot: snapshot.Bytes(),
12383		}
12384		return err
12385	}
12386
12387	errorBody.Seek(0, io.SeekStart)
12388	if len(code) != 0 {
12389		errorCode = restjson.SanitizeErrorCode(code)
12390	}
12391	if len(message) != 0 {
12392		errorMessage = message
12393	}
12394
12395	switch {
12396	case strings.EqualFold("BadRequestException", errorCode):
12397		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12398
12399	case strings.EqualFold("ForbiddenException", errorCode):
12400		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12401
12402	case strings.EqualFold("ServiceFailureException", errorCode):
12403		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12404
12405	case strings.EqualFold("ServiceUnavailableException", errorCode):
12406		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12407
12408	case strings.EqualFold("ThrottledClientException", errorCode):
12409		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12410
12411	case strings.EqualFold("UnauthorizedClientException", errorCode):
12412		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12413
12414	default:
12415		genericError := &smithy.GenericAPIError{
12416			Code:    errorCode,
12417			Message: errorMessage,
12418		}
12419		return genericError
12420
12421	}
12422}
12423
12424func awsRestjson1_deserializeOpDocumentGetGlobalSettingsOutput(v **GetGlobalSettingsOutput, value interface{}) error {
12425	if v == nil {
12426		return fmt.Errorf("unexpected nil of type %T", v)
12427	}
12428	if value == nil {
12429		return nil
12430	}
12431
12432	shape, ok := value.(map[string]interface{})
12433	if !ok {
12434		return fmt.Errorf("unexpected JSON type %v", value)
12435	}
12436
12437	var sv *GetGlobalSettingsOutput
12438	if *v == nil {
12439		sv = &GetGlobalSettingsOutput{}
12440	} else {
12441		sv = *v
12442	}
12443
12444	for key, value := range shape {
12445		switch key {
12446		case "BusinessCalling":
12447			if err := awsRestjson1_deserializeDocumentBusinessCallingSettings(&sv.BusinessCalling, value); err != nil {
12448				return err
12449			}
12450
12451		case "VoiceConnector":
12452			if err := awsRestjson1_deserializeDocumentVoiceConnectorSettings(&sv.VoiceConnector, value); err != nil {
12453				return err
12454			}
12455
12456		default:
12457			_, _ = key, value
12458
12459		}
12460	}
12461	*v = sv
12462	return nil
12463}
12464
12465type awsRestjson1_deserializeOpGetMediaCapturePipeline struct {
12466}
12467
12468func (*awsRestjson1_deserializeOpGetMediaCapturePipeline) ID() string {
12469	return "OperationDeserializer"
12470}
12471
12472func (m *awsRestjson1_deserializeOpGetMediaCapturePipeline) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12473	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12474) {
12475	out, metadata, err = next.HandleDeserialize(ctx, in)
12476	if err != nil {
12477		return out, metadata, err
12478	}
12479
12480	response, ok := out.RawResponse.(*smithyhttp.Response)
12481	if !ok {
12482		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12483	}
12484
12485	if response.StatusCode < 200 || response.StatusCode >= 300 {
12486		return out, metadata, awsRestjson1_deserializeOpErrorGetMediaCapturePipeline(response, &metadata)
12487	}
12488	output := &GetMediaCapturePipelineOutput{}
12489	out.Result = output
12490
12491	var buff [1024]byte
12492	ringBuffer := smithyio.NewRingBuffer(buff[:])
12493
12494	body := io.TeeReader(response.Body, ringBuffer)
12495
12496	decoder := json.NewDecoder(body)
12497	decoder.UseNumber()
12498	var shape interface{}
12499	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12500		var snapshot bytes.Buffer
12501		io.Copy(&snapshot, ringBuffer)
12502		err = &smithy.DeserializationError{
12503			Err:      fmt.Errorf("failed to decode response body, %w", err),
12504			Snapshot: snapshot.Bytes(),
12505		}
12506		return out, metadata, err
12507	}
12508
12509	err = awsRestjson1_deserializeOpDocumentGetMediaCapturePipelineOutput(&output, shape)
12510	if err != nil {
12511		var snapshot bytes.Buffer
12512		io.Copy(&snapshot, ringBuffer)
12513		return out, metadata, &smithy.DeserializationError{
12514			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12515			Snapshot: snapshot.Bytes(),
12516		}
12517	}
12518
12519	return out, metadata, err
12520}
12521
12522func awsRestjson1_deserializeOpErrorGetMediaCapturePipeline(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12523	var errorBuffer bytes.Buffer
12524	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12525		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12526	}
12527	errorBody := bytes.NewReader(errorBuffer.Bytes())
12528
12529	errorCode := "UnknownError"
12530	errorMessage := errorCode
12531
12532	code := response.Header.Get("X-Amzn-ErrorType")
12533	if len(code) != 0 {
12534		errorCode = restjson.SanitizeErrorCode(code)
12535	}
12536
12537	var buff [1024]byte
12538	ringBuffer := smithyio.NewRingBuffer(buff[:])
12539
12540	body := io.TeeReader(errorBody, ringBuffer)
12541	decoder := json.NewDecoder(body)
12542	decoder.UseNumber()
12543	code, message, err := restjson.GetErrorInfo(decoder)
12544	if err != nil {
12545		var snapshot bytes.Buffer
12546		io.Copy(&snapshot, ringBuffer)
12547		err = &smithy.DeserializationError{
12548			Err:      fmt.Errorf("failed to decode response body, %w", err),
12549			Snapshot: snapshot.Bytes(),
12550		}
12551		return err
12552	}
12553
12554	errorBody.Seek(0, io.SeekStart)
12555	if len(code) != 0 {
12556		errorCode = restjson.SanitizeErrorCode(code)
12557	}
12558	if len(message) != 0 {
12559		errorMessage = message
12560	}
12561
12562	switch {
12563	case strings.EqualFold("BadRequestException", errorCode):
12564		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12565
12566	case strings.EqualFold("ForbiddenException", errorCode):
12567		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12568
12569	case strings.EqualFold("NotFoundException", errorCode):
12570		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12571
12572	case strings.EqualFold("ServiceFailureException", errorCode):
12573		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12574
12575	case strings.EqualFold("ServiceUnavailableException", errorCode):
12576		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12577
12578	case strings.EqualFold("ThrottledClientException", errorCode):
12579		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12580
12581	case strings.EqualFold("UnauthorizedClientException", errorCode):
12582		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12583
12584	default:
12585		genericError := &smithy.GenericAPIError{
12586			Code:    errorCode,
12587			Message: errorMessage,
12588		}
12589		return genericError
12590
12591	}
12592}
12593
12594func awsRestjson1_deserializeOpDocumentGetMediaCapturePipelineOutput(v **GetMediaCapturePipelineOutput, value interface{}) error {
12595	if v == nil {
12596		return fmt.Errorf("unexpected nil of type %T", v)
12597	}
12598	if value == nil {
12599		return nil
12600	}
12601
12602	shape, ok := value.(map[string]interface{})
12603	if !ok {
12604		return fmt.Errorf("unexpected JSON type %v", value)
12605	}
12606
12607	var sv *GetMediaCapturePipelineOutput
12608	if *v == nil {
12609		sv = &GetMediaCapturePipelineOutput{}
12610	} else {
12611		sv = *v
12612	}
12613
12614	for key, value := range shape {
12615		switch key {
12616		case "MediaCapturePipeline":
12617			if err := awsRestjson1_deserializeDocumentMediaCapturePipeline(&sv.MediaCapturePipeline, value); err != nil {
12618				return err
12619			}
12620
12621		default:
12622			_, _ = key, value
12623
12624		}
12625	}
12626	*v = sv
12627	return nil
12628}
12629
12630type awsRestjson1_deserializeOpGetMeeting struct {
12631}
12632
12633func (*awsRestjson1_deserializeOpGetMeeting) ID() string {
12634	return "OperationDeserializer"
12635}
12636
12637func (m *awsRestjson1_deserializeOpGetMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12638	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12639) {
12640	out, metadata, err = next.HandleDeserialize(ctx, in)
12641	if err != nil {
12642		return out, metadata, err
12643	}
12644
12645	response, ok := out.RawResponse.(*smithyhttp.Response)
12646	if !ok {
12647		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12648	}
12649
12650	if response.StatusCode < 200 || response.StatusCode >= 300 {
12651		return out, metadata, awsRestjson1_deserializeOpErrorGetMeeting(response, &metadata)
12652	}
12653	output := &GetMeetingOutput{}
12654	out.Result = output
12655
12656	var buff [1024]byte
12657	ringBuffer := smithyio.NewRingBuffer(buff[:])
12658
12659	body := io.TeeReader(response.Body, ringBuffer)
12660
12661	decoder := json.NewDecoder(body)
12662	decoder.UseNumber()
12663	var shape interface{}
12664	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12665		var snapshot bytes.Buffer
12666		io.Copy(&snapshot, ringBuffer)
12667		err = &smithy.DeserializationError{
12668			Err:      fmt.Errorf("failed to decode response body, %w", err),
12669			Snapshot: snapshot.Bytes(),
12670		}
12671		return out, metadata, err
12672	}
12673
12674	err = awsRestjson1_deserializeOpDocumentGetMeetingOutput(&output, shape)
12675	if err != nil {
12676		var snapshot bytes.Buffer
12677		io.Copy(&snapshot, ringBuffer)
12678		return out, metadata, &smithy.DeserializationError{
12679			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12680			Snapshot: snapshot.Bytes(),
12681		}
12682	}
12683
12684	return out, metadata, err
12685}
12686
12687func awsRestjson1_deserializeOpErrorGetMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12688	var errorBuffer bytes.Buffer
12689	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12690		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12691	}
12692	errorBody := bytes.NewReader(errorBuffer.Bytes())
12693
12694	errorCode := "UnknownError"
12695	errorMessage := errorCode
12696
12697	code := response.Header.Get("X-Amzn-ErrorType")
12698	if len(code) != 0 {
12699		errorCode = restjson.SanitizeErrorCode(code)
12700	}
12701
12702	var buff [1024]byte
12703	ringBuffer := smithyio.NewRingBuffer(buff[:])
12704
12705	body := io.TeeReader(errorBody, ringBuffer)
12706	decoder := json.NewDecoder(body)
12707	decoder.UseNumber()
12708	code, message, err := restjson.GetErrorInfo(decoder)
12709	if err != nil {
12710		var snapshot bytes.Buffer
12711		io.Copy(&snapshot, ringBuffer)
12712		err = &smithy.DeserializationError{
12713			Err:      fmt.Errorf("failed to decode response body, %w", err),
12714			Snapshot: snapshot.Bytes(),
12715		}
12716		return err
12717	}
12718
12719	errorBody.Seek(0, io.SeekStart)
12720	if len(code) != 0 {
12721		errorCode = restjson.SanitizeErrorCode(code)
12722	}
12723	if len(message) != 0 {
12724		errorMessage = message
12725	}
12726
12727	switch {
12728	case strings.EqualFold("BadRequestException", errorCode):
12729		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12730
12731	case strings.EqualFold("ForbiddenException", errorCode):
12732		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12733
12734	case strings.EqualFold("NotFoundException", errorCode):
12735		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12736
12737	case strings.EqualFold("ServiceFailureException", errorCode):
12738		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12739
12740	case strings.EqualFold("ServiceUnavailableException", errorCode):
12741		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12742
12743	case strings.EqualFold("ThrottledClientException", errorCode):
12744		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12745
12746	case strings.EqualFold("UnauthorizedClientException", errorCode):
12747		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12748
12749	default:
12750		genericError := &smithy.GenericAPIError{
12751			Code:    errorCode,
12752			Message: errorMessage,
12753		}
12754		return genericError
12755
12756	}
12757}
12758
12759func awsRestjson1_deserializeOpDocumentGetMeetingOutput(v **GetMeetingOutput, value interface{}) error {
12760	if v == nil {
12761		return fmt.Errorf("unexpected nil of type %T", v)
12762	}
12763	if value == nil {
12764		return nil
12765	}
12766
12767	shape, ok := value.(map[string]interface{})
12768	if !ok {
12769		return fmt.Errorf("unexpected JSON type %v", value)
12770	}
12771
12772	var sv *GetMeetingOutput
12773	if *v == nil {
12774		sv = &GetMeetingOutput{}
12775	} else {
12776		sv = *v
12777	}
12778
12779	for key, value := range shape {
12780		switch key {
12781		case "Meeting":
12782			if err := awsRestjson1_deserializeDocumentMeeting(&sv.Meeting, value); err != nil {
12783				return err
12784			}
12785
12786		default:
12787			_, _ = key, value
12788
12789		}
12790	}
12791	*v = sv
12792	return nil
12793}
12794
12795type awsRestjson1_deserializeOpGetMessagingSessionEndpoint struct {
12796}
12797
12798func (*awsRestjson1_deserializeOpGetMessagingSessionEndpoint) ID() string {
12799	return "OperationDeserializer"
12800}
12801
12802func (m *awsRestjson1_deserializeOpGetMessagingSessionEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12803	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12804) {
12805	out, metadata, err = next.HandleDeserialize(ctx, in)
12806	if err != nil {
12807		return out, metadata, err
12808	}
12809
12810	response, ok := out.RawResponse.(*smithyhttp.Response)
12811	if !ok {
12812		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12813	}
12814
12815	if response.StatusCode < 200 || response.StatusCode >= 300 {
12816		return out, metadata, awsRestjson1_deserializeOpErrorGetMessagingSessionEndpoint(response, &metadata)
12817	}
12818	output := &GetMessagingSessionEndpointOutput{}
12819	out.Result = output
12820
12821	var buff [1024]byte
12822	ringBuffer := smithyio.NewRingBuffer(buff[:])
12823
12824	body := io.TeeReader(response.Body, ringBuffer)
12825
12826	decoder := json.NewDecoder(body)
12827	decoder.UseNumber()
12828	var shape interface{}
12829	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12830		var snapshot bytes.Buffer
12831		io.Copy(&snapshot, ringBuffer)
12832		err = &smithy.DeserializationError{
12833			Err:      fmt.Errorf("failed to decode response body, %w", err),
12834			Snapshot: snapshot.Bytes(),
12835		}
12836		return out, metadata, err
12837	}
12838
12839	err = awsRestjson1_deserializeOpDocumentGetMessagingSessionEndpointOutput(&output, shape)
12840	if err != nil {
12841		var snapshot bytes.Buffer
12842		io.Copy(&snapshot, ringBuffer)
12843		return out, metadata, &smithy.DeserializationError{
12844			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12845			Snapshot: snapshot.Bytes(),
12846		}
12847	}
12848
12849	return out, metadata, err
12850}
12851
12852func awsRestjson1_deserializeOpErrorGetMessagingSessionEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12853	var errorBuffer bytes.Buffer
12854	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12855		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12856	}
12857	errorBody := bytes.NewReader(errorBuffer.Bytes())
12858
12859	errorCode := "UnknownError"
12860	errorMessage := errorCode
12861
12862	code := response.Header.Get("X-Amzn-ErrorType")
12863	if len(code) != 0 {
12864		errorCode = restjson.SanitizeErrorCode(code)
12865	}
12866
12867	var buff [1024]byte
12868	ringBuffer := smithyio.NewRingBuffer(buff[:])
12869
12870	body := io.TeeReader(errorBody, ringBuffer)
12871	decoder := json.NewDecoder(body)
12872	decoder.UseNumber()
12873	code, message, err := restjson.GetErrorInfo(decoder)
12874	if err != nil {
12875		var snapshot bytes.Buffer
12876		io.Copy(&snapshot, ringBuffer)
12877		err = &smithy.DeserializationError{
12878			Err:      fmt.Errorf("failed to decode response body, %w", err),
12879			Snapshot: snapshot.Bytes(),
12880		}
12881		return err
12882	}
12883
12884	errorBody.Seek(0, io.SeekStart)
12885	if len(code) != 0 {
12886		errorCode = restjson.SanitizeErrorCode(code)
12887	}
12888	if len(message) != 0 {
12889		errorMessage = message
12890	}
12891
12892	switch {
12893	case strings.EqualFold("ForbiddenException", errorCode):
12894		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12895
12896	case strings.EqualFold("ServiceFailureException", errorCode):
12897		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12898
12899	case strings.EqualFold("ServiceUnavailableException", errorCode):
12900		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12901
12902	case strings.EqualFold("ThrottledClientException", errorCode):
12903		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12904
12905	case strings.EqualFold("UnauthorizedClientException", errorCode):
12906		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12907
12908	default:
12909		genericError := &smithy.GenericAPIError{
12910			Code:    errorCode,
12911			Message: errorMessage,
12912		}
12913		return genericError
12914
12915	}
12916}
12917
12918func awsRestjson1_deserializeOpDocumentGetMessagingSessionEndpointOutput(v **GetMessagingSessionEndpointOutput, value interface{}) error {
12919	if v == nil {
12920		return fmt.Errorf("unexpected nil of type %T", v)
12921	}
12922	if value == nil {
12923		return nil
12924	}
12925
12926	shape, ok := value.(map[string]interface{})
12927	if !ok {
12928		return fmt.Errorf("unexpected JSON type %v", value)
12929	}
12930
12931	var sv *GetMessagingSessionEndpointOutput
12932	if *v == nil {
12933		sv = &GetMessagingSessionEndpointOutput{}
12934	} else {
12935		sv = *v
12936	}
12937
12938	for key, value := range shape {
12939		switch key {
12940		case "Endpoint":
12941			if err := awsRestjson1_deserializeDocumentMessagingSessionEndpoint(&sv.Endpoint, value); err != nil {
12942				return err
12943			}
12944
12945		default:
12946			_, _ = key, value
12947
12948		}
12949	}
12950	*v = sv
12951	return nil
12952}
12953
12954type awsRestjson1_deserializeOpGetPhoneNumber struct {
12955}
12956
12957func (*awsRestjson1_deserializeOpGetPhoneNumber) ID() string {
12958	return "OperationDeserializer"
12959}
12960
12961func (m *awsRestjson1_deserializeOpGetPhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12962	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12963) {
12964	out, metadata, err = next.HandleDeserialize(ctx, in)
12965	if err != nil {
12966		return out, metadata, err
12967	}
12968
12969	response, ok := out.RawResponse.(*smithyhttp.Response)
12970	if !ok {
12971		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12972	}
12973
12974	if response.StatusCode < 200 || response.StatusCode >= 300 {
12975		return out, metadata, awsRestjson1_deserializeOpErrorGetPhoneNumber(response, &metadata)
12976	}
12977	output := &GetPhoneNumberOutput{}
12978	out.Result = output
12979
12980	var buff [1024]byte
12981	ringBuffer := smithyio.NewRingBuffer(buff[:])
12982
12983	body := io.TeeReader(response.Body, ringBuffer)
12984
12985	decoder := json.NewDecoder(body)
12986	decoder.UseNumber()
12987	var shape interface{}
12988	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12989		var snapshot bytes.Buffer
12990		io.Copy(&snapshot, ringBuffer)
12991		err = &smithy.DeserializationError{
12992			Err:      fmt.Errorf("failed to decode response body, %w", err),
12993			Snapshot: snapshot.Bytes(),
12994		}
12995		return out, metadata, err
12996	}
12997
12998	err = awsRestjson1_deserializeOpDocumentGetPhoneNumberOutput(&output, shape)
12999	if err != nil {
13000		var snapshot bytes.Buffer
13001		io.Copy(&snapshot, ringBuffer)
13002		return out, metadata, &smithy.DeserializationError{
13003			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13004			Snapshot: snapshot.Bytes(),
13005		}
13006	}
13007
13008	return out, metadata, err
13009}
13010
13011func awsRestjson1_deserializeOpErrorGetPhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13012	var errorBuffer bytes.Buffer
13013	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13014		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13015	}
13016	errorBody := bytes.NewReader(errorBuffer.Bytes())
13017
13018	errorCode := "UnknownError"
13019	errorMessage := errorCode
13020
13021	code := response.Header.Get("X-Amzn-ErrorType")
13022	if len(code) != 0 {
13023		errorCode = restjson.SanitizeErrorCode(code)
13024	}
13025
13026	var buff [1024]byte
13027	ringBuffer := smithyio.NewRingBuffer(buff[:])
13028
13029	body := io.TeeReader(errorBody, ringBuffer)
13030	decoder := json.NewDecoder(body)
13031	decoder.UseNumber()
13032	code, message, err := restjson.GetErrorInfo(decoder)
13033	if err != nil {
13034		var snapshot bytes.Buffer
13035		io.Copy(&snapshot, ringBuffer)
13036		err = &smithy.DeserializationError{
13037			Err:      fmt.Errorf("failed to decode response body, %w", err),
13038			Snapshot: snapshot.Bytes(),
13039		}
13040		return err
13041	}
13042
13043	errorBody.Seek(0, io.SeekStart)
13044	if len(code) != 0 {
13045		errorCode = restjson.SanitizeErrorCode(code)
13046	}
13047	if len(message) != 0 {
13048		errorMessage = message
13049	}
13050
13051	switch {
13052	case strings.EqualFold("BadRequestException", errorCode):
13053		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13054
13055	case strings.EqualFold("ForbiddenException", errorCode):
13056		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13057
13058	case strings.EqualFold("NotFoundException", errorCode):
13059		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13060
13061	case strings.EqualFold("ServiceFailureException", errorCode):
13062		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13063
13064	case strings.EqualFold("ServiceUnavailableException", errorCode):
13065		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13066
13067	case strings.EqualFold("ThrottledClientException", errorCode):
13068		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13069
13070	case strings.EqualFold("UnauthorizedClientException", errorCode):
13071		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13072
13073	default:
13074		genericError := &smithy.GenericAPIError{
13075			Code:    errorCode,
13076			Message: errorMessage,
13077		}
13078		return genericError
13079
13080	}
13081}
13082
13083func awsRestjson1_deserializeOpDocumentGetPhoneNumberOutput(v **GetPhoneNumberOutput, value interface{}) error {
13084	if v == nil {
13085		return fmt.Errorf("unexpected nil of type %T", v)
13086	}
13087	if value == nil {
13088		return nil
13089	}
13090
13091	shape, ok := value.(map[string]interface{})
13092	if !ok {
13093		return fmt.Errorf("unexpected JSON type %v", value)
13094	}
13095
13096	var sv *GetPhoneNumberOutput
13097	if *v == nil {
13098		sv = &GetPhoneNumberOutput{}
13099	} else {
13100		sv = *v
13101	}
13102
13103	for key, value := range shape {
13104		switch key {
13105		case "PhoneNumber":
13106			if err := awsRestjson1_deserializeDocumentPhoneNumber(&sv.PhoneNumber, value); err != nil {
13107				return err
13108			}
13109
13110		default:
13111			_, _ = key, value
13112
13113		}
13114	}
13115	*v = sv
13116	return nil
13117}
13118
13119type awsRestjson1_deserializeOpGetPhoneNumberOrder struct {
13120}
13121
13122func (*awsRestjson1_deserializeOpGetPhoneNumberOrder) ID() string {
13123	return "OperationDeserializer"
13124}
13125
13126func (m *awsRestjson1_deserializeOpGetPhoneNumberOrder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13127	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13128) {
13129	out, metadata, err = next.HandleDeserialize(ctx, in)
13130	if err != nil {
13131		return out, metadata, err
13132	}
13133
13134	response, ok := out.RawResponse.(*smithyhttp.Response)
13135	if !ok {
13136		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13137	}
13138
13139	if response.StatusCode < 200 || response.StatusCode >= 300 {
13140		return out, metadata, awsRestjson1_deserializeOpErrorGetPhoneNumberOrder(response, &metadata)
13141	}
13142	output := &GetPhoneNumberOrderOutput{}
13143	out.Result = output
13144
13145	var buff [1024]byte
13146	ringBuffer := smithyio.NewRingBuffer(buff[:])
13147
13148	body := io.TeeReader(response.Body, ringBuffer)
13149
13150	decoder := json.NewDecoder(body)
13151	decoder.UseNumber()
13152	var shape interface{}
13153	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13154		var snapshot bytes.Buffer
13155		io.Copy(&snapshot, ringBuffer)
13156		err = &smithy.DeserializationError{
13157			Err:      fmt.Errorf("failed to decode response body, %w", err),
13158			Snapshot: snapshot.Bytes(),
13159		}
13160		return out, metadata, err
13161	}
13162
13163	err = awsRestjson1_deserializeOpDocumentGetPhoneNumberOrderOutput(&output, shape)
13164	if err != nil {
13165		var snapshot bytes.Buffer
13166		io.Copy(&snapshot, ringBuffer)
13167		return out, metadata, &smithy.DeserializationError{
13168			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13169			Snapshot: snapshot.Bytes(),
13170		}
13171	}
13172
13173	return out, metadata, err
13174}
13175
13176func awsRestjson1_deserializeOpErrorGetPhoneNumberOrder(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13177	var errorBuffer bytes.Buffer
13178	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13179		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13180	}
13181	errorBody := bytes.NewReader(errorBuffer.Bytes())
13182
13183	errorCode := "UnknownError"
13184	errorMessage := errorCode
13185
13186	code := response.Header.Get("X-Amzn-ErrorType")
13187	if len(code) != 0 {
13188		errorCode = restjson.SanitizeErrorCode(code)
13189	}
13190
13191	var buff [1024]byte
13192	ringBuffer := smithyio.NewRingBuffer(buff[:])
13193
13194	body := io.TeeReader(errorBody, ringBuffer)
13195	decoder := json.NewDecoder(body)
13196	decoder.UseNumber()
13197	code, message, err := restjson.GetErrorInfo(decoder)
13198	if err != nil {
13199		var snapshot bytes.Buffer
13200		io.Copy(&snapshot, ringBuffer)
13201		err = &smithy.DeserializationError{
13202			Err:      fmt.Errorf("failed to decode response body, %w", err),
13203			Snapshot: snapshot.Bytes(),
13204		}
13205		return err
13206	}
13207
13208	errorBody.Seek(0, io.SeekStart)
13209	if len(code) != 0 {
13210		errorCode = restjson.SanitizeErrorCode(code)
13211	}
13212	if len(message) != 0 {
13213		errorMessage = message
13214	}
13215
13216	switch {
13217	case strings.EqualFold("BadRequestException", errorCode):
13218		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13219
13220	case strings.EqualFold("ForbiddenException", errorCode):
13221		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13222
13223	case strings.EqualFold("NotFoundException", errorCode):
13224		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13225
13226	case strings.EqualFold("ServiceFailureException", errorCode):
13227		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13228
13229	case strings.EqualFold("ServiceUnavailableException", errorCode):
13230		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13231
13232	case strings.EqualFold("ThrottledClientException", errorCode):
13233		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13234
13235	case strings.EqualFold("UnauthorizedClientException", errorCode):
13236		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13237
13238	default:
13239		genericError := &smithy.GenericAPIError{
13240			Code:    errorCode,
13241			Message: errorMessage,
13242		}
13243		return genericError
13244
13245	}
13246}
13247
13248func awsRestjson1_deserializeOpDocumentGetPhoneNumberOrderOutput(v **GetPhoneNumberOrderOutput, value interface{}) error {
13249	if v == nil {
13250		return fmt.Errorf("unexpected nil of type %T", v)
13251	}
13252	if value == nil {
13253		return nil
13254	}
13255
13256	shape, ok := value.(map[string]interface{})
13257	if !ok {
13258		return fmt.Errorf("unexpected JSON type %v", value)
13259	}
13260
13261	var sv *GetPhoneNumberOrderOutput
13262	if *v == nil {
13263		sv = &GetPhoneNumberOrderOutput{}
13264	} else {
13265		sv = *v
13266	}
13267
13268	for key, value := range shape {
13269		switch key {
13270		case "PhoneNumberOrder":
13271			if err := awsRestjson1_deserializeDocumentPhoneNumberOrder(&sv.PhoneNumberOrder, value); err != nil {
13272				return err
13273			}
13274
13275		default:
13276			_, _ = key, value
13277
13278		}
13279	}
13280	*v = sv
13281	return nil
13282}
13283
13284type awsRestjson1_deserializeOpGetPhoneNumberSettings struct {
13285}
13286
13287func (*awsRestjson1_deserializeOpGetPhoneNumberSettings) ID() string {
13288	return "OperationDeserializer"
13289}
13290
13291func (m *awsRestjson1_deserializeOpGetPhoneNumberSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13292	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13293) {
13294	out, metadata, err = next.HandleDeserialize(ctx, in)
13295	if err != nil {
13296		return out, metadata, err
13297	}
13298
13299	response, ok := out.RawResponse.(*smithyhttp.Response)
13300	if !ok {
13301		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13302	}
13303
13304	if response.StatusCode < 200 || response.StatusCode >= 300 {
13305		return out, metadata, awsRestjson1_deserializeOpErrorGetPhoneNumberSettings(response, &metadata)
13306	}
13307	output := &GetPhoneNumberSettingsOutput{}
13308	out.Result = output
13309
13310	var buff [1024]byte
13311	ringBuffer := smithyio.NewRingBuffer(buff[:])
13312
13313	body := io.TeeReader(response.Body, ringBuffer)
13314
13315	decoder := json.NewDecoder(body)
13316	decoder.UseNumber()
13317	var shape interface{}
13318	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13319		var snapshot bytes.Buffer
13320		io.Copy(&snapshot, ringBuffer)
13321		err = &smithy.DeserializationError{
13322			Err:      fmt.Errorf("failed to decode response body, %w", err),
13323			Snapshot: snapshot.Bytes(),
13324		}
13325		return out, metadata, err
13326	}
13327
13328	err = awsRestjson1_deserializeOpDocumentGetPhoneNumberSettingsOutput(&output, shape)
13329	if err != nil {
13330		var snapshot bytes.Buffer
13331		io.Copy(&snapshot, ringBuffer)
13332		return out, metadata, &smithy.DeserializationError{
13333			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13334			Snapshot: snapshot.Bytes(),
13335		}
13336	}
13337
13338	return out, metadata, err
13339}
13340
13341func awsRestjson1_deserializeOpErrorGetPhoneNumberSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13342	var errorBuffer bytes.Buffer
13343	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13344		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13345	}
13346	errorBody := bytes.NewReader(errorBuffer.Bytes())
13347
13348	errorCode := "UnknownError"
13349	errorMessage := errorCode
13350
13351	code := response.Header.Get("X-Amzn-ErrorType")
13352	if len(code) != 0 {
13353		errorCode = restjson.SanitizeErrorCode(code)
13354	}
13355
13356	var buff [1024]byte
13357	ringBuffer := smithyio.NewRingBuffer(buff[:])
13358
13359	body := io.TeeReader(errorBody, ringBuffer)
13360	decoder := json.NewDecoder(body)
13361	decoder.UseNumber()
13362	code, message, err := restjson.GetErrorInfo(decoder)
13363	if err != nil {
13364		var snapshot bytes.Buffer
13365		io.Copy(&snapshot, ringBuffer)
13366		err = &smithy.DeserializationError{
13367			Err:      fmt.Errorf("failed to decode response body, %w", err),
13368			Snapshot: snapshot.Bytes(),
13369		}
13370		return err
13371	}
13372
13373	errorBody.Seek(0, io.SeekStart)
13374	if len(code) != 0 {
13375		errorCode = restjson.SanitizeErrorCode(code)
13376	}
13377	if len(message) != 0 {
13378		errorMessage = message
13379	}
13380
13381	switch {
13382	case strings.EqualFold("BadRequestException", errorCode):
13383		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13384
13385	case strings.EqualFold("ForbiddenException", errorCode):
13386		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13387
13388	case strings.EqualFold("ServiceFailureException", errorCode):
13389		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13390
13391	case strings.EqualFold("ServiceUnavailableException", errorCode):
13392		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13393
13394	case strings.EqualFold("ThrottledClientException", errorCode):
13395		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13396
13397	case strings.EqualFold("UnauthorizedClientException", errorCode):
13398		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13399
13400	default:
13401		genericError := &smithy.GenericAPIError{
13402			Code:    errorCode,
13403			Message: errorMessage,
13404		}
13405		return genericError
13406
13407	}
13408}
13409
13410func awsRestjson1_deserializeOpDocumentGetPhoneNumberSettingsOutput(v **GetPhoneNumberSettingsOutput, value interface{}) error {
13411	if v == nil {
13412		return fmt.Errorf("unexpected nil of type %T", v)
13413	}
13414	if value == nil {
13415		return nil
13416	}
13417
13418	shape, ok := value.(map[string]interface{})
13419	if !ok {
13420		return fmt.Errorf("unexpected JSON type %v", value)
13421	}
13422
13423	var sv *GetPhoneNumberSettingsOutput
13424	if *v == nil {
13425		sv = &GetPhoneNumberSettingsOutput{}
13426	} else {
13427		sv = *v
13428	}
13429
13430	for key, value := range shape {
13431		switch key {
13432		case "CallingName":
13433			if value != nil {
13434				jtv, ok := value.(string)
13435				if !ok {
13436					return fmt.Errorf("expected CallingName to be of type string, got %T instead", value)
13437				}
13438				sv.CallingName = ptr.String(jtv)
13439			}
13440
13441		case "CallingNameUpdatedTimestamp":
13442			if value != nil {
13443				jtv, ok := value.(string)
13444				if !ok {
13445					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
13446				}
13447				t, err := smithytime.ParseDateTime(jtv)
13448				if err != nil {
13449					return err
13450				}
13451				sv.CallingNameUpdatedTimestamp = ptr.Time(t)
13452			}
13453
13454		default:
13455			_, _ = key, value
13456
13457		}
13458	}
13459	*v = sv
13460	return nil
13461}
13462
13463type awsRestjson1_deserializeOpGetProxySession struct {
13464}
13465
13466func (*awsRestjson1_deserializeOpGetProxySession) ID() string {
13467	return "OperationDeserializer"
13468}
13469
13470func (m *awsRestjson1_deserializeOpGetProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13471	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13472) {
13473	out, metadata, err = next.HandleDeserialize(ctx, in)
13474	if err != nil {
13475		return out, metadata, err
13476	}
13477
13478	response, ok := out.RawResponse.(*smithyhttp.Response)
13479	if !ok {
13480		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13481	}
13482
13483	if response.StatusCode < 200 || response.StatusCode >= 300 {
13484		return out, metadata, awsRestjson1_deserializeOpErrorGetProxySession(response, &metadata)
13485	}
13486	output := &GetProxySessionOutput{}
13487	out.Result = output
13488
13489	var buff [1024]byte
13490	ringBuffer := smithyio.NewRingBuffer(buff[:])
13491
13492	body := io.TeeReader(response.Body, ringBuffer)
13493
13494	decoder := json.NewDecoder(body)
13495	decoder.UseNumber()
13496	var shape interface{}
13497	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13498		var snapshot bytes.Buffer
13499		io.Copy(&snapshot, ringBuffer)
13500		err = &smithy.DeserializationError{
13501			Err:      fmt.Errorf("failed to decode response body, %w", err),
13502			Snapshot: snapshot.Bytes(),
13503		}
13504		return out, metadata, err
13505	}
13506
13507	err = awsRestjson1_deserializeOpDocumentGetProxySessionOutput(&output, shape)
13508	if err != nil {
13509		var snapshot bytes.Buffer
13510		io.Copy(&snapshot, ringBuffer)
13511		return out, metadata, &smithy.DeserializationError{
13512			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13513			Snapshot: snapshot.Bytes(),
13514		}
13515	}
13516
13517	return out, metadata, err
13518}
13519
13520func awsRestjson1_deserializeOpErrorGetProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13521	var errorBuffer bytes.Buffer
13522	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13523		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13524	}
13525	errorBody := bytes.NewReader(errorBuffer.Bytes())
13526
13527	errorCode := "UnknownError"
13528	errorMessage := errorCode
13529
13530	code := response.Header.Get("X-Amzn-ErrorType")
13531	if len(code) != 0 {
13532		errorCode = restjson.SanitizeErrorCode(code)
13533	}
13534
13535	var buff [1024]byte
13536	ringBuffer := smithyio.NewRingBuffer(buff[:])
13537
13538	body := io.TeeReader(errorBody, ringBuffer)
13539	decoder := json.NewDecoder(body)
13540	decoder.UseNumber()
13541	code, message, err := restjson.GetErrorInfo(decoder)
13542	if err != nil {
13543		var snapshot bytes.Buffer
13544		io.Copy(&snapshot, ringBuffer)
13545		err = &smithy.DeserializationError{
13546			Err:      fmt.Errorf("failed to decode response body, %w", err),
13547			Snapshot: snapshot.Bytes(),
13548		}
13549		return err
13550	}
13551
13552	errorBody.Seek(0, io.SeekStart)
13553	if len(code) != 0 {
13554		errorCode = restjson.SanitizeErrorCode(code)
13555	}
13556	if len(message) != 0 {
13557		errorMessage = message
13558	}
13559
13560	switch {
13561	case strings.EqualFold("BadRequestException", errorCode):
13562		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13563
13564	case strings.EqualFold("ForbiddenException", errorCode):
13565		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13566
13567	case strings.EqualFold("NotFoundException", errorCode):
13568		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13569
13570	case strings.EqualFold("ServiceFailureException", errorCode):
13571		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13572
13573	case strings.EqualFold("ServiceUnavailableException", errorCode):
13574		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13575
13576	case strings.EqualFold("ThrottledClientException", errorCode):
13577		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13578
13579	case strings.EqualFold("UnauthorizedClientException", errorCode):
13580		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13581
13582	default:
13583		genericError := &smithy.GenericAPIError{
13584			Code:    errorCode,
13585			Message: errorMessage,
13586		}
13587		return genericError
13588
13589	}
13590}
13591
13592func awsRestjson1_deserializeOpDocumentGetProxySessionOutput(v **GetProxySessionOutput, value interface{}) error {
13593	if v == nil {
13594		return fmt.Errorf("unexpected nil of type %T", v)
13595	}
13596	if value == nil {
13597		return nil
13598	}
13599
13600	shape, ok := value.(map[string]interface{})
13601	if !ok {
13602		return fmt.Errorf("unexpected JSON type %v", value)
13603	}
13604
13605	var sv *GetProxySessionOutput
13606	if *v == nil {
13607		sv = &GetProxySessionOutput{}
13608	} else {
13609		sv = *v
13610	}
13611
13612	for key, value := range shape {
13613		switch key {
13614		case "ProxySession":
13615			if err := awsRestjson1_deserializeDocumentProxySession(&sv.ProxySession, value); err != nil {
13616				return err
13617			}
13618
13619		default:
13620			_, _ = key, value
13621
13622		}
13623	}
13624	*v = sv
13625	return nil
13626}
13627
13628type awsRestjson1_deserializeOpGetRetentionSettings struct {
13629}
13630
13631func (*awsRestjson1_deserializeOpGetRetentionSettings) ID() string {
13632	return "OperationDeserializer"
13633}
13634
13635func (m *awsRestjson1_deserializeOpGetRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13636	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13637) {
13638	out, metadata, err = next.HandleDeserialize(ctx, in)
13639	if err != nil {
13640		return out, metadata, err
13641	}
13642
13643	response, ok := out.RawResponse.(*smithyhttp.Response)
13644	if !ok {
13645		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13646	}
13647
13648	if response.StatusCode < 200 || response.StatusCode >= 300 {
13649		return out, metadata, awsRestjson1_deserializeOpErrorGetRetentionSettings(response, &metadata)
13650	}
13651	output := &GetRetentionSettingsOutput{}
13652	out.Result = output
13653
13654	var buff [1024]byte
13655	ringBuffer := smithyio.NewRingBuffer(buff[:])
13656
13657	body := io.TeeReader(response.Body, ringBuffer)
13658
13659	decoder := json.NewDecoder(body)
13660	decoder.UseNumber()
13661	var shape interface{}
13662	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13663		var snapshot bytes.Buffer
13664		io.Copy(&snapshot, ringBuffer)
13665		err = &smithy.DeserializationError{
13666			Err:      fmt.Errorf("failed to decode response body, %w", err),
13667			Snapshot: snapshot.Bytes(),
13668		}
13669		return out, metadata, err
13670	}
13671
13672	err = awsRestjson1_deserializeOpDocumentGetRetentionSettingsOutput(&output, shape)
13673	if err != nil {
13674		var snapshot bytes.Buffer
13675		io.Copy(&snapshot, ringBuffer)
13676		return out, metadata, &smithy.DeserializationError{
13677			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13678			Snapshot: snapshot.Bytes(),
13679		}
13680	}
13681
13682	return out, metadata, err
13683}
13684
13685func awsRestjson1_deserializeOpErrorGetRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13686	var errorBuffer bytes.Buffer
13687	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13688		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13689	}
13690	errorBody := bytes.NewReader(errorBuffer.Bytes())
13691
13692	errorCode := "UnknownError"
13693	errorMessage := errorCode
13694
13695	code := response.Header.Get("X-Amzn-ErrorType")
13696	if len(code) != 0 {
13697		errorCode = restjson.SanitizeErrorCode(code)
13698	}
13699
13700	var buff [1024]byte
13701	ringBuffer := smithyio.NewRingBuffer(buff[:])
13702
13703	body := io.TeeReader(errorBody, ringBuffer)
13704	decoder := json.NewDecoder(body)
13705	decoder.UseNumber()
13706	code, message, err := restjson.GetErrorInfo(decoder)
13707	if err != nil {
13708		var snapshot bytes.Buffer
13709		io.Copy(&snapshot, ringBuffer)
13710		err = &smithy.DeserializationError{
13711			Err:      fmt.Errorf("failed to decode response body, %w", err),
13712			Snapshot: snapshot.Bytes(),
13713		}
13714		return err
13715	}
13716
13717	errorBody.Seek(0, io.SeekStart)
13718	if len(code) != 0 {
13719		errorCode = restjson.SanitizeErrorCode(code)
13720	}
13721	if len(message) != 0 {
13722		errorMessage = message
13723	}
13724
13725	switch {
13726	case strings.EqualFold("BadRequestException", errorCode):
13727		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13728
13729	case strings.EqualFold("ForbiddenException", errorCode):
13730		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13731
13732	case strings.EqualFold("NotFoundException", errorCode):
13733		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13734
13735	case strings.EqualFold("ServiceFailureException", errorCode):
13736		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13737
13738	case strings.EqualFold("ServiceUnavailableException", errorCode):
13739		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13740
13741	case strings.EqualFold("ThrottledClientException", errorCode):
13742		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13743
13744	case strings.EqualFold("UnauthorizedClientException", errorCode):
13745		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13746
13747	default:
13748		genericError := &smithy.GenericAPIError{
13749			Code:    errorCode,
13750			Message: errorMessage,
13751		}
13752		return genericError
13753
13754	}
13755}
13756
13757func awsRestjson1_deserializeOpDocumentGetRetentionSettingsOutput(v **GetRetentionSettingsOutput, value interface{}) error {
13758	if v == nil {
13759		return fmt.Errorf("unexpected nil of type %T", v)
13760	}
13761	if value == nil {
13762		return nil
13763	}
13764
13765	shape, ok := value.(map[string]interface{})
13766	if !ok {
13767		return fmt.Errorf("unexpected JSON type %v", value)
13768	}
13769
13770	var sv *GetRetentionSettingsOutput
13771	if *v == nil {
13772		sv = &GetRetentionSettingsOutput{}
13773	} else {
13774		sv = *v
13775	}
13776
13777	for key, value := range shape {
13778		switch key {
13779		case "InitiateDeletionTimestamp":
13780			if value != nil {
13781				jtv, ok := value.(string)
13782				if !ok {
13783					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
13784				}
13785				t, err := smithytime.ParseDateTime(jtv)
13786				if err != nil {
13787					return err
13788				}
13789				sv.InitiateDeletionTimestamp = ptr.Time(t)
13790			}
13791
13792		case "RetentionSettings":
13793			if err := awsRestjson1_deserializeDocumentRetentionSettings(&sv.RetentionSettings, value); err != nil {
13794				return err
13795			}
13796
13797		default:
13798			_, _ = key, value
13799
13800		}
13801	}
13802	*v = sv
13803	return nil
13804}
13805
13806type awsRestjson1_deserializeOpGetRoom struct {
13807}
13808
13809func (*awsRestjson1_deserializeOpGetRoom) ID() string {
13810	return "OperationDeserializer"
13811}
13812
13813func (m *awsRestjson1_deserializeOpGetRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13814	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13815) {
13816	out, metadata, err = next.HandleDeserialize(ctx, in)
13817	if err != nil {
13818		return out, metadata, err
13819	}
13820
13821	response, ok := out.RawResponse.(*smithyhttp.Response)
13822	if !ok {
13823		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13824	}
13825
13826	if response.StatusCode < 200 || response.StatusCode >= 300 {
13827		return out, metadata, awsRestjson1_deserializeOpErrorGetRoom(response, &metadata)
13828	}
13829	output := &GetRoomOutput{}
13830	out.Result = output
13831
13832	var buff [1024]byte
13833	ringBuffer := smithyio.NewRingBuffer(buff[:])
13834
13835	body := io.TeeReader(response.Body, ringBuffer)
13836
13837	decoder := json.NewDecoder(body)
13838	decoder.UseNumber()
13839	var shape interface{}
13840	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13841		var snapshot bytes.Buffer
13842		io.Copy(&snapshot, ringBuffer)
13843		err = &smithy.DeserializationError{
13844			Err:      fmt.Errorf("failed to decode response body, %w", err),
13845			Snapshot: snapshot.Bytes(),
13846		}
13847		return out, metadata, err
13848	}
13849
13850	err = awsRestjson1_deserializeOpDocumentGetRoomOutput(&output, shape)
13851	if err != nil {
13852		var snapshot bytes.Buffer
13853		io.Copy(&snapshot, ringBuffer)
13854		return out, metadata, &smithy.DeserializationError{
13855			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13856			Snapshot: snapshot.Bytes(),
13857		}
13858	}
13859
13860	return out, metadata, err
13861}
13862
13863func awsRestjson1_deserializeOpErrorGetRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13864	var errorBuffer bytes.Buffer
13865	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13866		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13867	}
13868	errorBody := bytes.NewReader(errorBuffer.Bytes())
13869
13870	errorCode := "UnknownError"
13871	errorMessage := errorCode
13872
13873	code := response.Header.Get("X-Amzn-ErrorType")
13874	if len(code) != 0 {
13875		errorCode = restjson.SanitizeErrorCode(code)
13876	}
13877
13878	var buff [1024]byte
13879	ringBuffer := smithyio.NewRingBuffer(buff[:])
13880
13881	body := io.TeeReader(errorBody, ringBuffer)
13882	decoder := json.NewDecoder(body)
13883	decoder.UseNumber()
13884	code, message, err := restjson.GetErrorInfo(decoder)
13885	if err != nil {
13886		var snapshot bytes.Buffer
13887		io.Copy(&snapshot, ringBuffer)
13888		err = &smithy.DeserializationError{
13889			Err:      fmt.Errorf("failed to decode response body, %w", err),
13890			Snapshot: snapshot.Bytes(),
13891		}
13892		return err
13893	}
13894
13895	errorBody.Seek(0, io.SeekStart)
13896	if len(code) != 0 {
13897		errorCode = restjson.SanitizeErrorCode(code)
13898	}
13899	if len(message) != 0 {
13900		errorMessage = message
13901	}
13902
13903	switch {
13904	case strings.EqualFold("BadRequestException", errorCode):
13905		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13906
13907	case strings.EqualFold("ForbiddenException", errorCode):
13908		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13909
13910	case strings.EqualFold("NotFoundException", errorCode):
13911		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13912
13913	case strings.EqualFold("ServiceFailureException", errorCode):
13914		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13915
13916	case strings.EqualFold("ServiceUnavailableException", errorCode):
13917		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13918
13919	case strings.EqualFold("ThrottledClientException", errorCode):
13920		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13921
13922	case strings.EqualFold("UnauthorizedClientException", errorCode):
13923		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13924
13925	default:
13926		genericError := &smithy.GenericAPIError{
13927			Code:    errorCode,
13928			Message: errorMessage,
13929		}
13930		return genericError
13931
13932	}
13933}
13934
13935func awsRestjson1_deserializeOpDocumentGetRoomOutput(v **GetRoomOutput, value interface{}) error {
13936	if v == nil {
13937		return fmt.Errorf("unexpected nil of type %T", v)
13938	}
13939	if value == nil {
13940		return nil
13941	}
13942
13943	shape, ok := value.(map[string]interface{})
13944	if !ok {
13945		return fmt.Errorf("unexpected JSON type %v", value)
13946	}
13947
13948	var sv *GetRoomOutput
13949	if *v == nil {
13950		sv = &GetRoomOutput{}
13951	} else {
13952		sv = *v
13953	}
13954
13955	for key, value := range shape {
13956		switch key {
13957		case "Room":
13958			if err := awsRestjson1_deserializeDocumentRoom(&sv.Room, value); err != nil {
13959				return err
13960			}
13961
13962		default:
13963			_, _ = key, value
13964
13965		}
13966	}
13967	*v = sv
13968	return nil
13969}
13970
13971type awsRestjson1_deserializeOpGetSipMediaApplication struct {
13972}
13973
13974func (*awsRestjson1_deserializeOpGetSipMediaApplication) ID() string {
13975	return "OperationDeserializer"
13976}
13977
13978func (m *awsRestjson1_deserializeOpGetSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13979	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13980) {
13981	out, metadata, err = next.HandleDeserialize(ctx, in)
13982	if err != nil {
13983		return out, metadata, err
13984	}
13985
13986	response, ok := out.RawResponse.(*smithyhttp.Response)
13987	if !ok {
13988		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13989	}
13990
13991	if response.StatusCode < 200 || response.StatusCode >= 300 {
13992		return out, metadata, awsRestjson1_deserializeOpErrorGetSipMediaApplication(response, &metadata)
13993	}
13994	output := &GetSipMediaApplicationOutput{}
13995	out.Result = output
13996
13997	var buff [1024]byte
13998	ringBuffer := smithyio.NewRingBuffer(buff[:])
13999
14000	body := io.TeeReader(response.Body, ringBuffer)
14001
14002	decoder := json.NewDecoder(body)
14003	decoder.UseNumber()
14004	var shape interface{}
14005	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14006		var snapshot bytes.Buffer
14007		io.Copy(&snapshot, ringBuffer)
14008		err = &smithy.DeserializationError{
14009			Err:      fmt.Errorf("failed to decode response body, %w", err),
14010			Snapshot: snapshot.Bytes(),
14011		}
14012		return out, metadata, err
14013	}
14014
14015	err = awsRestjson1_deserializeOpDocumentGetSipMediaApplicationOutput(&output, shape)
14016	if err != nil {
14017		var snapshot bytes.Buffer
14018		io.Copy(&snapshot, ringBuffer)
14019		return out, metadata, &smithy.DeserializationError{
14020			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14021			Snapshot: snapshot.Bytes(),
14022		}
14023	}
14024
14025	return out, metadata, err
14026}
14027
14028func awsRestjson1_deserializeOpErrorGetSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14029	var errorBuffer bytes.Buffer
14030	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14031		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14032	}
14033	errorBody := bytes.NewReader(errorBuffer.Bytes())
14034
14035	errorCode := "UnknownError"
14036	errorMessage := errorCode
14037
14038	code := response.Header.Get("X-Amzn-ErrorType")
14039	if len(code) != 0 {
14040		errorCode = restjson.SanitizeErrorCode(code)
14041	}
14042
14043	var buff [1024]byte
14044	ringBuffer := smithyio.NewRingBuffer(buff[:])
14045
14046	body := io.TeeReader(errorBody, ringBuffer)
14047	decoder := json.NewDecoder(body)
14048	decoder.UseNumber()
14049	code, message, err := restjson.GetErrorInfo(decoder)
14050	if err != nil {
14051		var snapshot bytes.Buffer
14052		io.Copy(&snapshot, ringBuffer)
14053		err = &smithy.DeserializationError{
14054			Err:      fmt.Errorf("failed to decode response body, %w", err),
14055			Snapshot: snapshot.Bytes(),
14056		}
14057		return err
14058	}
14059
14060	errorBody.Seek(0, io.SeekStart)
14061	if len(code) != 0 {
14062		errorCode = restjson.SanitizeErrorCode(code)
14063	}
14064	if len(message) != 0 {
14065		errorMessage = message
14066	}
14067
14068	switch {
14069	case strings.EqualFold("BadRequestException", errorCode):
14070		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14071
14072	case strings.EqualFold("ForbiddenException", errorCode):
14073		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14074
14075	case strings.EqualFold("NotFoundException", errorCode):
14076		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14077
14078	case strings.EqualFold("ServiceFailureException", errorCode):
14079		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14080
14081	case strings.EqualFold("ServiceUnavailableException", errorCode):
14082		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14083
14084	case strings.EqualFold("ThrottledClientException", errorCode):
14085		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14086
14087	case strings.EqualFold("UnauthorizedClientException", errorCode):
14088		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14089
14090	default:
14091		genericError := &smithy.GenericAPIError{
14092			Code:    errorCode,
14093			Message: errorMessage,
14094		}
14095		return genericError
14096
14097	}
14098}
14099
14100func awsRestjson1_deserializeOpDocumentGetSipMediaApplicationOutput(v **GetSipMediaApplicationOutput, value interface{}) error {
14101	if v == nil {
14102		return fmt.Errorf("unexpected nil of type %T", v)
14103	}
14104	if value == nil {
14105		return nil
14106	}
14107
14108	shape, ok := value.(map[string]interface{})
14109	if !ok {
14110		return fmt.Errorf("unexpected JSON type %v", value)
14111	}
14112
14113	var sv *GetSipMediaApplicationOutput
14114	if *v == nil {
14115		sv = &GetSipMediaApplicationOutput{}
14116	} else {
14117		sv = *v
14118	}
14119
14120	for key, value := range shape {
14121		switch key {
14122		case "SipMediaApplication":
14123			if err := awsRestjson1_deserializeDocumentSipMediaApplication(&sv.SipMediaApplication, value); err != nil {
14124				return err
14125			}
14126
14127		default:
14128			_, _ = key, value
14129
14130		}
14131	}
14132	*v = sv
14133	return nil
14134}
14135
14136type awsRestjson1_deserializeOpGetSipMediaApplicationLoggingConfiguration struct {
14137}
14138
14139func (*awsRestjson1_deserializeOpGetSipMediaApplicationLoggingConfiguration) ID() string {
14140	return "OperationDeserializer"
14141}
14142
14143func (m *awsRestjson1_deserializeOpGetSipMediaApplicationLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14144	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14145) {
14146	out, metadata, err = next.HandleDeserialize(ctx, in)
14147	if err != nil {
14148		return out, metadata, err
14149	}
14150
14151	response, ok := out.RawResponse.(*smithyhttp.Response)
14152	if !ok {
14153		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14154	}
14155
14156	if response.StatusCode < 200 || response.StatusCode >= 300 {
14157		return out, metadata, awsRestjson1_deserializeOpErrorGetSipMediaApplicationLoggingConfiguration(response, &metadata)
14158	}
14159	output := &GetSipMediaApplicationLoggingConfigurationOutput{}
14160	out.Result = output
14161
14162	var buff [1024]byte
14163	ringBuffer := smithyio.NewRingBuffer(buff[:])
14164
14165	body := io.TeeReader(response.Body, ringBuffer)
14166
14167	decoder := json.NewDecoder(body)
14168	decoder.UseNumber()
14169	var shape interface{}
14170	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14171		var snapshot bytes.Buffer
14172		io.Copy(&snapshot, ringBuffer)
14173		err = &smithy.DeserializationError{
14174			Err:      fmt.Errorf("failed to decode response body, %w", err),
14175			Snapshot: snapshot.Bytes(),
14176		}
14177		return out, metadata, err
14178	}
14179
14180	err = awsRestjson1_deserializeOpDocumentGetSipMediaApplicationLoggingConfigurationOutput(&output, shape)
14181	if err != nil {
14182		var snapshot bytes.Buffer
14183		io.Copy(&snapshot, ringBuffer)
14184		return out, metadata, &smithy.DeserializationError{
14185			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14186			Snapshot: snapshot.Bytes(),
14187		}
14188	}
14189
14190	return out, metadata, err
14191}
14192
14193func awsRestjson1_deserializeOpErrorGetSipMediaApplicationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14194	var errorBuffer bytes.Buffer
14195	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14196		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14197	}
14198	errorBody := bytes.NewReader(errorBuffer.Bytes())
14199
14200	errorCode := "UnknownError"
14201	errorMessage := errorCode
14202
14203	code := response.Header.Get("X-Amzn-ErrorType")
14204	if len(code) != 0 {
14205		errorCode = restjson.SanitizeErrorCode(code)
14206	}
14207
14208	var buff [1024]byte
14209	ringBuffer := smithyio.NewRingBuffer(buff[:])
14210
14211	body := io.TeeReader(errorBody, ringBuffer)
14212	decoder := json.NewDecoder(body)
14213	decoder.UseNumber()
14214	code, message, err := restjson.GetErrorInfo(decoder)
14215	if err != nil {
14216		var snapshot bytes.Buffer
14217		io.Copy(&snapshot, ringBuffer)
14218		err = &smithy.DeserializationError{
14219			Err:      fmt.Errorf("failed to decode response body, %w", err),
14220			Snapshot: snapshot.Bytes(),
14221		}
14222		return err
14223	}
14224
14225	errorBody.Seek(0, io.SeekStart)
14226	if len(code) != 0 {
14227		errorCode = restjson.SanitizeErrorCode(code)
14228	}
14229	if len(message) != 0 {
14230		errorMessage = message
14231	}
14232
14233	switch {
14234	case strings.EqualFold("BadRequestException", errorCode):
14235		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14236
14237	case strings.EqualFold("ForbiddenException", errorCode):
14238		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14239
14240	case strings.EqualFold("NotFoundException", errorCode):
14241		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14242
14243	case strings.EqualFold("ServiceFailureException", errorCode):
14244		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14245
14246	case strings.EqualFold("ServiceUnavailableException", errorCode):
14247		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14248
14249	case strings.EqualFold("ThrottledClientException", errorCode):
14250		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14251
14252	case strings.EqualFold("UnauthorizedClientException", errorCode):
14253		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14254
14255	default:
14256		genericError := &smithy.GenericAPIError{
14257			Code:    errorCode,
14258			Message: errorMessage,
14259		}
14260		return genericError
14261
14262	}
14263}
14264
14265func awsRestjson1_deserializeOpDocumentGetSipMediaApplicationLoggingConfigurationOutput(v **GetSipMediaApplicationLoggingConfigurationOutput, value interface{}) error {
14266	if v == nil {
14267		return fmt.Errorf("unexpected nil of type %T", v)
14268	}
14269	if value == nil {
14270		return nil
14271	}
14272
14273	shape, ok := value.(map[string]interface{})
14274	if !ok {
14275		return fmt.Errorf("unexpected JSON type %v", value)
14276	}
14277
14278	var sv *GetSipMediaApplicationLoggingConfigurationOutput
14279	if *v == nil {
14280		sv = &GetSipMediaApplicationLoggingConfigurationOutput{}
14281	} else {
14282		sv = *v
14283	}
14284
14285	for key, value := range shape {
14286		switch key {
14287		case "SipMediaApplicationLoggingConfiguration":
14288			if err := awsRestjson1_deserializeDocumentSipMediaApplicationLoggingConfiguration(&sv.SipMediaApplicationLoggingConfiguration, value); err != nil {
14289				return err
14290			}
14291
14292		default:
14293			_, _ = key, value
14294
14295		}
14296	}
14297	*v = sv
14298	return nil
14299}
14300
14301type awsRestjson1_deserializeOpGetSipRule struct {
14302}
14303
14304func (*awsRestjson1_deserializeOpGetSipRule) ID() string {
14305	return "OperationDeserializer"
14306}
14307
14308func (m *awsRestjson1_deserializeOpGetSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14309	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14310) {
14311	out, metadata, err = next.HandleDeserialize(ctx, in)
14312	if err != nil {
14313		return out, metadata, err
14314	}
14315
14316	response, ok := out.RawResponse.(*smithyhttp.Response)
14317	if !ok {
14318		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14319	}
14320
14321	if response.StatusCode < 200 || response.StatusCode >= 300 {
14322		return out, metadata, awsRestjson1_deserializeOpErrorGetSipRule(response, &metadata)
14323	}
14324	output := &GetSipRuleOutput{}
14325	out.Result = output
14326
14327	var buff [1024]byte
14328	ringBuffer := smithyio.NewRingBuffer(buff[:])
14329
14330	body := io.TeeReader(response.Body, ringBuffer)
14331
14332	decoder := json.NewDecoder(body)
14333	decoder.UseNumber()
14334	var shape interface{}
14335	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14336		var snapshot bytes.Buffer
14337		io.Copy(&snapshot, ringBuffer)
14338		err = &smithy.DeserializationError{
14339			Err:      fmt.Errorf("failed to decode response body, %w", err),
14340			Snapshot: snapshot.Bytes(),
14341		}
14342		return out, metadata, err
14343	}
14344
14345	err = awsRestjson1_deserializeOpDocumentGetSipRuleOutput(&output, shape)
14346	if err != nil {
14347		var snapshot bytes.Buffer
14348		io.Copy(&snapshot, ringBuffer)
14349		return out, metadata, &smithy.DeserializationError{
14350			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14351			Snapshot: snapshot.Bytes(),
14352		}
14353	}
14354
14355	return out, metadata, err
14356}
14357
14358func awsRestjson1_deserializeOpErrorGetSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14359	var errorBuffer bytes.Buffer
14360	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14361		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14362	}
14363	errorBody := bytes.NewReader(errorBuffer.Bytes())
14364
14365	errorCode := "UnknownError"
14366	errorMessage := errorCode
14367
14368	code := response.Header.Get("X-Amzn-ErrorType")
14369	if len(code) != 0 {
14370		errorCode = restjson.SanitizeErrorCode(code)
14371	}
14372
14373	var buff [1024]byte
14374	ringBuffer := smithyio.NewRingBuffer(buff[:])
14375
14376	body := io.TeeReader(errorBody, ringBuffer)
14377	decoder := json.NewDecoder(body)
14378	decoder.UseNumber()
14379	code, message, err := restjson.GetErrorInfo(decoder)
14380	if err != nil {
14381		var snapshot bytes.Buffer
14382		io.Copy(&snapshot, ringBuffer)
14383		err = &smithy.DeserializationError{
14384			Err:      fmt.Errorf("failed to decode response body, %w", err),
14385			Snapshot: snapshot.Bytes(),
14386		}
14387		return err
14388	}
14389
14390	errorBody.Seek(0, io.SeekStart)
14391	if len(code) != 0 {
14392		errorCode = restjson.SanitizeErrorCode(code)
14393	}
14394	if len(message) != 0 {
14395		errorMessage = message
14396	}
14397
14398	switch {
14399	case strings.EqualFold("BadRequestException", errorCode):
14400		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14401
14402	case strings.EqualFold("ForbiddenException", errorCode):
14403		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14404
14405	case strings.EqualFold("NotFoundException", errorCode):
14406		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14407
14408	case strings.EqualFold("ServiceFailureException", errorCode):
14409		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14410
14411	case strings.EqualFold("ServiceUnavailableException", errorCode):
14412		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14413
14414	case strings.EqualFold("ThrottledClientException", errorCode):
14415		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14416
14417	case strings.EqualFold("UnauthorizedClientException", errorCode):
14418		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14419
14420	default:
14421		genericError := &smithy.GenericAPIError{
14422			Code:    errorCode,
14423			Message: errorMessage,
14424		}
14425		return genericError
14426
14427	}
14428}
14429
14430func awsRestjson1_deserializeOpDocumentGetSipRuleOutput(v **GetSipRuleOutput, value interface{}) error {
14431	if v == nil {
14432		return fmt.Errorf("unexpected nil of type %T", v)
14433	}
14434	if value == nil {
14435		return nil
14436	}
14437
14438	shape, ok := value.(map[string]interface{})
14439	if !ok {
14440		return fmt.Errorf("unexpected JSON type %v", value)
14441	}
14442
14443	var sv *GetSipRuleOutput
14444	if *v == nil {
14445		sv = &GetSipRuleOutput{}
14446	} else {
14447		sv = *v
14448	}
14449
14450	for key, value := range shape {
14451		switch key {
14452		case "SipRule":
14453			if err := awsRestjson1_deserializeDocumentSipRule(&sv.SipRule, value); err != nil {
14454				return err
14455			}
14456
14457		default:
14458			_, _ = key, value
14459
14460		}
14461	}
14462	*v = sv
14463	return nil
14464}
14465
14466type awsRestjson1_deserializeOpGetUser struct {
14467}
14468
14469func (*awsRestjson1_deserializeOpGetUser) ID() string {
14470	return "OperationDeserializer"
14471}
14472
14473func (m *awsRestjson1_deserializeOpGetUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14474	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14475) {
14476	out, metadata, err = next.HandleDeserialize(ctx, in)
14477	if err != nil {
14478		return out, metadata, err
14479	}
14480
14481	response, ok := out.RawResponse.(*smithyhttp.Response)
14482	if !ok {
14483		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14484	}
14485
14486	if response.StatusCode < 200 || response.StatusCode >= 300 {
14487		return out, metadata, awsRestjson1_deserializeOpErrorGetUser(response, &metadata)
14488	}
14489	output := &GetUserOutput{}
14490	out.Result = output
14491
14492	var buff [1024]byte
14493	ringBuffer := smithyio.NewRingBuffer(buff[:])
14494
14495	body := io.TeeReader(response.Body, ringBuffer)
14496
14497	decoder := json.NewDecoder(body)
14498	decoder.UseNumber()
14499	var shape interface{}
14500	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14501		var snapshot bytes.Buffer
14502		io.Copy(&snapshot, ringBuffer)
14503		err = &smithy.DeserializationError{
14504			Err:      fmt.Errorf("failed to decode response body, %w", err),
14505			Snapshot: snapshot.Bytes(),
14506		}
14507		return out, metadata, err
14508	}
14509
14510	err = awsRestjson1_deserializeOpDocumentGetUserOutput(&output, shape)
14511	if err != nil {
14512		var snapshot bytes.Buffer
14513		io.Copy(&snapshot, ringBuffer)
14514		return out, metadata, &smithy.DeserializationError{
14515			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14516			Snapshot: snapshot.Bytes(),
14517		}
14518	}
14519
14520	return out, metadata, err
14521}
14522
14523func awsRestjson1_deserializeOpErrorGetUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14524	var errorBuffer bytes.Buffer
14525	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14526		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14527	}
14528	errorBody := bytes.NewReader(errorBuffer.Bytes())
14529
14530	errorCode := "UnknownError"
14531	errorMessage := errorCode
14532
14533	code := response.Header.Get("X-Amzn-ErrorType")
14534	if len(code) != 0 {
14535		errorCode = restjson.SanitizeErrorCode(code)
14536	}
14537
14538	var buff [1024]byte
14539	ringBuffer := smithyio.NewRingBuffer(buff[:])
14540
14541	body := io.TeeReader(errorBody, ringBuffer)
14542	decoder := json.NewDecoder(body)
14543	decoder.UseNumber()
14544	code, message, err := restjson.GetErrorInfo(decoder)
14545	if err != nil {
14546		var snapshot bytes.Buffer
14547		io.Copy(&snapshot, ringBuffer)
14548		err = &smithy.DeserializationError{
14549			Err:      fmt.Errorf("failed to decode response body, %w", err),
14550			Snapshot: snapshot.Bytes(),
14551		}
14552		return err
14553	}
14554
14555	errorBody.Seek(0, io.SeekStart)
14556	if len(code) != 0 {
14557		errorCode = restjson.SanitizeErrorCode(code)
14558	}
14559	if len(message) != 0 {
14560		errorMessage = message
14561	}
14562
14563	switch {
14564	case strings.EqualFold("BadRequestException", errorCode):
14565		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14566
14567	case strings.EqualFold("ForbiddenException", errorCode):
14568		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14569
14570	case strings.EqualFold("NotFoundException", errorCode):
14571		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14572
14573	case strings.EqualFold("ServiceFailureException", errorCode):
14574		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14575
14576	case strings.EqualFold("ServiceUnavailableException", errorCode):
14577		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14578
14579	case strings.EqualFold("ThrottledClientException", errorCode):
14580		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14581
14582	case strings.EqualFold("UnauthorizedClientException", errorCode):
14583		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14584
14585	default:
14586		genericError := &smithy.GenericAPIError{
14587			Code:    errorCode,
14588			Message: errorMessage,
14589		}
14590		return genericError
14591
14592	}
14593}
14594
14595func awsRestjson1_deserializeOpDocumentGetUserOutput(v **GetUserOutput, value interface{}) error {
14596	if v == nil {
14597		return fmt.Errorf("unexpected nil of type %T", v)
14598	}
14599	if value == nil {
14600		return nil
14601	}
14602
14603	shape, ok := value.(map[string]interface{})
14604	if !ok {
14605		return fmt.Errorf("unexpected JSON type %v", value)
14606	}
14607
14608	var sv *GetUserOutput
14609	if *v == nil {
14610		sv = &GetUserOutput{}
14611	} else {
14612		sv = *v
14613	}
14614
14615	for key, value := range shape {
14616		switch key {
14617		case "User":
14618			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
14619				return err
14620			}
14621
14622		default:
14623			_, _ = key, value
14624
14625		}
14626	}
14627	*v = sv
14628	return nil
14629}
14630
14631type awsRestjson1_deserializeOpGetUserSettings struct {
14632}
14633
14634func (*awsRestjson1_deserializeOpGetUserSettings) ID() string {
14635	return "OperationDeserializer"
14636}
14637
14638func (m *awsRestjson1_deserializeOpGetUserSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14639	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14640) {
14641	out, metadata, err = next.HandleDeserialize(ctx, in)
14642	if err != nil {
14643		return out, metadata, err
14644	}
14645
14646	response, ok := out.RawResponse.(*smithyhttp.Response)
14647	if !ok {
14648		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14649	}
14650
14651	if response.StatusCode < 200 || response.StatusCode >= 300 {
14652		return out, metadata, awsRestjson1_deserializeOpErrorGetUserSettings(response, &metadata)
14653	}
14654	output := &GetUserSettingsOutput{}
14655	out.Result = output
14656
14657	var buff [1024]byte
14658	ringBuffer := smithyio.NewRingBuffer(buff[:])
14659
14660	body := io.TeeReader(response.Body, ringBuffer)
14661
14662	decoder := json.NewDecoder(body)
14663	decoder.UseNumber()
14664	var shape interface{}
14665	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14666		var snapshot bytes.Buffer
14667		io.Copy(&snapshot, ringBuffer)
14668		err = &smithy.DeserializationError{
14669			Err:      fmt.Errorf("failed to decode response body, %w", err),
14670			Snapshot: snapshot.Bytes(),
14671		}
14672		return out, metadata, err
14673	}
14674
14675	err = awsRestjson1_deserializeOpDocumentGetUserSettingsOutput(&output, shape)
14676	if err != nil {
14677		var snapshot bytes.Buffer
14678		io.Copy(&snapshot, ringBuffer)
14679		return out, metadata, &smithy.DeserializationError{
14680			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14681			Snapshot: snapshot.Bytes(),
14682		}
14683	}
14684
14685	return out, metadata, err
14686}
14687
14688func awsRestjson1_deserializeOpErrorGetUserSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14689	var errorBuffer bytes.Buffer
14690	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14691		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14692	}
14693	errorBody := bytes.NewReader(errorBuffer.Bytes())
14694
14695	errorCode := "UnknownError"
14696	errorMessage := errorCode
14697
14698	code := response.Header.Get("X-Amzn-ErrorType")
14699	if len(code) != 0 {
14700		errorCode = restjson.SanitizeErrorCode(code)
14701	}
14702
14703	var buff [1024]byte
14704	ringBuffer := smithyio.NewRingBuffer(buff[:])
14705
14706	body := io.TeeReader(errorBody, ringBuffer)
14707	decoder := json.NewDecoder(body)
14708	decoder.UseNumber()
14709	code, message, err := restjson.GetErrorInfo(decoder)
14710	if err != nil {
14711		var snapshot bytes.Buffer
14712		io.Copy(&snapshot, ringBuffer)
14713		err = &smithy.DeserializationError{
14714			Err:      fmt.Errorf("failed to decode response body, %w", err),
14715			Snapshot: snapshot.Bytes(),
14716		}
14717		return err
14718	}
14719
14720	errorBody.Seek(0, io.SeekStart)
14721	if len(code) != 0 {
14722		errorCode = restjson.SanitizeErrorCode(code)
14723	}
14724	if len(message) != 0 {
14725		errorMessage = message
14726	}
14727
14728	switch {
14729	case strings.EqualFold("BadRequestException", errorCode):
14730		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14731
14732	case strings.EqualFold("ForbiddenException", errorCode):
14733		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14734
14735	case strings.EqualFold("NotFoundException", errorCode):
14736		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14737
14738	case strings.EqualFold("ServiceFailureException", errorCode):
14739		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14740
14741	case strings.EqualFold("ServiceUnavailableException", errorCode):
14742		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14743
14744	case strings.EqualFold("ThrottledClientException", errorCode):
14745		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14746
14747	case strings.EqualFold("UnauthorizedClientException", errorCode):
14748		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14749
14750	default:
14751		genericError := &smithy.GenericAPIError{
14752			Code:    errorCode,
14753			Message: errorMessage,
14754		}
14755		return genericError
14756
14757	}
14758}
14759
14760func awsRestjson1_deserializeOpDocumentGetUserSettingsOutput(v **GetUserSettingsOutput, value interface{}) error {
14761	if v == nil {
14762		return fmt.Errorf("unexpected nil of type %T", v)
14763	}
14764	if value == nil {
14765		return nil
14766	}
14767
14768	shape, ok := value.(map[string]interface{})
14769	if !ok {
14770		return fmt.Errorf("unexpected JSON type %v", value)
14771	}
14772
14773	var sv *GetUserSettingsOutput
14774	if *v == nil {
14775		sv = &GetUserSettingsOutput{}
14776	} else {
14777		sv = *v
14778	}
14779
14780	for key, value := range shape {
14781		switch key {
14782		case "UserSettings":
14783			if err := awsRestjson1_deserializeDocumentUserSettings(&sv.UserSettings, value); err != nil {
14784				return err
14785			}
14786
14787		default:
14788			_, _ = key, value
14789
14790		}
14791	}
14792	*v = sv
14793	return nil
14794}
14795
14796type awsRestjson1_deserializeOpGetVoiceConnector struct {
14797}
14798
14799func (*awsRestjson1_deserializeOpGetVoiceConnector) ID() string {
14800	return "OperationDeserializer"
14801}
14802
14803func (m *awsRestjson1_deserializeOpGetVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14804	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14805) {
14806	out, metadata, err = next.HandleDeserialize(ctx, in)
14807	if err != nil {
14808		return out, metadata, err
14809	}
14810
14811	response, ok := out.RawResponse.(*smithyhttp.Response)
14812	if !ok {
14813		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14814	}
14815
14816	if response.StatusCode < 200 || response.StatusCode >= 300 {
14817		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnector(response, &metadata)
14818	}
14819	output := &GetVoiceConnectorOutput{}
14820	out.Result = output
14821
14822	var buff [1024]byte
14823	ringBuffer := smithyio.NewRingBuffer(buff[:])
14824
14825	body := io.TeeReader(response.Body, ringBuffer)
14826
14827	decoder := json.NewDecoder(body)
14828	decoder.UseNumber()
14829	var shape interface{}
14830	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14831		var snapshot bytes.Buffer
14832		io.Copy(&snapshot, ringBuffer)
14833		err = &smithy.DeserializationError{
14834			Err:      fmt.Errorf("failed to decode response body, %w", err),
14835			Snapshot: snapshot.Bytes(),
14836		}
14837		return out, metadata, err
14838	}
14839
14840	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorOutput(&output, shape)
14841	if err != nil {
14842		var snapshot bytes.Buffer
14843		io.Copy(&snapshot, ringBuffer)
14844		return out, metadata, &smithy.DeserializationError{
14845			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14846			Snapshot: snapshot.Bytes(),
14847		}
14848	}
14849
14850	return out, metadata, err
14851}
14852
14853func awsRestjson1_deserializeOpErrorGetVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14854	var errorBuffer bytes.Buffer
14855	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14856		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14857	}
14858	errorBody := bytes.NewReader(errorBuffer.Bytes())
14859
14860	errorCode := "UnknownError"
14861	errorMessage := errorCode
14862
14863	code := response.Header.Get("X-Amzn-ErrorType")
14864	if len(code) != 0 {
14865		errorCode = restjson.SanitizeErrorCode(code)
14866	}
14867
14868	var buff [1024]byte
14869	ringBuffer := smithyio.NewRingBuffer(buff[:])
14870
14871	body := io.TeeReader(errorBody, ringBuffer)
14872	decoder := json.NewDecoder(body)
14873	decoder.UseNumber()
14874	code, message, err := restjson.GetErrorInfo(decoder)
14875	if err != nil {
14876		var snapshot bytes.Buffer
14877		io.Copy(&snapshot, ringBuffer)
14878		err = &smithy.DeserializationError{
14879			Err:      fmt.Errorf("failed to decode response body, %w", err),
14880			Snapshot: snapshot.Bytes(),
14881		}
14882		return err
14883	}
14884
14885	errorBody.Seek(0, io.SeekStart)
14886	if len(code) != 0 {
14887		errorCode = restjson.SanitizeErrorCode(code)
14888	}
14889	if len(message) != 0 {
14890		errorMessage = message
14891	}
14892
14893	switch {
14894	case strings.EqualFold("BadRequestException", errorCode):
14895		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14896
14897	case strings.EqualFold("ForbiddenException", errorCode):
14898		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14899
14900	case strings.EqualFold("NotFoundException", errorCode):
14901		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14902
14903	case strings.EqualFold("ServiceFailureException", errorCode):
14904		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14905
14906	case strings.EqualFold("ServiceUnavailableException", errorCode):
14907		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14908
14909	case strings.EqualFold("ThrottledClientException", errorCode):
14910		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14911
14912	case strings.EqualFold("UnauthorizedClientException", errorCode):
14913		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14914
14915	default:
14916		genericError := &smithy.GenericAPIError{
14917			Code:    errorCode,
14918			Message: errorMessage,
14919		}
14920		return genericError
14921
14922	}
14923}
14924
14925func awsRestjson1_deserializeOpDocumentGetVoiceConnectorOutput(v **GetVoiceConnectorOutput, value interface{}) error {
14926	if v == nil {
14927		return fmt.Errorf("unexpected nil of type %T", v)
14928	}
14929	if value == nil {
14930		return nil
14931	}
14932
14933	shape, ok := value.(map[string]interface{})
14934	if !ok {
14935		return fmt.Errorf("unexpected JSON type %v", value)
14936	}
14937
14938	var sv *GetVoiceConnectorOutput
14939	if *v == nil {
14940		sv = &GetVoiceConnectorOutput{}
14941	} else {
14942		sv = *v
14943	}
14944
14945	for key, value := range shape {
14946		switch key {
14947		case "VoiceConnector":
14948			if err := awsRestjson1_deserializeDocumentVoiceConnector(&sv.VoiceConnector, value); err != nil {
14949				return err
14950			}
14951
14952		default:
14953			_, _ = key, value
14954
14955		}
14956	}
14957	*v = sv
14958	return nil
14959}
14960
14961type awsRestjson1_deserializeOpGetVoiceConnectorEmergencyCallingConfiguration struct {
14962}
14963
14964func (*awsRestjson1_deserializeOpGetVoiceConnectorEmergencyCallingConfiguration) ID() string {
14965	return "OperationDeserializer"
14966}
14967
14968func (m *awsRestjson1_deserializeOpGetVoiceConnectorEmergencyCallingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14969	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14970) {
14971	out, metadata, err = next.HandleDeserialize(ctx, in)
14972	if err != nil {
14973		return out, metadata, err
14974	}
14975
14976	response, ok := out.RawResponse.(*smithyhttp.Response)
14977	if !ok {
14978		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14979	}
14980
14981	if response.StatusCode < 200 || response.StatusCode >= 300 {
14982		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorEmergencyCallingConfiguration(response, &metadata)
14983	}
14984	output := &GetVoiceConnectorEmergencyCallingConfigurationOutput{}
14985	out.Result = output
14986
14987	var buff [1024]byte
14988	ringBuffer := smithyio.NewRingBuffer(buff[:])
14989
14990	body := io.TeeReader(response.Body, ringBuffer)
14991
14992	decoder := json.NewDecoder(body)
14993	decoder.UseNumber()
14994	var shape interface{}
14995	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14996		var snapshot bytes.Buffer
14997		io.Copy(&snapshot, ringBuffer)
14998		err = &smithy.DeserializationError{
14999			Err:      fmt.Errorf("failed to decode response body, %w", err),
15000			Snapshot: snapshot.Bytes(),
15001		}
15002		return out, metadata, err
15003	}
15004
15005	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorEmergencyCallingConfigurationOutput(&output, shape)
15006	if err != nil {
15007		var snapshot bytes.Buffer
15008		io.Copy(&snapshot, ringBuffer)
15009		return out, metadata, &smithy.DeserializationError{
15010			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15011			Snapshot: snapshot.Bytes(),
15012		}
15013	}
15014
15015	return out, metadata, err
15016}
15017
15018func awsRestjson1_deserializeOpErrorGetVoiceConnectorEmergencyCallingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15019	var errorBuffer bytes.Buffer
15020	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15021		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15022	}
15023	errorBody := bytes.NewReader(errorBuffer.Bytes())
15024
15025	errorCode := "UnknownError"
15026	errorMessage := errorCode
15027
15028	code := response.Header.Get("X-Amzn-ErrorType")
15029	if len(code) != 0 {
15030		errorCode = restjson.SanitizeErrorCode(code)
15031	}
15032
15033	var buff [1024]byte
15034	ringBuffer := smithyio.NewRingBuffer(buff[:])
15035
15036	body := io.TeeReader(errorBody, ringBuffer)
15037	decoder := json.NewDecoder(body)
15038	decoder.UseNumber()
15039	code, message, err := restjson.GetErrorInfo(decoder)
15040	if err != nil {
15041		var snapshot bytes.Buffer
15042		io.Copy(&snapshot, ringBuffer)
15043		err = &smithy.DeserializationError{
15044			Err:      fmt.Errorf("failed to decode response body, %w", err),
15045			Snapshot: snapshot.Bytes(),
15046		}
15047		return err
15048	}
15049
15050	errorBody.Seek(0, io.SeekStart)
15051	if len(code) != 0 {
15052		errorCode = restjson.SanitizeErrorCode(code)
15053	}
15054	if len(message) != 0 {
15055		errorMessage = message
15056	}
15057
15058	switch {
15059	case strings.EqualFold("BadRequestException", errorCode):
15060		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15061
15062	case strings.EqualFold("ForbiddenException", errorCode):
15063		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15064
15065	case strings.EqualFold("NotFoundException", errorCode):
15066		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15067
15068	case strings.EqualFold("ServiceFailureException", errorCode):
15069		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15070
15071	case strings.EqualFold("ServiceUnavailableException", errorCode):
15072		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15073
15074	case strings.EqualFold("ThrottledClientException", errorCode):
15075		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15076
15077	case strings.EqualFold("UnauthorizedClientException", errorCode):
15078		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15079
15080	default:
15081		genericError := &smithy.GenericAPIError{
15082			Code:    errorCode,
15083			Message: errorMessage,
15084		}
15085		return genericError
15086
15087	}
15088}
15089
15090func awsRestjson1_deserializeOpDocumentGetVoiceConnectorEmergencyCallingConfigurationOutput(v **GetVoiceConnectorEmergencyCallingConfigurationOutput, value interface{}) error {
15091	if v == nil {
15092		return fmt.Errorf("unexpected nil of type %T", v)
15093	}
15094	if value == nil {
15095		return nil
15096	}
15097
15098	shape, ok := value.(map[string]interface{})
15099	if !ok {
15100		return fmt.Errorf("unexpected JSON type %v", value)
15101	}
15102
15103	var sv *GetVoiceConnectorEmergencyCallingConfigurationOutput
15104	if *v == nil {
15105		sv = &GetVoiceConnectorEmergencyCallingConfigurationOutput{}
15106	} else {
15107		sv = *v
15108	}
15109
15110	for key, value := range shape {
15111		switch key {
15112		case "EmergencyCallingConfiguration":
15113			if err := awsRestjson1_deserializeDocumentEmergencyCallingConfiguration(&sv.EmergencyCallingConfiguration, value); err != nil {
15114				return err
15115			}
15116
15117		default:
15118			_, _ = key, value
15119
15120		}
15121	}
15122	*v = sv
15123	return nil
15124}
15125
15126type awsRestjson1_deserializeOpGetVoiceConnectorGroup struct {
15127}
15128
15129func (*awsRestjson1_deserializeOpGetVoiceConnectorGroup) ID() string {
15130	return "OperationDeserializer"
15131}
15132
15133func (m *awsRestjson1_deserializeOpGetVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15134	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15135) {
15136	out, metadata, err = next.HandleDeserialize(ctx, in)
15137	if err != nil {
15138		return out, metadata, err
15139	}
15140
15141	response, ok := out.RawResponse.(*smithyhttp.Response)
15142	if !ok {
15143		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15144	}
15145
15146	if response.StatusCode < 200 || response.StatusCode >= 300 {
15147		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorGroup(response, &metadata)
15148	}
15149	output := &GetVoiceConnectorGroupOutput{}
15150	out.Result = output
15151
15152	var buff [1024]byte
15153	ringBuffer := smithyio.NewRingBuffer(buff[:])
15154
15155	body := io.TeeReader(response.Body, ringBuffer)
15156
15157	decoder := json.NewDecoder(body)
15158	decoder.UseNumber()
15159	var shape interface{}
15160	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15161		var snapshot bytes.Buffer
15162		io.Copy(&snapshot, ringBuffer)
15163		err = &smithy.DeserializationError{
15164			Err:      fmt.Errorf("failed to decode response body, %w", err),
15165			Snapshot: snapshot.Bytes(),
15166		}
15167		return out, metadata, err
15168	}
15169
15170	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorGroupOutput(&output, shape)
15171	if err != nil {
15172		var snapshot bytes.Buffer
15173		io.Copy(&snapshot, ringBuffer)
15174		return out, metadata, &smithy.DeserializationError{
15175			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15176			Snapshot: snapshot.Bytes(),
15177		}
15178	}
15179
15180	return out, metadata, err
15181}
15182
15183func awsRestjson1_deserializeOpErrorGetVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15184	var errorBuffer bytes.Buffer
15185	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15186		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15187	}
15188	errorBody := bytes.NewReader(errorBuffer.Bytes())
15189
15190	errorCode := "UnknownError"
15191	errorMessage := errorCode
15192
15193	code := response.Header.Get("X-Amzn-ErrorType")
15194	if len(code) != 0 {
15195		errorCode = restjson.SanitizeErrorCode(code)
15196	}
15197
15198	var buff [1024]byte
15199	ringBuffer := smithyio.NewRingBuffer(buff[:])
15200
15201	body := io.TeeReader(errorBody, ringBuffer)
15202	decoder := json.NewDecoder(body)
15203	decoder.UseNumber()
15204	code, message, err := restjson.GetErrorInfo(decoder)
15205	if err != nil {
15206		var snapshot bytes.Buffer
15207		io.Copy(&snapshot, ringBuffer)
15208		err = &smithy.DeserializationError{
15209			Err:      fmt.Errorf("failed to decode response body, %w", err),
15210			Snapshot: snapshot.Bytes(),
15211		}
15212		return err
15213	}
15214
15215	errorBody.Seek(0, io.SeekStart)
15216	if len(code) != 0 {
15217		errorCode = restjson.SanitizeErrorCode(code)
15218	}
15219	if len(message) != 0 {
15220		errorMessage = message
15221	}
15222
15223	switch {
15224	case strings.EqualFold("BadRequestException", errorCode):
15225		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15226
15227	case strings.EqualFold("ForbiddenException", errorCode):
15228		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15229
15230	case strings.EqualFold("NotFoundException", errorCode):
15231		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15232
15233	case strings.EqualFold("ServiceFailureException", errorCode):
15234		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15235
15236	case strings.EqualFold("ServiceUnavailableException", errorCode):
15237		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15238
15239	case strings.EqualFold("ThrottledClientException", errorCode):
15240		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15241
15242	case strings.EqualFold("UnauthorizedClientException", errorCode):
15243		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15244
15245	default:
15246		genericError := &smithy.GenericAPIError{
15247			Code:    errorCode,
15248			Message: errorMessage,
15249		}
15250		return genericError
15251
15252	}
15253}
15254
15255func awsRestjson1_deserializeOpDocumentGetVoiceConnectorGroupOutput(v **GetVoiceConnectorGroupOutput, value interface{}) error {
15256	if v == nil {
15257		return fmt.Errorf("unexpected nil of type %T", v)
15258	}
15259	if value == nil {
15260		return nil
15261	}
15262
15263	shape, ok := value.(map[string]interface{})
15264	if !ok {
15265		return fmt.Errorf("unexpected JSON type %v", value)
15266	}
15267
15268	var sv *GetVoiceConnectorGroupOutput
15269	if *v == nil {
15270		sv = &GetVoiceConnectorGroupOutput{}
15271	} else {
15272		sv = *v
15273	}
15274
15275	for key, value := range shape {
15276		switch key {
15277		case "VoiceConnectorGroup":
15278			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&sv.VoiceConnectorGroup, value); err != nil {
15279				return err
15280			}
15281
15282		default:
15283			_, _ = key, value
15284
15285		}
15286	}
15287	*v = sv
15288	return nil
15289}
15290
15291type awsRestjson1_deserializeOpGetVoiceConnectorLoggingConfiguration struct {
15292}
15293
15294func (*awsRestjson1_deserializeOpGetVoiceConnectorLoggingConfiguration) ID() string {
15295	return "OperationDeserializer"
15296}
15297
15298func (m *awsRestjson1_deserializeOpGetVoiceConnectorLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15299	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15300) {
15301	out, metadata, err = next.HandleDeserialize(ctx, in)
15302	if err != nil {
15303		return out, metadata, err
15304	}
15305
15306	response, ok := out.RawResponse.(*smithyhttp.Response)
15307	if !ok {
15308		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15309	}
15310
15311	if response.StatusCode < 200 || response.StatusCode >= 300 {
15312		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorLoggingConfiguration(response, &metadata)
15313	}
15314	output := &GetVoiceConnectorLoggingConfigurationOutput{}
15315	out.Result = output
15316
15317	var buff [1024]byte
15318	ringBuffer := smithyio.NewRingBuffer(buff[:])
15319
15320	body := io.TeeReader(response.Body, ringBuffer)
15321
15322	decoder := json.NewDecoder(body)
15323	decoder.UseNumber()
15324	var shape interface{}
15325	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15326		var snapshot bytes.Buffer
15327		io.Copy(&snapshot, ringBuffer)
15328		err = &smithy.DeserializationError{
15329			Err:      fmt.Errorf("failed to decode response body, %w", err),
15330			Snapshot: snapshot.Bytes(),
15331		}
15332		return out, metadata, err
15333	}
15334
15335	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorLoggingConfigurationOutput(&output, shape)
15336	if err != nil {
15337		var snapshot bytes.Buffer
15338		io.Copy(&snapshot, ringBuffer)
15339		return out, metadata, &smithy.DeserializationError{
15340			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15341			Snapshot: snapshot.Bytes(),
15342		}
15343	}
15344
15345	return out, metadata, err
15346}
15347
15348func awsRestjson1_deserializeOpErrorGetVoiceConnectorLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15349	var errorBuffer bytes.Buffer
15350	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15351		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15352	}
15353	errorBody := bytes.NewReader(errorBuffer.Bytes())
15354
15355	errorCode := "UnknownError"
15356	errorMessage := errorCode
15357
15358	code := response.Header.Get("X-Amzn-ErrorType")
15359	if len(code) != 0 {
15360		errorCode = restjson.SanitizeErrorCode(code)
15361	}
15362
15363	var buff [1024]byte
15364	ringBuffer := smithyio.NewRingBuffer(buff[:])
15365
15366	body := io.TeeReader(errorBody, ringBuffer)
15367	decoder := json.NewDecoder(body)
15368	decoder.UseNumber()
15369	code, message, err := restjson.GetErrorInfo(decoder)
15370	if err != nil {
15371		var snapshot bytes.Buffer
15372		io.Copy(&snapshot, ringBuffer)
15373		err = &smithy.DeserializationError{
15374			Err:      fmt.Errorf("failed to decode response body, %w", err),
15375			Snapshot: snapshot.Bytes(),
15376		}
15377		return err
15378	}
15379
15380	errorBody.Seek(0, io.SeekStart)
15381	if len(code) != 0 {
15382		errorCode = restjson.SanitizeErrorCode(code)
15383	}
15384	if len(message) != 0 {
15385		errorMessage = message
15386	}
15387
15388	switch {
15389	case strings.EqualFold("BadRequestException", errorCode):
15390		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15391
15392	case strings.EqualFold("ForbiddenException", errorCode):
15393		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15394
15395	case strings.EqualFold("NotFoundException", errorCode):
15396		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15397
15398	case strings.EqualFold("ServiceFailureException", errorCode):
15399		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15400
15401	case strings.EqualFold("ServiceUnavailableException", errorCode):
15402		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15403
15404	case strings.EqualFold("ThrottledClientException", errorCode):
15405		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15406
15407	case strings.EqualFold("UnauthorizedClientException", errorCode):
15408		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15409
15410	default:
15411		genericError := &smithy.GenericAPIError{
15412			Code:    errorCode,
15413			Message: errorMessage,
15414		}
15415		return genericError
15416
15417	}
15418}
15419
15420func awsRestjson1_deserializeOpDocumentGetVoiceConnectorLoggingConfigurationOutput(v **GetVoiceConnectorLoggingConfigurationOutput, value interface{}) error {
15421	if v == nil {
15422		return fmt.Errorf("unexpected nil of type %T", v)
15423	}
15424	if value == nil {
15425		return nil
15426	}
15427
15428	shape, ok := value.(map[string]interface{})
15429	if !ok {
15430		return fmt.Errorf("unexpected JSON type %v", value)
15431	}
15432
15433	var sv *GetVoiceConnectorLoggingConfigurationOutput
15434	if *v == nil {
15435		sv = &GetVoiceConnectorLoggingConfigurationOutput{}
15436	} else {
15437		sv = *v
15438	}
15439
15440	for key, value := range shape {
15441		switch key {
15442		case "LoggingConfiguration":
15443			if err := awsRestjson1_deserializeDocumentLoggingConfiguration(&sv.LoggingConfiguration, value); err != nil {
15444				return err
15445			}
15446
15447		default:
15448			_, _ = key, value
15449
15450		}
15451	}
15452	*v = sv
15453	return nil
15454}
15455
15456type awsRestjson1_deserializeOpGetVoiceConnectorOrigination struct {
15457}
15458
15459func (*awsRestjson1_deserializeOpGetVoiceConnectorOrigination) ID() string {
15460	return "OperationDeserializer"
15461}
15462
15463func (m *awsRestjson1_deserializeOpGetVoiceConnectorOrigination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15464	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15465) {
15466	out, metadata, err = next.HandleDeserialize(ctx, in)
15467	if err != nil {
15468		return out, metadata, err
15469	}
15470
15471	response, ok := out.RawResponse.(*smithyhttp.Response)
15472	if !ok {
15473		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15474	}
15475
15476	if response.StatusCode < 200 || response.StatusCode >= 300 {
15477		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorOrigination(response, &metadata)
15478	}
15479	output := &GetVoiceConnectorOriginationOutput{}
15480	out.Result = output
15481
15482	var buff [1024]byte
15483	ringBuffer := smithyio.NewRingBuffer(buff[:])
15484
15485	body := io.TeeReader(response.Body, ringBuffer)
15486
15487	decoder := json.NewDecoder(body)
15488	decoder.UseNumber()
15489	var shape interface{}
15490	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15491		var snapshot bytes.Buffer
15492		io.Copy(&snapshot, ringBuffer)
15493		err = &smithy.DeserializationError{
15494			Err:      fmt.Errorf("failed to decode response body, %w", err),
15495			Snapshot: snapshot.Bytes(),
15496		}
15497		return out, metadata, err
15498	}
15499
15500	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorOriginationOutput(&output, shape)
15501	if err != nil {
15502		var snapshot bytes.Buffer
15503		io.Copy(&snapshot, ringBuffer)
15504		return out, metadata, &smithy.DeserializationError{
15505			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15506			Snapshot: snapshot.Bytes(),
15507		}
15508	}
15509
15510	return out, metadata, err
15511}
15512
15513func awsRestjson1_deserializeOpErrorGetVoiceConnectorOrigination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15514	var errorBuffer bytes.Buffer
15515	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15516		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15517	}
15518	errorBody := bytes.NewReader(errorBuffer.Bytes())
15519
15520	errorCode := "UnknownError"
15521	errorMessage := errorCode
15522
15523	code := response.Header.Get("X-Amzn-ErrorType")
15524	if len(code) != 0 {
15525		errorCode = restjson.SanitizeErrorCode(code)
15526	}
15527
15528	var buff [1024]byte
15529	ringBuffer := smithyio.NewRingBuffer(buff[:])
15530
15531	body := io.TeeReader(errorBody, ringBuffer)
15532	decoder := json.NewDecoder(body)
15533	decoder.UseNumber()
15534	code, message, err := restjson.GetErrorInfo(decoder)
15535	if err != nil {
15536		var snapshot bytes.Buffer
15537		io.Copy(&snapshot, ringBuffer)
15538		err = &smithy.DeserializationError{
15539			Err:      fmt.Errorf("failed to decode response body, %w", err),
15540			Snapshot: snapshot.Bytes(),
15541		}
15542		return err
15543	}
15544
15545	errorBody.Seek(0, io.SeekStart)
15546	if len(code) != 0 {
15547		errorCode = restjson.SanitizeErrorCode(code)
15548	}
15549	if len(message) != 0 {
15550		errorMessage = message
15551	}
15552
15553	switch {
15554	case strings.EqualFold("BadRequestException", errorCode):
15555		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15556
15557	case strings.EqualFold("ForbiddenException", errorCode):
15558		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15559
15560	case strings.EqualFold("NotFoundException", errorCode):
15561		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15562
15563	case strings.EqualFold("ServiceFailureException", errorCode):
15564		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15565
15566	case strings.EqualFold("ServiceUnavailableException", errorCode):
15567		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15568
15569	case strings.EqualFold("ThrottledClientException", errorCode):
15570		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15571
15572	case strings.EqualFold("UnauthorizedClientException", errorCode):
15573		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15574
15575	default:
15576		genericError := &smithy.GenericAPIError{
15577			Code:    errorCode,
15578			Message: errorMessage,
15579		}
15580		return genericError
15581
15582	}
15583}
15584
15585func awsRestjson1_deserializeOpDocumentGetVoiceConnectorOriginationOutput(v **GetVoiceConnectorOriginationOutput, value interface{}) error {
15586	if v == nil {
15587		return fmt.Errorf("unexpected nil of type %T", v)
15588	}
15589	if value == nil {
15590		return nil
15591	}
15592
15593	shape, ok := value.(map[string]interface{})
15594	if !ok {
15595		return fmt.Errorf("unexpected JSON type %v", value)
15596	}
15597
15598	var sv *GetVoiceConnectorOriginationOutput
15599	if *v == nil {
15600		sv = &GetVoiceConnectorOriginationOutput{}
15601	} else {
15602		sv = *v
15603	}
15604
15605	for key, value := range shape {
15606		switch key {
15607		case "Origination":
15608			if err := awsRestjson1_deserializeDocumentOrigination(&sv.Origination, value); err != nil {
15609				return err
15610			}
15611
15612		default:
15613			_, _ = key, value
15614
15615		}
15616	}
15617	*v = sv
15618	return nil
15619}
15620
15621type awsRestjson1_deserializeOpGetVoiceConnectorProxy struct {
15622}
15623
15624func (*awsRestjson1_deserializeOpGetVoiceConnectorProxy) ID() string {
15625	return "OperationDeserializer"
15626}
15627
15628func (m *awsRestjson1_deserializeOpGetVoiceConnectorProxy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15629	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15630) {
15631	out, metadata, err = next.HandleDeserialize(ctx, in)
15632	if err != nil {
15633		return out, metadata, err
15634	}
15635
15636	response, ok := out.RawResponse.(*smithyhttp.Response)
15637	if !ok {
15638		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15639	}
15640
15641	if response.StatusCode < 200 || response.StatusCode >= 300 {
15642		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorProxy(response, &metadata)
15643	}
15644	output := &GetVoiceConnectorProxyOutput{}
15645	out.Result = output
15646
15647	var buff [1024]byte
15648	ringBuffer := smithyio.NewRingBuffer(buff[:])
15649
15650	body := io.TeeReader(response.Body, ringBuffer)
15651
15652	decoder := json.NewDecoder(body)
15653	decoder.UseNumber()
15654	var shape interface{}
15655	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15656		var snapshot bytes.Buffer
15657		io.Copy(&snapshot, ringBuffer)
15658		err = &smithy.DeserializationError{
15659			Err:      fmt.Errorf("failed to decode response body, %w", err),
15660			Snapshot: snapshot.Bytes(),
15661		}
15662		return out, metadata, err
15663	}
15664
15665	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorProxyOutput(&output, shape)
15666	if err != nil {
15667		var snapshot bytes.Buffer
15668		io.Copy(&snapshot, ringBuffer)
15669		return out, metadata, &smithy.DeserializationError{
15670			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15671			Snapshot: snapshot.Bytes(),
15672		}
15673	}
15674
15675	return out, metadata, err
15676}
15677
15678func awsRestjson1_deserializeOpErrorGetVoiceConnectorProxy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15679	var errorBuffer bytes.Buffer
15680	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15681		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15682	}
15683	errorBody := bytes.NewReader(errorBuffer.Bytes())
15684
15685	errorCode := "UnknownError"
15686	errorMessage := errorCode
15687
15688	code := response.Header.Get("X-Amzn-ErrorType")
15689	if len(code) != 0 {
15690		errorCode = restjson.SanitizeErrorCode(code)
15691	}
15692
15693	var buff [1024]byte
15694	ringBuffer := smithyio.NewRingBuffer(buff[:])
15695
15696	body := io.TeeReader(errorBody, ringBuffer)
15697	decoder := json.NewDecoder(body)
15698	decoder.UseNumber()
15699	code, message, err := restjson.GetErrorInfo(decoder)
15700	if err != nil {
15701		var snapshot bytes.Buffer
15702		io.Copy(&snapshot, ringBuffer)
15703		err = &smithy.DeserializationError{
15704			Err:      fmt.Errorf("failed to decode response body, %w", err),
15705			Snapshot: snapshot.Bytes(),
15706		}
15707		return err
15708	}
15709
15710	errorBody.Seek(0, io.SeekStart)
15711	if len(code) != 0 {
15712		errorCode = restjson.SanitizeErrorCode(code)
15713	}
15714	if len(message) != 0 {
15715		errorMessage = message
15716	}
15717
15718	switch {
15719	case strings.EqualFold("BadRequestException", errorCode):
15720		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15721
15722	case strings.EqualFold("ForbiddenException", errorCode):
15723		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15724
15725	case strings.EqualFold("NotFoundException", errorCode):
15726		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15727
15728	case strings.EqualFold("ServiceFailureException", errorCode):
15729		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15730
15731	case strings.EqualFold("ServiceUnavailableException", errorCode):
15732		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15733
15734	case strings.EqualFold("ThrottledClientException", errorCode):
15735		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15736
15737	case strings.EqualFold("UnauthorizedClientException", errorCode):
15738		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15739
15740	default:
15741		genericError := &smithy.GenericAPIError{
15742			Code:    errorCode,
15743			Message: errorMessage,
15744		}
15745		return genericError
15746
15747	}
15748}
15749
15750func awsRestjson1_deserializeOpDocumentGetVoiceConnectorProxyOutput(v **GetVoiceConnectorProxyOutput, value interface{}) error {
15751	if v == nil {
15752		return fmt.Errorf("unexpected nil of type %T", v)
15753	}
15754	if value == nil {
15755		return nil
15756	}
15757
15758	shape, ok := value.(map[string]interface{})
15759	if !ok {
15760		return fmt.Errorf("unexpected JSON type %v", value)
15761	}
15762
15763	var sv *GetVoiceConnectorProxyOutput
15764	if *v == nil {
15765		sv = &GetVoiceConnectorProxyOutput{}
15766	} else {
15767		sv = *v
15768	}
15769
15770	for key, value := range shape {
15771		switch key {
15772		case "Proxy":
15773			if err := awsRestjson1_deserializeDocumentProxy(&sv.Proxy, value); err != nil {
15774				return err
15775			}
15776
15777		default:
15778			_, _ = key, value
15779
15780		}
15781	}
15782	*v = sv
15783	return nil
15784}
15785
15786type awsRestjson1_deserializeOpGetVoiceConnectorStreamingConfiguration struct {
15787}
15788
15789func (*awsRestjson1_deserializeOpGetVoiceConnectorStreamingConfiguration) ID() string {
15790	return "OperationDeserializer"
15791}
15792
15793func (m *awsRestjson1_deserializeOpGetVoiceConnectorStreamingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15794	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15795) {
15796	out, metadata, err = next.HandleDeserialize(ctx, in)
15797	if err != nil {
15798		return out, metadata, err
15799	}
15800
15801	response, ok := out.RawResponse.(*smithyhttp.Response)
15802	if !ok {
15803		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15804	}
15805
15806	if response.StatusCode < 200 || response.StatusCode >= 300 {
15807		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorStreamingConfiguration(response, &metadata)
15808	}
15809	output := &GetVoiceConnectorStreamingConfigurationOutput{}
15810	out.Result = output
15811
15812	var buff [1024]byte
15813	ringBuffer := smithyio.NewRingBuffer(buff[:])
15814
15815	body := io.TeeReader(response.Body, ringBuffer)
15816
15817	decoder := json.NewDecoder(body)
15818	decoder.UseNumber()
15819	var shape interface{}
15820	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15821		var snapshot bytes.Buffer
15822		io.Copy(&snapshot, ringBuffer)
15823		err = &smithy.DeserializationError{
15824			Err:      fmt.Errorf("failed to decode response body, %w", err),
15825			Snapshot: snapshot.Bytes(),
15826		}
15827		return out, metadata, err
15828	}
15829
15830	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorStreamingConfigurationOutput(&output, shape)
15831	if err != nil {
15832		var snapshot bytes.Buffer
15833		io.Copy(&snapshot, ringBuffer)
15834		return out, metadata, &smithy.DeserializationError{
15835			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15836			Snapshot: snapshot.Bytes(),
15837		}
15838	}
15839
15840	return out, metadata, err
15841}
15842
15843func awsRestjson1_deserializeOpErrorGetVoiceConnectorStreamingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15844	var errorBuffer bytes.Buffer
15845	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15846		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15847	}
15848	errorBody := bytes.NewReader(errorBuffer.Bytes())
15849
15850	errorCode := "UnknownError"
15851	errorMessage := errorCode
15852
15853	code := response.Header.Get("X-Amzn-ErrorType")
15854	if len(code) != 0 {
15855		errorCode = restjson.SanitizeErrorCode(code)
15856	}
15857
15858	var buff [1024]byte
15859	ringBuffer := smithyio.NewRingBuffer(buff[:])
15860
15861	body := io.TeeReader(errorBody, ringBuffer)
15862	decoder := json.NewDecoder(body)
15863	decoder.UseNumber()
15864	code, message, err := restjson.GetErrorInfo(decoder)
15865	if err != nil {
15866		var snapshot bytes.Buffer
15867		io.Copy(&snapshot, ringBuffer)
15868		err = &smithy.DeserializationError{
15869			Err:      fmt.Errorf("failed to decode response body, %w", err),
15870			Snapshot: snapshot.Bytes(),
15871		}
15872		return err
15873	}
15874
15875	errorBody.Seek(0, io.SeekStart)
15876	if len(code) != 0 {
15877		errorCode = restjson.SanitizeErrorCode(code)
15878	}
15879	if len(message) != 0 {
15880		errorMessage = message
15881	}
15882
15883	switch {
15884	case strings.EqualFold("BadRequestException", errorCode):
15885		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15886
15887	case strings.EqualFold("ForbiddenException", errorCode):
15888		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15889
15890	case strings.EqualFold("NotFoundException", errorCode):
15891		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15892
15893	case strings.EqualFold("ServiceFailureException", errorCode):
15894		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15895
15896	case strings.EqualFold("ServiceUnavailableException", errorCode):
15897		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15898
15899	case strings.EqualFold("ThrottledClientException", errorCode):
15900		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15901
15902	case strings.EqualFold("UnauthorizedClientException", errorCode):
15903		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15904
15905	default:
15906		genericError := &smithy.GenericAPIError{
15907			Code:    errorCode,
15908			Message: errorMessage,
15909		}
15910		return genericError
15911
15912	}
15913}
15914
15915func awsRestjson1_deserializeOpDocumentGetVoiceConnectorStreamingConfigurationOutput(v **GetVoiceConnectorStreamingConfigurationOutput, value interface{}) error {
15916	if v == nil {
15917		return fmt.Errorf("unexpected nil of type %T", v)
15918	}
15919	if value == nil {
15920		return nil
15921	}
15922
15923	shape, ok := value.(map[string]interface{})
15924	if !ok {
15925		return fmt.Errorf("unexpected JSON type %v", value)
15926	}
15927
15928	var sv *GetVoiceConnectorStreamingConfigurationOutput
15929	if *v == nil {
15930		sv = &GetVoiceConnectorStreamingConfigurationOutput{}
15931	} else {
15932		sv = *v
15933	}
15934
15935	for key, value := range shape {
15936		switch key {
15937		case "StreamingConfiguration":
15938			if err := awsRestjson1_deserializeDocumentStreamingConfiguration(&sv.StreamingConfiguration, value); err != nil {
15939				return err
15940			}
15941
15942		default:
15943			_, _ = key, value
15944
15945		}
15946	}
15947	*v = sv
15948	return nil
15949}
15950
15951type awsRestjson1_deserializeOpGetVoiceConnectorTermination struct {
15952}
15953
15954func (*awsRestjson1_deserializeOpGetVoiceConnectorTermination) ID() string {
15955	return "OperationDeserializer"
15956}
15957
15958func (m *awsRestjson1_deserializeOpGetVoiceConnectorTermination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15959	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15960) {
15961	out, metadata, err = next.HandleDeserialize(ctx, in)
15962	if err != nil {
15963		return out, metadata, err
15964	}
15965
15966	response, ok := out.RawResponse.(*smithyhttp.Response)
15967	if !ok {
15968		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15969	}
15970
15971	if response.StatusCode < 200 || response.StatusCode >= 300 {
15972		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorTermination(response, &metadata)
15973	}
15974	output := &GetVoiceConnectorTerminationOutput{}
15975	out.Result = output
15976
15977	var buff [1024]byte
15978	ringBuffer := smithyio.NewRingBuffer(buff[:])
15979
15980	body := io.TeeReader(response.Body, ringBuffer)
15981
15982	decoder := json.NewDecoder(body)
15983	decoder.UseNumber()
15984	var shape interface{}
15985	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15986		var snapshot bytes.Buffer
15987		io.Copy(&snapshot, ringBuffer)
15988		err = &smithy.DeserializationError{
15989			Err:      fmt.Errorf("failed to decode response body, %w", err),
15990			Snapshot: snapshot.Bytes(),
15991		}
15992		return out, metadata, err
15993	}
15994
15995	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationOutput(&output, shape)
15996	if err != nil {
15997		var snapshot bytes.Buffer
15998		io.Copy(&snapshot, ringBuffer)
15999		return out, metadata, &smithy.DeserializationError{
16000			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16001			Snapshot: snapshot.Bytes(),
16002		}
16003	}
16004
16005	return out, metadata, err
16006}
16007
16008func awsRestjson1_deserializeOpErrorGetVoiceConnectorTermination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16009	var errorBuffer bytes.Buffer
16010	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16011		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16012	}
16013	errorBody := bytes.NewReader(errorBuffer.Bytes())
16014
16015	errorCode := "UnknownError"
16016	errorMessage := errorCode
16017
16018	code := response.Header.Get("X-Amzn-ErrorType")
16019	if len(code) != 0 {
16020		errorCode = restjson.SanitizeErrorCode(code)
16021	}
16022
16023	var buff [1024]byte
16024	ringBuffer := smithyio.NewRingBuffer(buff[:])
16025
16026	body := io.TeeReader(errorBody, ringBuffer)
16027	decoder := json.NewDecoder(body)
16028	decoder.UseNumber()
16029	code, message, err := restjson.GetErrorInfo(decoder)
16030	if err != nil {
16031		var snapshot bytes.Buffer
16032		io.Copy(&snapshot, ringBuffer)
16033		err = &smithy.DeserializationError{
16034			Err:      fmt.Errorf("failed to decode response body, %w", err),
16035			Snapshot: snapshot.Bytes(),
16036		}
16037		return err
16038	}
16039
16040	errorBody.Seek(0, io.SeekStart)
16041	if len(code) != 0 {
16042		errorCode = restjson.SanitizeErrorCode(code)
16043	}
16044	if len(message) != 0 {
16045		errorMessage = message
16046	}
16047
16048	switch {
16049	case strings.EqualFold("BadRequestException", errorCode):
16050		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16051
16052	case strings.EqualFold("ForbiddenException", errorCode):
16053		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16054
16055	case strings.EqualFold("NotFoundException", errorCode):
16056		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16057
16058	case strings.EqualFold("ServiceFailureException", errorCode):
16059		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16060
16061	case strings.EqualFold("ServiceUnavailableException", errorCode):
16062		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16063
16064	case strings.EqualFold("ThrottledClientException", errorCode):
16065		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16066
16067	case strings.EqualFold("UnauthorizedClientException", errorCode):
16068		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16069
16070	default:
16071		genericError := &smithy.GenericAPIError{
16072			Code:    errorCode,
16073			Message: errorMessage,
16074		}
16075		return genericError
16076
16077	}
16078}
16079
16080func awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationOutput(v **GetVoiceConnectorTerminationOutput, value interface{}) error {
16081	if v == nil {
16082		return fmt.Errorf("unexpected nil of type %T", v)
16083	}
16084	if value == nil {
16085		return nil
16086	}
16087
16088	shape, ok := value.(map[string]interface{})
16089	if !ok {
16090		return fmt.Errorf("unexpected JSON type %v", value)
16091	}
16092
16093	var sv *GetVoiceConnectorTerminationOutput
16094	if *v == nil {
16095		sv = &GetVoiceConnectorTerminationOutput{}
16096	} else {
16097		sv = *v
16098	}
16099
16100	for key, value := range shape {
16101		switch key {
16102		case "Termination":
16103			if err := awsRestjson1_deserializeDocumentTermination(&sv.Termination, value); err != nil {
16104				return err
16105			}
16106
16107		default:
16108			_, _ = key, value
16109
16110		}
16111	}
16112	*v = sv
16113	return nil
16114}
16115
16116type awsRestjson1_deserializeOpGetVoiceConnectorTerminationHealth struct {
16117}
16118
16119func (*awsRestjson1_deserializeOpGetVoiceConnectorTerminationHealth) ID() string {
16120	return "OperationDeserializer"
16121}
16122
16123func (m *awsRestjson1_deserializeOpGetVoiceConnectorTerminationHealth) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16124	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16125) {
16126	out, metadata, err = next.HandleDeserialize(ctx, in)
16127	if err != nil {
16128		return out, metadata, err
16129	}
16130
16131	response, ok := out.RawResponse.(*smithyhttp.Response)
16132	if !ok {
16133		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16134	}
16135
16136	if response.StatusCode < 200 || response.StatusCode >= 300 {
16137		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorTerminationHealth(response, &metadata)
16138	}
16139	output := &GetVoiceConnectorTerminationHealthOutput{}
16140	out.Result = output
16141
16142	var buff [1024]byte
16143	ringBuffer := smithyio.NewRingBuffer(buff[:])
16144
16145	body := io.TeeReader(response.Body, ringBuffer)
16146
16147	decoder := json.NewDecoder(body)
16148	decoder.UseNumber()
16149	var shape interface{}
16150	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16151		var snapshot bytes.Buffer
16152		io.Copy(&snapshot, ringBuffer)
16153		err = &smithy.DeserializationError{
16154			Err:      fmt.Errorf("failed to decode response body, %w", err),
16155			Snapshot: snapshot.Bytes(),
16156		}
16157		return out, metadata, err
16158	}
16159
16160	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationHealthOutput(&output, shape)
16161	if err != nil {
16162		var snapshot bytes.Buffer
16163		io.Copy(&snapshot, ringBuffer)
16164		return out, metadata, &smithy.DeserializationError{
16165			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16166			Snapshot: snapshot.Bytes(),
16167		}
16168	}
16169
16170	return out, metadata, err
16171}
16172
16173func awsRestjson1_deserializeOpErrorGetVoiceConnectorTerminationHealth(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16174	var errorBuffer bytes.Buffer
16175	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16176		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16177	}
16178	errorBody := bytes.NewReader(errorBuffer.Bytes())
16179
16180	errorCode := "UnknownError"
16181	errorMessage := errorCode
16182
16183	code := response.Header.Get("X-Amzn-ErrorType")
16184	if len(code) != 0 {
16185		errorCode = restjson.SanitizeErrorCode(code)
16186	}
16187
16188	var buff [1024]byte
16189	ringBuffer := smithyio.NewRingBuffer(buff[:])
16190
16191	body := io.TeeReader(errorBody, ringBuffer)
16192	decoder := json.NewDecoder(body)
16193	decoder.UseNumber()
16194	code, message, err := restjson.GetErrorInfo(decoder)
16195	if err != nil {
16196		var snapshot bytes.Buffer
16197		io.Copy(&snapshot, ringBuffer)
16198		err = &smithy.DeserializationError{
16199			Err:      fmt.Errorf("failed to decode response body, %w", err),
16200			Snapshot: snapshot.Bytes(),
16201		}
16202		return err
16203	}
16204
16205	errorBody.Seek(0, io.SeekStart)
16206	if len(code) != 0 {
16207		errorCode = restjson.SanitizeErrorCode(code)
16208	}
16209	if len(message) != 0 {
16210		errorMessage = message
16211	}
16212
16213	switch {
16214	case strings.EqualFold("BadRequestException", errorCode):
16215		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16216
16217	case strings.EqualFold("ForbiddenException", errorCode):
16218		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16219
16220	case strings.EqualFold("NotFoundException", errorCode):
16221		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16222
16223	case strings.EqualFold("ServiceFailureException", errorCode):
16224		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16225
16226	case strings.EqualFold("ServiceUnavailableException", errorCode):
16227		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16228
16229	case strings.EqualFold("ThrottledClientException", errorCode):
16230		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16231
16232	case strings.EqualFold("UnauthorizedClientException", errorCode):
16233		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16234
16235	default:
16236		genericError := &smithy.GenericAPIError{
16237			Code:    errorCode,
16238			Message: errorMessage,
16239		}
16240		return genericError
16241
16242	}
16243}
16244
16245func awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationHealthOutput(v **GetVoiceConnectorTerminationHealthOutput, value interface{}) error {
16246	if v == nil {
16247		return fmt.Errorf("unexpected nil of type %T", v)
16248	}
16249	if value == nil {
16250		return nil
16251	}
16252
16253	shape, ok := value.(map[string]interface{})
16254	if !ok {
16255		return fmt.Errorf("unexpected JSON type %v", value)
16256	}
16257
16258	var sv *GetVoiceConnectorTerminationHealthOutput
16259	if *v == nil {
16260		sv = &GetVoiceConnectorTerminationHealthOutput{}
16261	} else {
16262		sv = *v
16263	}
16264
16265	for key, value := range shape {
16266		switch key {
16267		case "TerminationHealth":
16268			if err := awsRestjson1_deserializeDocumentTerminationHealth(&sv.TerminationHealth, value); err != nil {
16269				return err
16270			}
16271
16272		default:
16273			_, _ = key, value
16274
16275		}
16276	}
16277	*v = sv
16278	return nil
16279}
16280
16281type awsRestjson1_deserializeOpInviteUsers struct {
16282}
16283
16284func (*awsRestjson1_deserializeOpInviteUsers) ID() string {
16285	return "OperationDeserializer"
16286}
16287
16288func (m *awsRestjson1_deserializeOpInviteUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16289	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16290) {
16291	out, metadata, err = next.HandleDeserialize(ctx, in)
16292	if err != nil {
16293		return out, metadata, err
16294	}
16295
16296	response, ok := out.RawResponse.(*smithyhttp.Response)
16297	if !ok {
16298		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16299	}
16300
16301	if response.StatusCode < 200 || response.StatusCode >= 300 {
16302		return out, metadata, awsRestjson1_deserializeOpErrorInviteUsers(response, &metadata)
16303	}
16304	output := &InviteUsersOutput{}
16305	out.Result = output
16306
16307	var buff [1024]byte
16308	ringBuffer := smithyio.NewRingBuffer(buff[:])
16309
16310	body := io.TeeReader(response.Body, ringBuffer)
16311
16312	decoder := json.NewDecoder(body)
16313	decoder.UseNumber()
16314	var shape interface{}
16315	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16316		var snapshot bytes.Buffer
16317		io.Copy(&snapshot, ringBuffer)
16318		err = &smithy.DeserializationError{
16319			Err:      fmt.Errorf("failed to decode response body, %w", err),
16320			Snapshot: snapshot.Bytes(),
16321		}
16322		return out, metadata, err
16323	}
16324
16325	err = awsRestjson1_deserializeOpDocumentInviteUsersOutput(&output, shape)
16326	if err != nil {
16327		var snapshot bytes.Buffer
16328		io.Copy(&snapshot, ringBuffer)
16329		return out, metadata, &smithy.DeserializationError{
16330			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16331			Snapshot: snapshot.Bytes(),
16332		}
16333	}
16334
16335	return out, metadata, err
16336}
16337
16338func awsRestjson1_deserializeOpErrorInviteUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16339	var errorBuffer bytes.Buffer
16340	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16341		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16342	}
16343	errorBody := bytes.NewReader(errorBuffer.Bytes())
16344
16345	errorCode := "UnknownError"
16346	errorMessage := errorCode
16347
16348	code := response.Header.Get("X-Amzn-ErrorType")
16349	if len(code) != 0 {
16350		errorCode = restjson.SanitizeErrorCode(code)
16351	}
16352
16353	var buff [1024]byte
16354	ringBuffer := smithyio.NewRingBuffer(buff[:])
16355
16356	body := io.TeeReader(errorBody, ringBuffer)
16357	decoder := json.NewDecoder(body)
16358	decoder.UseNumber()
16359	code, message, err := restjson.GetErrorInfo(decoder)
16360	if err != nil {
16361		var snapshot bytes.Buffer
16362		io.Copy(&snapshot, ringBuffer)
16363		err = &smithy.DeserializationError{
16364			Err:      fmt.Errorf("failed to decode response body, %w", err),
16365			Snapshot: snapshot.Bytes(),
16366		}
16367		return err
16368	}
16369
16370	errorBody.Seek(0, io.SeekStart)
16371	if len(code) != 0 {
16372		errorCode = restjson.SanitizeErrorCode(code)
16373	}
16374	if len(message) != 0 {
16375		errorMessage = message
16376	}
16377
16378	switch {
16379	case strings.EqualFold("BadRequestException", errorCode):
16380		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16381
16382	case strings.EqualFold("ForbiddenException", errorCode):
16383		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16384
16385	case strings.EqualFold("NotFoundException", errorCode):
16386		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16387
16388	case strings.EqualFold("ServiceFailureException", errorCode):
16389		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16390
16391	case strings.EqualFold("ServiceUnavailableException", errorCode):
16392		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16393
16394	case strings.EqualFold("ThrottledClientException", errorCode):
16395		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16396
16397	case strings.EqualFold("UnauthorizedClientException", errorCode):
16398		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16399
16400	default:
16401		genericError := &smithy.GenericAPIError{
16402			Code:    errorCode,
16403			Message: errorMessage,
16404		}
16405		return genericError
16406
16407	}
16408}
16409
16410func awsRestjson1_deserializeOpDocumentInviteUsersOutput(v **InviteUsersOutput, value interface{}) error {
16411	if v == nil {
16412		return fmt.Errorf("unexpected nil of type %T", v)
16413	}
16414	if value == nil {
16415		return nil
16416	}
16417
16418	shape, ok := value.(map[string]interface{})
16419	if !ok {
16420		return fmt.Errorf("unexpected JSON type %v", value)
16421	}
16422
16423	var sv *InviteUsersOutput
16424	if *v == nil {
16425		sv = &InviteUsersOutput{}
16426	} else {
16427		sv = *v
16428	}
16429
16430	for key, value := range shape {
16431		switch key {
16432		case "Invites":
16433			if err := awsRestjson1_deserializeDocumentInviteList(&sv.Invites, value); err != nil {
16434				return err
16435			}
16436
16437		default:
16438			_, _ = key, value
16439
16440		}
16441	}
16442	*v = sv
16443	return nil
16444}
16445
16446type awsRestjson1_deserializeOpListAccounts struct {
16447}
16448
16449func (*awsRestjson1_deserializeOpListAccounts) ID() string {
16450	return "OperationDeserializer"
16451}
16452
16453func (m *awsRestjson1_deserializeOpListAccounts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16454	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16455) {
16456	out, metadata, err = next.HandleDeserialize(ctx, in)
16457	if err != nil {
16458		return out, metadata, err
16459	}
16460
16461	response, ok := out.RawResponse.(*smithyhttp.Response)
16462	if !ok {
16463		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16464	}
16465
16466	if response.StatusCode < 200 || response.StatusCode >= 300 {
16467		return out, metadata, awsRestjson1_deserializeOpErrorListAccounts(response, &metadata)
16468	}
16469	output := &ListAccountsOutput{}
16470	out.Result = output
16471
16472	var buff [1024]byte
16473	ringBuffer := smithyio.NewRingBuffer(buff[:])
16474
16475	body := io.TeeReader(response.Body, ringBuffer)
16476
16477	decoder := json.NewDecoder(body)
16478	decoder.UseNumber()
16479	var shape interface{}
16480	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16481		var snapshot bytes.Buffer
16482		io.Copy(&snapshot, ringBuffer)
16483		err = &smithy.DeserializationError{
16484			Err:      fmt.Errorf("failed to decode response body, %w", err),
16485			Snapshot: snapshot.Bytes(),
16486		}
16487		return out, metadata, err
16488	}
16489
16490	err = awsRestjson1_deserializeOpDocumentListAccountsOutput(&output, shape)
16491	if err != nil {
16492		var snapshot bytes.Buffer
16493		io.Copy(&snapshot, ringBuffer)
16494		return out, metadata, &smithy.DeserializationError{
16495			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16496			Snapshot: snapshot.Bytes(),
16497		}
16498	}
16499
16500	return out, metadata, err
16501}
16502
16503func awsRestjson1_deserializeOpErrorListAccounts(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16504	var errorBuffer bytes.Buffer
16505	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16506		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16507	}
16508	errorBody := bytes.NewReader(errorBuffer.Bytes())
16509
16510	errorCode := "UnknownError"
16511	errorMessage := errorCode
16512
16513	code := response.Header.Get("X-Amzn-ErrorType")
16514	if len(code) != 0 {
16515		errorCode = restjson.SanitizeErrorCode(code)
16516	}
16517
16518	var buff [1024]byte
16519	ringBuffer := smithyio.NewRingBuffer(buff[:])
16520
16521	body := io.TeeReader(errorBody, ringBuffer)
16522	decoder := json.NewDecoder(body)
16523	decoder.UseNumber()
16524	code, message, err := restjson.GetErrorInfo(decoder)
16525	if err != nil {
16526		var snapshot bytes.Buffer
16527		io.Copy(&snapshot, ringBuffer)
16528		err = &smithy.DeserializationError{
16529			Err:      fmt.Errorf("failed to decode response body, %w", err),
16530			Snapshot: snapshot.Bytes(),
16531		}
16532		return err
16533	}
16534
16535	errorBody.Seek(0, io.SeekStart)
16536	if len(code) != 0 {
16537		errorCode = restjson.SanitizeErrorCode(code)
16538	}
16539	if len(message) != 0 {
16540		errorMessage = message
16541	}
16542
16543	switch {
16544	case strings.EqualFold("BadRequestException", errorCode):
16545		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16546
16547	case strings.EqualFold("ForbiddenException", errorCode):
16548		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16549
16550	case strings.EqualFold("NotFoundException", errorCode):
16551		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16552
16553	case strings.EqualFold("ServiceFailureException", errorCode):
16554		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16555
16556	case strings.EqualFold("ServiceUnavailableException", errorCode):
16557		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16558
16559	case strings.EqualFold("ThrottledClientException", errorCode):
16560		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16561
16562	case strings.EqualFold("UnauthorizedClientException", errorCode):
16563		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16564
16565	default:
16566		genericError := &smithy.GenericAPIError{
16567			Code:    errorCode,
16568			Message: errorMessage,
16569		}
16570		return genericError
16571
16572	}
16573}
16574
16575func awsRestjson1_deserializeOpDocumentListAccountsOutput(v **ListAccountsOutput, value interface{}) error {
16576	if v == nil {
16577		return fmt.Errorf("unexpected nil of type %T", v)
16578	}
16579	if value == nil {
16580		return nil
16581	}
16582
16583	shape, ok := value.(map[string]interface{})
16584	if !ok {
16585		return fmt.Errorf("unexpected JSON type %v", value)
16586	}
16587
16588	var sv *ListAccountsOutput
16589	if *v == nil {
16590		sv = &ListAccountsOutput{}
16591	} else {
16592		sv = *v
16593	}
16594
16595	for key, value := range shape {
16596		switch key {
16597		case "Accounts":
16598			if err := awsRestjson1_deserializeDocumentAccountList(&sv.Accounts, value); err != nil {
16599				return err
16600			}
16601
16602		case "NextToken":
16603			if value != nil {
16604				jtv, ok := value.(string)
16605				if !ok {
16606					return fmt.Errorf("expected String to be of type string, got %T instead", value)
16607				}
16608				sv.NextToken = ptr.String(jtv)
16609			}
16610
16611		default:
16612			_, _ = key, value
16613
16614		}
16615	}
16616	*v = sv
16617	return nil
16618}
16619
16620type awsRestjson1_deserializeOpListAppInstanceAdmins struct {
16621}
16622
16623func (*awsRestjson1_deserializeOpListAppInstanceAdmins) ID() string {
16624	return "OperationDeserializer"
16625}
16626
16627func (m *awsRestjson1_deserializeOpListAppInstanceAdmins) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16628	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16629) {
16630	out, metadata, err = next.HandleDeserialize(ctx, in)
16631	if err != nil {
16632		return out, metadata, err
16633	}
16634
16635	response, ok := out.RawResponse.(*smithyhttp.Response)
16636	if !ok {
16637		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16638	}
16639
16640	if response.StatusCode < 200 || response.StatusCode >= 300 {
16641		return out, metadata, awsRestjson1_deserializeOpErrorListAppInstanceAdmins(response, &metadata)
16642	}
16643	output := &ListAppInstanceAdminsOutput{}
16644	out.Result = output
16645
16646	var buff [1024]byte
16647	ringBuffer := smithyio.NewRingBuffer(buff[:])
16648
16649	body := io.TeeReader(response.Body, ringBuffer)
16650
16651	decoder := json.NewDecoder(body)
16652	decoder.UseNumber()
16653	var shape interface{}
16654	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16655		var snapshot bytes.Buffer
16656		io.Copy(&snapshot, ringBuffer)
16657		err = &smithy.DeserializationError{
16658			Err:      fmt.Errorf("failed to decode response body, %w", err),
16659			Snapshot: snapshot.Bytes(),
16660		}
16661		return out, metadata, err
16662	}
16663
16664	err = awsRestjson1_deserializeOpDocumentListAppInstanceAdminsOutput(&output, shape)
16665	if err != nil {
16666		var snapshot bytes.Buffer
16667		io.Copy(&snapshot, ringBuffer)
16668		return out, metadata, &smithy.DeserializationError{
16669			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16670			Snapshot: snapshot.Bytes(),
16671		}
16672	}
16673
16674	return out, metadata, err
16675}
16676
16677func awsRestjson1_deserializeOpErrorListAppInstanceAdmins(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16678	var errorBuffer bytes.Buffer
16679	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16680		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16681	}
16682	errorBody := bytes.NewReader(errorBuffer.Bytes())
16683
16684	errorCode := "UnknownError"
16685	errorMessage := errorCode
16686
16687	code := response.Header.Get("X-Amzn-ErrorType")
16688	if len(code) != 0 {
16689		errorCode = restjson.SanitizeErrorCode(code)
16690	}
16691
16692	var buff [1024]byte
16693	ringBuffer := smithyio.NewRingBuffer(buff[:])
16694
16695	body := io.TeeReader(errorBody, ringBuffer)
16696	decoder := json.NewDecoder(body)
16697	decoder.UseNumber()
16698	code, message, err := restjson.GetErrorInfo(decoder)
16699	if err != nil {
16700		var snapshot bytes.Buffer
16701		io.Copy(&snapshot, ringBuffer)
16702		err = &smithy.DeserializationError{
16703			Err:      fmt.Errorf("failed to decode response body, %w", err),
16704			Snapshot: snapshot.Bytes(),
16705		}
16706		return err
16707	}
16708
16709	errorBody.Seek(0, io.SeekStart)
16710	if len(code) != 0 {
16711		errorCode = restjson.SanitizeErrorCode(code)
16712	}
16713	if len(message) != 0 {
16714		errorMessage = message
16715	}
16716
16717	switch {
16718	case strings.EqualFold("BadRequestException", errorCode):
16719		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16720
16721	case strings.EqualFold("ForbiddenException", errorCode):
16722		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16723
16724	case strings.EqualFold("ServiceFailureException", errorCode):
16725		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16726
16727	case strings.EqualFold("ServiceUnavailableException", errorCode):
16728		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16729
16730	case strings.EqualFold("ThrottledClientException", errorCode):
16731		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16732
16733	case strings.EqualFold("UnauthorizedClientException", errorCode):
16734		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16735
16736	default:
16737		genericError := &smithy.GenericAPIError{
16738			Code:    errorCode,
16739			Message: errorMessage,
16740		}
16741		return genericError
16742
16743	}
16744}
16745
16746func awsRestjson1_deserializeOpDocumentListAppInstanceAdminsOutput(v **ListAppInstanceAdminsOutput, value interface{}) error {
16747	if v == nil {
16748		return fmt.Errorf("unexpected nil of type %T", v)
16749	}
16750	if value == nil {
16751		return nil
16752	}
16753
16754	shape, ok := value.(map[string]interface{})
16755	if !ok {
16756		return fmt.Errorf("unexpected JSON type %v", value)
16757	}
16758
16759	var sv *ListAppInstanceAdminsOutput
16760	if *v == nil {
16761		sv = &ListAppInstanceAdminsOutput{}
16762	} else {
16763		sv = *v
16764	}
16765
16766	for key, value := range shape {
16767		switch key {
16768		case "AppInstanceAdmins":
16769			if err := awsRestjson1_deserializeDocumentAppInstanceAdminList(&sv.AppInstanceAdmins, value); err != nil {
16770				return err
16771			}
16772
16773		case "AppInstanceArn":
16774			if value != nil {
16775				jtv, ok := value.(string)
16776				if !ok {
16777					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
16778				}
16779				sv.AppInstanceArn = ptr.String(jtv)
16780			}
16781
16782		case "NextToken":
16783			if value != nil {
16784				jtv, ok := value.(string)
16785				if !ok {
16786					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
16787				}
16788				sv.NextToken = ptr.String(jtv)
16789			}
16790
16791		default:
16792			_, _ = key, value
16793
16794		}
16795	}
16796	*v = sv
16797	return nil
16798}
16799
16800type awsRestjson1_deserializeOpListAppInstances struct {
16801}
16802
16803func (*awsRestjson1_deserializeOpListAppInstances) ID() string {
16804	return "OperationDeserializer"
16805}
16806
16807func (m *awsRestjson1_deserializeOpListAppInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16808	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16809) {
16810	out, metadata, err = next.HandleDeserialize(ctx, in)
16811	if err != nil {
16812		return out, metadata, err
16813	}
16814
16815	response, ok := out.RawResponse.(*smithyhttp.Response)
16816	if !ok {
16817		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16818	}
16819
16820	if response.StatusCode < 200 || response.StatusCode >= 300 {
16821		return out, metadata, awsRestjson1_deserializeOpErrorListAppInstances(response, &metadata)
16822	}
16823	output := &ListAppInstancesOutput{}
16824	out.Result = output
16825
16826	var buff [1024]byte
16827	ringBuffer := smithyio.NewRingBuffer(buff[:])
16828
16829	body := io.TeeReader(response.Body, ringBuffer)
16830
16831	decoder := json.NewDecoder(body)
16832	decoder.UseNumber()
16833	var shape interface{}
16834	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16835		var snapshot bytes.Buffer
16836		io.Copy(&snapshot, ringBuffer)
16837		err = &smithy.DeserializationError{
16838			Err:      fmt.Errorf("failed to decode response body, %w", err),
16839			Snapshot: snapshot.Bytes(),
16840		}
16841		return out, metadata, err
16842	}
16843
16844	err = awsRestjson1_deserializeOpDocumentListAppInstancesOutput(&output, shape)
16845	if err != nil {
16846		var snapshot bytes.Buffer
16847		io.Copy(&snapshot, ringBuffer)
16848		return out, metadata, &smithy.DeserializationError{
16849			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16850			Snapshot: snapshot.Bytes(),
16851		}
16852	}
16853
16854	return out, metadata, err
16855}
16856
16857func awsRestjson1_deserializeOpErrorListAppInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16858	var errorBuffer bytes.Buffer
16859	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16860		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16861	}
16862	errorBody := bytes.NewReader(errorBuffer.Bytes())
16863
16864	errorCode := "UnknownError"
16865	errorMessage := errorCode
16866
16867	code := response.Header.Get("X-Amzn-ErrorType")
16868	if len(code) != 0 {
16869		errorCode = restjson.SanitizeErrorCode(code)
16870	}
16871
16872	var buff [1024]byte
16873	ringBuffer := smithyio.NewRingBuffer(buff[:])
16874
16875	body := io.TeeReader(errorBody, ringBuffer)
16876	decoder := json.NewDecoder(body)
16877	decoder.UseNumber()
16878	code, message, err := restjson.GetErrorInfo(decoder)
16879	if err != nil {
16880		var snapshot bytes.Buffer
16881		io.Copy(&snapshot, ringBuffer)
16882		err = &smithy.DeserializationError{
16883			Err:      fmt.Errorf("failed to decode response body, %w", err),
16884			Snapshot: snapshot.Bytes(),
16885		}
16886		return err
16887	}
16888
16889	errorBody.Seek(0, io.SeekStart)
16890	if len(code) != 0 {
16891		errorCode = restjson.SanitizeErrorCode(code)
16892	}
16893	if len(message) != 0 {
16894		errorMessage = message
16895	}
16896
16897	switch {
16898	case strings.EqualFold("BadRequestException", errorCode):
16899		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16900
16901	case strings.EqualFold("ForbiddenException", errorCode):
16902		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16903
16904	case strings.EqualFold("ServiceFailureException", errorCode):
16905		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16906
16907	case strings.EqualFold("ServiceUnavailableException", errorCode):
16908		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16909
16910	case strings.EqualFold("ThrottledClientException", errorCode):
16911		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16912
16913	case strings.EqualFold("UnauthorizedClientException", errorCode):
16914		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16915
16916	default:
16917		genericError := &smithy.GenericAPIError{
16918			Code:    errorCode,
16919			Message: errorMessage,
16920		}
16921		return genericError
16922
16923	}
16924}
16925
16926func awsRestjson1_deserializeOpDocumentListAppInstancesOutput(v **ListAppInstancesOutput, value interface{}) error {
16927	if v == nil {
16928		return fmt.Errorf("unexpected nil of type %T", v)
16929	}
16930	if value == nil {
16931		return nil
16932	}
16933
16934	shape, ok := value.(map[string]interface{})
16935	if !ok {
16936		return fmt.Errorf("unexpected JSON type %v", value)
16937	}
16938
16939	var sv *ListAppInstancesOutput
16940	if *v == nil {
16941		sv = &ListAppInstancesOutput{}
16942	} else {
16943		sv = *v
16944	}
16945
16946	for key, value := range shape {
16947		switch key {
16948		case "AppInstances":
16949			if err := awsRestjson1_deserializeDocumentAppInstanceList(&sv.AppInstances, value); err != nil {
16950				return err
16951			}
16952
16953		case "NextToken":
16954			if value != nil {
16955				jtv, ok := value.(string)
16956				if !ok {
16957					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
16958				}
16959				sv.NextToken = ptr.String(jtv)
16960			}
16961
16962		default:
16963			_, _ = key, value
16964
16965		}
16966	}
16967	*v = sv
16968	return nil
16969}
16970
16971type awsRestjson1_deserializeOpListAppInstanceUsers struct {
16972}
16973
16974func (*awsRestjson1_deserializeOpListAppInstanceUsers) ID() string {
16975	return "OperationDeserializer"
16976}
16977
16978func (m *awsRestjson1_deserializeOpListAppInstanceUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16979	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16980) {
16981	out, metadata, err = next.HandleDeserialize(ctx, in)
16982	if err != nil {
16983		return out, metadata, err
16984	}
16985
16986	response, ok := out.RawResponse.(*smithyhttp.Response)
16987	if !ok {
16988		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16989	}
16990
16991	if response.StatusCode < 200 || response.StatusCode >= 300 {
16992		return out, metadata, awsRestjson1_deserializeOpErrorListAppInstanceUsers(response, &metadata)
16993	}
16994	output := &ListAppInstanceUsersOutput{}
16995	out.Result = output
16996
16997	var buff [1024]byte
16998	ringBuffer := smithyio.NewRingBuffer(buff[:])
16999
17000	body := io.TeeReader(response.Body, ringBuffer)
17001
17002	decoder := json.NewDecoder(body)
17003	decoder.UseNumber()
17004	var shape interface{}
17005	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17006		var snapshot bytes.Buffer
17007		io.Copy(&snapshot, ringBuffer)
17008		err = &smithy.DeserializationError{
17009			Err:      fmt.Errorf("failed to decode response body, %w", err),
17010			Snapshot: snapshot.Bytes(),
17011		}
17012		return out, metadata, err
17013	}
17014
17015	err = awsRestjson1_deserializeOpDocumentListAppInstanceUsersOutput(&output, shape)
17016	if err != nil {
17017		var snapshot bytes.Buffer
17018		io.Copy(&snapshot, ringBuffer)
17019		return out, metadata, &smithy.DeserializationError{
17020			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17021			Snapshot: snapshot.Bytes(),
17022		}
17023	}
17024
17025	return out, metadata, err
17026}
17027
17028func awsRestjson1_deserializeOpErrorListAppInstanceUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17029	var errorBuffer bytes.Buffer
17030	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17031		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17032	}
17033	errorBody := bytes.NewReader(errorBuffer.Bytes())
17034
17035	errorCode := "UnknownError"
17036	errorMessage := errorCode
17037
17038	code := response.Header.Get("X-Amzn-ErrorType")
17039	if len(code) != 0 {
17040		errorCode = restjson.SanitizeErrorCode(code)
17041	}
17042
17043	var buff [1024]byte
17044	ringBuffer := smithyio.NewRingBuffer(buff[:])
17045
17046	body := io.TeeReader(errorBody, ringBuffer)
17047	decoder := json.NewDecoder(body)
17048	decoder.UseNumber()
17049	code, message, err := restjson.GetErrorInfo(decoder)
17050	if err != nil {
17051		var snapshot bytes.Buffer
17052		io.Copy(&snapshot, ringBuffer)
17053		err = &smithy.DeserializationError{
17054			Err:      fmt.Errorf("failed to decode response body, %w", err),
17055			Snapshot: snapshot.Bytes(),
17056		}
17057		return err
17058	}
17059
17060	errorBody.Seek(0, io.SeekStart)
17061	if len(code) != 0 {
17062		errorCode = restjson.SanitizeErrorCode(code)
17063	}
17064	if len(message) != 0 {
17065		errorMessage = message
17066	}
17067
17068	switch {
17069	case strings.EqualFold("BadRequestException", errorCode):
17070		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17071
17072	case strings.EqualFold("ForbiddenException", errorCode):
17073		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17074
17075	case strings.EqualFold("ServiceFailureException", errorCode):
17076		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17077
17078	case strings.EqualFold("ServiceUnavailableException", errorCode):
17079		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17080
17081	case strings.EqualFold("ThrottledClientException", errorCode):
17082		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17083
17084	case strings.EqualFold("UnauthorizedClientException", errorCode):
17085		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17086
17087	default:
17088		genericError := &smithy.GenericAPIError{
17089			Code:    errorCode,
17090			Message: errorMessage,
17091		}
17092		return genericError
17093
17094	}
17095}
17096
17097func awsRestjson1_deserializeOpDocumentListAppInstanceUsersOutput(v **ListAppInstanceUsersOutput, value interface{}) error {
17098	if v == nil {
17099		return fmt.Errorf("unexpected nil of type %T", v)
17100	}
17101	if value == nil {
17102		return nil
17103	}
17104
17105	shape, ok := value.(map[string]interface{})
17106	if !ok {
17107		return fmt.Errorf("unexpected JSON type %v", value)
17108	}
17109
17110	var sv *ListAppInstanceUsersOutput
17111	if *v == nil {
17112		sv = &ListAppInstanceUsersOutput{}
17113	} else {
17114		sv = *v
17115	}
17116
17117	for key, value := range shape {
17118		switch key {
17119		case "AppInstanceArn":
17120			if value != nil {
17121				jtv, ok := value.(string)
17122				if !ok {
17123					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17124				}
17125				sv.AppInstanceArn = ptr.String(jtv)
17126			}
17127
17128		case "AppInstanceUsers":
17129			if err := awsRestjson1_deserializeDocumentAppInstanceUserList(&sv.AppInstanceUsers, value); err != nil {
17130				return err
17131			}
17132
17133		case "NextToken":
17134			if value != nil {
17135				jtv, ok := value.(string)
17136				if !ok {
17137					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17138				}
17139				sv.NextToken = ptr.String(jtv)
17140			}
17141
17142		default:
17143			_, _ = key, value
17144
17145		}
17146	}
17147	*v = sv
17148	return nil
17149}
17150
17151type awsRestjson1_deserializeOpListAttendees struct {
17152}
17153
17154func (*awsRestjson1_deserializeOpListAttendees) ID() string {
17155	return "OperationDeserializer"
17156}
17157
17158func (m *awsRestjson1_deserializeOpListAttendees) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17159	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17160) {
17161	out, metadata, err = next.HandleDeserialize(ctx, in)
17162	if err != nil {
17163		return out, metadata, err
17164	}
17165
17166	response, ok := out.RawResponse.(*smithyhttp.Response)
17167	if !ok {
17168		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17169	}
17170
17171	if response.StatusCode < 200 || response.StatusCode >= 300 {
17172		return out, metadata, awsRestjson1_deserializeOpErrorListAttendees(response, &metadata)
17173	}
17174	output := &ListAttendeesOutput{}
17175	out.Result = output
17176
17177	var buff [1024]byte
17178	ringBuffer := smithyio.NewRingBuffer(buff[:])
17179
17180	body := io.TeeReader(response.Body, ringBuffer)
17181
17182	decoder := json.NewDecoder(body)
17183	decoder.UseNumber()
17184	var shape interface{}
17185	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17186		var snapshot bytes.Buffer
17187		io.Copy(&snapshot, ringBuffer)
17188		err = &smithy.DeserializationError{
17189			Err:      fmt.Errorf("failed to decode response body, %w", err),
17190			Snapshot: snapshot.Bytes(),
17191		}
17192		return out, metadata, err
17193	}
17194
17195	err = awsRestjson1_deserializeOpDocumentListAttendeesOutput(&output, shape)
17196	if err != nil {
17197		var snapshot bytes.Buffer
17198		io.Copy(&snapshot, ringBuffer)
17199		return out, metadata, &smithy.DeserializationError{
17200			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17201			Snapshot: snapshot.Bytes(),
17202		}
17203	}
17204
17205	return out, metadata, err
17206}
17207
17208func awsRestjson1_deserializeOpErrorListAttendees(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17209	var errorBuffer bytes.Buffer
17210	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17211		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17212	}
17213	errorBody := bytes.NewReader(errorBuffer.Bytes())
17214
17215	errorCode := "UnknownError"
17216	errorMessage := errorCode
17217
17218	code := response.Header.Get("X-Amzn-ErrorType")
17219	if len(code) != 0 {
17220		errorCode = restjson.SanitizeErrorCode(code)
17221	}
17222
17223	var buff [1024]byte
17224	ringBuffer := smithyio.NewRingBuffer(buff[:])
17225
17226	body := io.TeeReader(errorBody, ringBuffer)
17227	decoder := json.NewDecoder(body)
17228	decoder.UseNumber()
17229	code, message, err := restjson.GetErrorInfo(decoder)
17230	if err != nil {
17231		var snapshot bytes.Buffer
17232		io.Copy(&snapshot, ringBuffer)
17233		err = &smithy.DeserializationError{
17234			Err:      fmt.Errorf("failed to decode response body, %w", err),
17235			Snapshot: snapshot.Bytes(),
17236		}
17237		return err
17238	}
17239
17240	errorBody.Seek(0, io.SeekStart)
17241	if len(code) != 0 {
17242		errorCode = restjson.SanitizeErrorCode(code)
17243	}
17244	if len(message) != 0 {
17245		errorMessage = message
17246	}
17247
17248	switch {
17249	case strings.EqualFold("BadRequestException", errorCode):
17250		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17251
17252	case strings.EqualFold("ForbiddenException", errorCode):
17253		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17254
17255	case strings.EqualFold("NotFoundException", errorCode):
17256		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
17257
17258	case strings.EqualFold("ServiceFailureException", errorCode):
17259		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17260
17261	case strings.EqualFold("ServiceUnavailableException", errorCode):
17262		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17263
17264	case strings.EqualFold("ThrottledClientException", errorCode):
17265		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17266
17267	case strings.EqualFold("UnauthorizedClientException", errorCode):
17268		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17269
17270	default:
17271		genericError := &smithy.GenericAPIError{
17272			Code:    errorCode,
17273			Message: errorMessage,
17274		}
17275		return genericError
17276
17277	}
17278}
17279
17280func awsRestjson1_deserializeOpDocumentListAttendeesOutput(v **ListAttendeesOutput, value interface{}) error {
17281	if v == nil {
17282		return fmt.Errorf("unexpected nil of type %T", v)
17283	}
17284	if value == nil {
17285		return nil
17286	}
17287
17288	shape, ok := value.(map[string]interface{})
17289	if !ok {
17290		return fmt.Errorf("unexpected JSON type %v", value)
17291	}
17292
17293	var sv *ListAttendeesOutput
17294	if *v == nil {
17295		sv = &ListAttendeesOutput{}
17296	} else {
17297		sv = *v
17298	}
17299
17300	for key, value := range shape {
17301		switch key {
17302		case "Attendees":
17303			if err := awsRestjson1_deserializeDocumentAttendeeList(&sv.Attendees, value); err != nil {
17304				return err
17305			}
17306
17307		case "NextToken":
17308			if value != nil {
17309				jtv, ok := value.(string)
17310				if !ok {
17311					return fmt.Errorf("expected String to be of type string, got %T instead", value)
17312				}
17313				sv.NextToken = ptr.String(jtv)
17314			}
17315
17316		default:
17317			_, _ = key, value
17318
17319		}
17320	}
17321	*v = sv
17322	return nil
17323}
17324
17325type awsRestjson1_deserializeOpListAttendeeTags struct {
17326}
17327
17328func (*awsRestjson1_deserializeOpListAttendeeTags) ID() string {
17329	return "OperationDeserializer"
17330}
17331
17332func (m *awsRestjson1_deserializeOpListAttendeeTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17333	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17334) {
17335	out, metadata, err = next.HandleDeserialize(ctx, in)
17336	if err != nil {
17337		return out, metadata, err
17338	}
17339
17340	response, ok := out.RawResponse.(*smithyhttp.Response)
17341	if !ok {
17342		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17343	}
17344
17345	if response.StatusCode < 200 || response.StatusCode >= 300 {
17346		return out, metadata, awsRestjson1_deserializeOpErrorListAttendeeTags(response, &metadata)
17347	}
17348	output := &ListAttendeeTagsOutput{}
17349	out.Result = output
17350
17351	var buff [1024]byte
17352	ringBuffer := smithyio.NewRingBuffer(buff[:])
17353
17354	body := io.TeeReader(response.Body, ringBuffer)
17355
17356	decoder := json.NewDecoder(body)
17357	decoder.UseNumber()
17358	var shape interface{}
17359	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17360		var snapshot bytes.Buffer
17361		io.Copy(&snapshot, ringBuffer)
17362		err = &smithy.DeserializationError{
17363			Err:      fmt.Errorf("failed to decode response body, %w", err),
17364			Snapshot: snapshot.Bytes(),
17365		}
17366		return out, metadata, err
17367	}
17368
17369	err = awsRestjson1_deserializeOpDocumentListAttendeeTagsOutput(&output, shape)
17370	if err != nil {
17371		var snapshot bytes.Buffer
17372		io.Copy(&snapshot, ringBuffer)
17373		return out, metadata, &smithy.DeserializationError{
17374			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17375			Snapshot: snapshot.Bytes(),
17376		}
17377	}
17378
17379	return out, metadata, err
17380}
17381
17382func awsRestjson1_deserializeOpErrorListAttendeeTags(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17383	var errorBuffer bytes.Buffer
17384	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17385		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17386	}
17387	errorBody := bytes.NewReader(errorBuffer.Bytes())
17388
17389	errorCode := "UnknownError"
17390	errorMessage := errorCode
17391
17392	code := response.Header.Get("X-Amzn-ErrorType")
17393	if len(code) != 0 {
17394		errorCode = restjson.SanitizeErrorCode(code)
17395	}
17396
17397	var buff [1024]byte
17398	ringBuffer := smithyio.NewRingBuffer(buff[:])
17399
17400	body := io.TeeReader(errorBody, ringBuffer)
17401	decoder := json.NewDecoder(body)
17402	decoder.UseNumber()
17403	code, message, err := restjson.GetErrorInfo(decoder)
17404	if err != nil {
17405		var snapshot bytes.Buffer
17406		io.Copy(&snapshot, ringBuffer)
17407		err = &smithy.DeserializationError{
17408			Err:      fmt.Errorf("failed to decode response body, %w", err),
17409			Snapshot: snapshot.Bytes(),
17410		}
17411		return err
17412	}
17413
17414	errorBody.Seek(0, io.SeekStart)
17415	if len(code) != 0 {
17416		errorCode = restjson.SanitizeErrorCode(code)
17417	}
17418	if len(message) != 0 {
17419		errorMessage = message
17420	}
17421
17422	switch {
17423	case strings.EqualFold("BadRequestException", errorCode):
17424		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17425
17426	case strings.EqualFold("ForbiddenException", errorCode):
17427		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17428
17429	case strings.EqualFold("NotFoundException", errorCode):
17430		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
17431
17432	case strings.EqualFold("ServiceFailureException", errorCode):
17433		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17434
17435	case strings.EqualFold("ServiceUnavailableException", errorCode):
17436		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17437
17438	case strings.EqualFold("ThrottledClientException", errorCode):
17439		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17440
17441	case strings.EqualFold("UnauthorizedClientException", errorCode):
17442		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17443
17444	default:
17445		genericError := &smithy.GenericAPIError{
17446			Code:    errorCode,
17447			Message: errorMessage,
17448		}
17449		return genericError
17450
17451	}
17452}
17453
17454func awsRestjson1_deserializeOpDocumentListAttendeeTagsOutput(v **ListAttendeeTagsOutput, value interface{}) error {
17455	if v == nil {
17456		return fmt.Errorf("unexpected nil of type %T", v)
17457	}
17458	if value == nil {
17459		return nil
17460	}
17461
17462	shape, ok := value.(map[string]interface{})
17463	if !ok {
17464		return fmt.Errorf("unexpected JSON type %v", value)
17465	}
17466
17467	var sv *ListAttendeeTagsOutput
17468	if *v == nil {
17469		sv = &ListAttendeeTagsOutput{}
17470	} else {
17471		sv = *v
17472	}
17473
17474	for key, value := range shape {
17475		switch key {
17476		case "Tags":
17477			if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil {
17478				return err
17479			}
17480
17481		default:
17482			_, _ = key, value
17483
17484		}
17485	}
17486	*v = sv
17487	return nil
17488}
17489
17490type awsRestjson1_deserializeOpListBots struct {
17491}
17492
17493func (*awsRestjson1_deserializeOpListBots) ID() string {
17494	return "OperationDeserializer"
17495}
17496
17497func (m *awsRestjson1_deserializeOpListBots) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17498	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17499) {
17500	out, metadata, err = next.HandleDeserialize(ctx, in)
17501	if err != nil {
17502		return out, metadata, err
17503	}
17504
17505	response, ok := out.RawResponse.(*smithyhttp.Response)
17506	if !ok {
17507		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17508	}
17509
17510	if response.StatusCode < 200 || response.StatusCode >= 300 {
17511		return out, metadata, awsRestjson1_deserializeOpErrorListBots(response, &metadata)
17512	}
17513	output := &ListBotsOutput{}
17514	out.Result = output
17515
17516	var buff [1024]byte
17517	ringBuffer := smithyio.NewRingBuffer(buff[:])
17518
17519	body := io.TeeReader(response.Body, ringBuffer)
17520
17521	decoder := json.NewDecoder(body)
17522	decoder.UseNumber()
17523	var shape interface{}
17524	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17525		var snapshot bytes.Buffer
17526		io.Copy(&snapshot, ringBuffer)
17527		err = &smithy.DeserializationError{
17528			Err:      fmt.Errorf("failed to decode response body, %w", err),
17529			Snapshot: snapshot.Bytes(),
17530		}
17531		return out, metadata, err
17532	}
17533
17534	err = awsRestjson1_deserializeOpDocumentListBotsOutput(&output, shape)
17535	if err != nil {
17536		var snapshot bytes.Buffer
17537		io.Copy(&snapshot, ringBuffer)
17538		return out, metadata, &smithy.DeserializationError{
17539			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17540			Snapshot: snapshot.Bytes(),
17541		}
17542	}
17543
17544	return out, metadata, err
17545}
17546
17547func awsRestjson1_deserializeOpErrorListBots(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17548	var errorBuffer bytes.Buffer
17549	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17550		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17551	}
17552	errorBody := bytes.NewReader(errorBuffer.Bytes())
17553
17554	errorCode := "UnknownError"
17555	errorMessage := errorCode
17556
17557	code := response.Header.Get("X-Amzn-ErrorType")
17558	if len(code) != 0 {
17559		errorCode = restjson.SanitizeErrorCode(code)
17560	}
17561
17562	var buff [1024]byte
17563	ringBuffer := smithyio.NewRingBuffer(buff[:])
17564
17565	body := io.TeeReader(errorBody, ringBuffer)
17566	decoder := json.NewDecoder(body)
17567	decoder.UseNumber()
17568	code, message, err := restjson.GetErrorInfo(decoder)
17569	if err != nil {
17570		var snapshot bytes.Buffer
17571		io.Copy(&snapshot, ringBuffer)
17572		err = &smithy.DeserializationError{
17573			Err:      fmt.Errorf("failed to decode response body, %w", err),
17574			Snapshot: snapshot.Bytes(),
17575		}
17576		return err
17577	}
17578
17579	errorBody.Seek(0, io.SeekStart)
17580	if len(code) != 0 {
17581		errorCode = restjson.SanitizeErrorCode(code)
17582	}
17583	if len(message) != 0 {
17584		errorMessage = message
17585	}
17586
17587	switch {
17588	case strings.EqualFold("BadRequestException", errorCode):
17589		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17590
17591	case strings.EqualFold("ForbiddenException", errorCode):
17592		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17593
17594	case strings.EqualFold("NotFoundException", errorCode):
17595		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
17596
17597	case strings.EqualFold("ServiceFailureException", errorCode):
17598		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17599
17600	case strings.EqualFold("ServiceUnavailableException", errorCode):
17601		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17602
17603	case strings.EqualFold("ThrottledClientException", errorCode):
17604		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17605
17606	case strings.EqualFold("UnauthorizedClientException", errorCode):
17607		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17608
17609	default:
17610		genericError := &smithy.GenericAPIError{
17611			Code:    errorCode,
17612			Message: errorMessage,
17613		}
17614		return genericError
17615
17616	}
17617}
17618
17619func awsRestjson1_deserializeOpDocumentListBotsOutput(v **ListBotsOutput, value interface{}) error {
17620	if v == nil {
17621		return fmt.Errorf("unexpected nil of type %T", v)
17622	}
17623	if value == nil {
17624		return nil
17625	}
17626
17627	shape, ok := value.(map[string]interface{})
17628	if !ok {
17629		return fmt.Errorf("unexpected JSON type %v", value)
17630	}
17631
17632	var sv *ListBotsOutput
17633	if *v == nil {
17634		sv = &ListBotsOutput{}
17635	} else {
17636		sv = *v
17637	}
17638
17639	for key, value := range shape {
17640		switch key {
17641		case "Bots":
17642			if err := awsRestjson1_deserializeDocumentBotList(&sv.Bots, value); err != nil {
17643				return err
17644			}
17645
17646		case "NextToken":
17647			if value != nil {
17648				jtv, ok := value.(string)
17649				if !ok {
17650					return fmt.Errorf("expected String to be of type string, got %T instead", value)
17651				}
17652				sv.NextToken = ptr.String(jtv)
17653			}
17654
17655		default:
17656			_, _ = key, value
17657
17658		}
17659	}
17660	*v = sv
17661	return nil
17662}
17663
17664type awsRestjson1_deserializeOpListChannelBans struct {
17665}
17666
17667func (*awsRestjson1_deserializeOpListChannelBans) ID() string {
17668	return "OperationDeserializer"
17669}
17670
17671func (m *awsRestjson1_deserializeOpListChannelBans) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17672	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17673) {
17674	out, metadata, err = next.HandleDeserialize(ctx, in)
17675	if err != nil {
17676		return out, metadata, err
17677	}
17678
17679	response, ok := out.RawResponse.(*smithyhttp.Response)
17680	if !ok {
17681		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17682	}
17683
17684	if response.StatusCode < 200 || response.StatusCode >= 300 {
17685		return out, metadata, awsRestjson1_deserializeOpErrorListChannelBans(response, &metadata)
17686	}
17687	output := &ListChannelBansOutput{}
17688	out.Result = output
17689
17690	var buff [1024]byte
17691	ringBuffer := smithyio.NewRingBuffer(buff[:])
17692
17693	body := io.TeeReader(response.Body, ringBuffer)
17694
17695	decoder := json.NewDecoder(body)
17696	decoder.UseNumber()
17697	var shape interface{}
17698	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17699		var snapshot bytes.Buffer
17700		io.Copy(&snapshot, ringBuffer)
17701		err = &smithy.DeserializationError{
17702			Err:      fmt.Errorf("failed to decode response body, %w", err),
17703			Snapshot: snapshot.Bytes(),
17704		}
17705		return out, metadata, err
17706	}
17707
17708	err = awsRestjson1_deserializeOpDocumentListChannelBansOutput(&output, shape)
17709	if err != nil {
17710		var snapshot bytes.Buffer
17711		io.Copy(&snapshot, ringBuffer)
17712		return out, metadata, &smithy.DeserializationError{
17713			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17714			Snapshot: snapshot.Bytes(),
17715		}
17716	}
17717
17718	return out, metadata, err
17719}
17720
17721func awsRestjson1_deserializeOpErrorListChannelBans(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17722	var errorBuffer bytes.Buffer
17723	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17724		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17725	}
17726	errorBody := bytes.NewReader(errorBuffer.Bytes())
17727
17728	errorCode := "UnknownError"
17729	errorMessage := errorCode
17730
17731	code := response.Header.Get("X-Amzn-ErrorType")
17732	if len(code) != 0 {
17733		errorCode = restjson.SanitizeErrorCode(code)
17734	}
17735
17736	var buff [1024]byte
17737	ringBuffer := smithyio.NewRingBuffer(buff[:])
17738
17739	body := io.TeeReader(errorBody, ringBuffer)
17740	decoder := json.NewDecoder(body)
17741	decoder.UseNumber()
17742	code, message, err := restjson.GetErrorInfo(decoder)
17743	if err != nil {
17744		var snapshot bytes.Buffer
17745		io.Copy(&snapshot, ringBuffer)
17746		err = &smithy.DeserializationError{
17747			Err:      fmt.Errorf("failed to decode response body, %w", err),
17748			Snapshot: snapshot.Bytes(),
17749		}
17750		return err
17751	}
17752
17753	errorBody.Seek(0, io.SeekStart)
17754	if len(code) != 0 {
17755		errorCode = restjson.SanitizeErrorCode(code)
17756	}
17757	if len(message) != 0 {
17758		errorMessage = message
17759	}
17760
17761	switch {
17762	case strings.EqualFold("BadRequestException", errorCode):
17763		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17764
17765	case strings.EqualFold("ForbiddenException", errorCode):
17766		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17767
17768	case strings.EqualFold("ServiceFailureException", errorCode):
17769		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17770
17771	case strings.EqualFold("ServiceUnavailableException", errorCode):
17772		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17773
17774	case strings.EqualFold("ThrottledClientException", errorCode):
17775		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17776
17777	case strings.EqualFold("UnauthorizedClientException", errorCode):
17778		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17779
17780	default:
17781		genericError := &smithy.GenericAPIError{
17782			Code:    errorCode,
17783			Message: errorMessage,
17784		}
17785		return genericError
17786
17787	}
17788}
17789
17790func awsRestjson1_deserializeOpDocumentListChannelBansOutput(v **ListChannelBansOutput, value interface{}) error {
17791	if v == nil {
17792		return fmt.Errorf("unexpected nil of type %T", v)
17793	}
17794	if value == nil {
17795		return nil
17796	}
17797
17798	shape, ok := value.(map[string]interface{})
17799	if !ok {
17800		return fmt.Errorf("unexpected JSON type %v", value)
17801	}
17802
17803	var sv *ListChannelBansOutput
17804	if *v == nil {
17805		sv = &ListChannelBansOutput{}
17806	} else {
17807		sv = *v
17808	}
17809
17810	for key, value := range shape {
17811		switch key {
17812		case "ChannelArn":
17813			if value != nil {
17814				jtv, ok := value.(string)
17815				if !ok {
17816					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17817				}
17818				sv.ChannelArn = ptr.String(jtv)
17819			}
17820
17821		case "ChannelBans":
17822			if err := awsRestjson1_deserializeDocumentChannelBanSummaryList(&sv.ChannelBans, value); err != nil {
17823				return err
17824			}
17825
17826		case "NextToken":
17827			if value != nil {
17828				jtv, ok := value.(string)
17829				if !ok {
17830					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17831				}
17832				sv.NextToken = ptr.String(jtv)
17833			}
17834
17835		default:
17836			_, _ = key, value
17837
17838		}
17839	}
17840	*v = sv
17841	return nil
17842}
17843
17844type awsRestjson1_deserializeOpListChannelMemberships struct {
17845}
17846
17847func (*awsRestjson1_deserializeOpListChannelMemberships) ID() string {
17848	return "OperationDeserializer"
17849}
17850
17851func (m *awsRestjson1_deserializeOpListChannelMemberships) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17852	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17853) {
17854	out, metadata, err = next.HandleDeserialize(ctx, in)
17855	if err != nil {
17856		return out, metadata, err
17857	}
17858
17859	response, ok := out.RawResponse.(*smithyhttp.Response)
17860	if !ok {
17861		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17862	}
17863
17864	if response.StatusCode < 200 || response.StatusCode >= 300 {
17865		return out, metadata, awsRestjson1_deserializeOpErrorListChannelMemberships(response, &metadata)
17866	}
17867	output := &ListChannelMembershipsOutput{}
17868	out.Result = output
17869
17870	var buff [1024]byte
17871	ringBuffer := smithyio.NewRingBuffer(buff[:])
17872
17873	body := io.TeeReader(response.Body, ringBuffer)
17874
17875	decoder := json.NewDecoder(body)
17876	decoder.UseNumber()
17877	var shape interface{}
17878	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17879		var snapshot bytes.Buffer
17880		io.Copy(&snapshot, ringBuffer)
17881		err = &smithy.DeserializationError{
17882			Err:      fmt.Errorf("failed to decode response body, %w", err),
17883			Snapshot: snapshot.Bytes(),
17884		}
17885		return out, metadata, err
17886	}
17887
17888	err = awsRestjson1_deserializeOpDocumentListChannelMembershipsOutput(&output, shape)
17889	if err != nil {
17890		var snapshot bytes.Buffer
17891		io.Copy(&snapshot, ringBuffer)
17892		return out, metadata, &smithy.DeserializationError{
17893			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17894			Snapshot: snapshot.Bytes(),
17895		}
17896	}
17897
17898	return out, metadata, err
17899}
17900
17901func awsRestjson1_deserializeOpErrorListChannelMemberships(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17902	var errorBuffer bytes.Buffer
17903	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17904		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17905	}
17906	errorBody := bytes.NewReader(errorBuffer.Bytes())
17907
17908	errorCode := "UnknownError"
17909	errorMessage := errorCode
17910
17911	code := response.Header.Get("X-Amzn-ErrorType")
17912	if len(code) != 0 {
17913		errorCode = restjson.SanitizeErrorCode(code)
17914	}
17915
17916	var buff [1024]byte
17917	ringBuffer := smithyio.NewRingBuffer(buff[:])
17918
17919	body := io.TeeReader(errorBody, ringBuffer)
17920	decoder := json.NewDecoder(body)
17921	decoder.UseNumber()
17922	code, message, err := restjson.GetErrorInfo(decoder)
17923	if err != nil {
17924		var snapshot bytes.Buffer
17925		io.Copy(&snapshot, ringBuffer)
17926		err = &smithy.DeserializationError{
17927			Err:      fmt.Errorf("failed to decode response body, %w", err),
17928			Snapshot: snapshot.Bytes(),
17929		}
17930		return err
17931	}
17932
17933	errorBody.Seek(0, io.SeekStart)
17934	if len(code) != 0 {
17935		errorCode = restjson.SanitizeErrorCode(code)
17936	}
17937	if len(message) != 0 {
17938		errorMessage = message
17939	}
17940
17941	switch {
17942	case strings.EqualFold("BadRequestException", errorCode):
17943		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17944
17945	case strings.EqualFold("ForbiddenException", errorCode):
17946		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17947
17948	case strings.EqualFold("ServiceFailureException", errorCode):
17949		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17950
17951	case strings.EqualFold("ServiceUnavailableException", errorCode):
17952		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17953
17954	case strings.EqualFold("ThrottledClientException", errorCode):
17955		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17956
17957	case strings.EqualFold("UnauthorizedClientException", errorCode):
17958		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17959
17960	default:
17961		genericError := &smithy.GenericAPIError{
17962			Code:    errorCode,
17963			Message: errorMessage,
17964		}
17965		return genericError
17966
17967	}
17968}
17969
17970func awsRestjson1_deserializeOpDocumentListChannelMembershipsOutput(v **ListChannelMembershipsOutput, value interface{}) error {
17971	if v == nil {
17972		return fmt.Errorf("unexpected nil of type %T", v)
17973	}
17974	if value == nil {
17975		return nil
17976	}
17977
17978	shape, ok := value.(map[string]interface{})
17979	if !ok {
17980		return fmt.Errorf("unexpected JSON type %v", value)
17981	}
17982
17983	var sv *ListChannelMembershipsOutput
17984	if *v == nil {
17985		sv = &ListChannelMembershipsOutput{}
17986	} else {
17987		sv = *v
17988	}
17989
17990	for key, value := range shape {
17991		switch key {
17992		case "ChannelArn":
17993			if value != nil {
17994				jtv, ok := value.(string)
17995				if !ok {
17996					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17997				}
17998				sv.ChannelArn = ptr.String(jtv)
17999			}
18000
18001		case "ChannelMemberships":
18002			if err := awsRestjson1_deserializeDocumentChannelMembershipSummaryList(&sv.ChannelMemberships, value); err != nil {
18003				return err
18004			}
18005
18006		case "NextToken":
18007			if value != nil {
18008				jtv, ok := value.(string)
18009				if !ok {
18010					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18011				}
18012				sv.NextToken = ptr.String(jtv)
18013			}
18014
18015		default:
18016			_, _ = key, value
18017
18018		}
18019	}
18020	*v = sv
18021	return nil
18022}
18023
18024type awsRestjson1_deserializeOpListChannelMembershipsForAppInstanceUser struct {
18025}
18026
18027func (*awsRestjson1_deserializeOpListChannelMembershipsForAppInstanceUser) ID() string {
18028	return "OperationDeserializer"
18029}
18030
18031func (m *awsRestjson1_deserializeOpListChannelMembershipsForAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18032	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18033) {
18034	out, metadata, err = next.HandleDeserialize(ctx, in)
18035	if err != nil {
18036		return out, metadata, err
18037	}
18038
18039	response, ok := out.RawResponse.(*smithyhttp.Response)
18040	if !ok {
18041		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18042	}
18043
18044	if response.StatusCode < 200 || response.StatusCode >= 300 {
18045		return out, metadata, awsRestjson1_deserializeOpErrorListChannelMembershipsForAppInstanceUser(response, &metadata)
18046	}
18047	output := &ListChannelMembershipsForAppInstanceUserOutput{}
18048	out.Result = output
18049
18050	var buff [1024]byte
18051	ringBuffer := smithyio.NewRingBuffer(buff[:])
18052
18053	body := io.TeeReader(response.Body, ringBuffer)
18054
18055	decoder := json.NewDecoder(body)
18056	decoder.UseNumber()
18057	var shape interface{}
18058	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18059		var snapshot bytes.Buffer
18060		io.Copy(&snapshot, ringBuffer)
18061		err = &smithy.DeserializationError{
18062			Err:      fmt.Errorf("failed to decode response body, %w", err),
18063			Snapshot: snapshot.Bytes(),
18064		}
18065		return out, metadata, err
18066	}
18067
18068	err = awsRestjson1_deserializeOpDocumentListChannelMembershipsForAppInstanceUserOutput(&output, shape)
18069	if err != nil {
18070		var snapshot bytes.Buffer
18071		io.Copy(&snapshot, ringBuffer)
18072		return out, metadata, &smithy.DeserializationError{
18073			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18074			Snapshot: snapshot.Bytes(),
18075		}
18076	}
18077
18078	return out, metadata, err
18079}
18080
18081func awsRestjson1_deserializeOpErrorListChannelMembershipsForAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18082	var errorBuffer bytes.Buffer
18083	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18084		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18085	}
18086	errorBody := bytes.NewReader(errorBuffer.Bytes())
18087
18088	errorCode := "UnknownError"
18089	errorMessage := errorCode
18090
18091	code := response.Header.Get("X-Amzn-ErrorType")
18092	if len(code) != 0 {
18093		errorCode = restjson.SanitizeErrorCode(code)
18094	}
18095
18096	var buff [1024]byte
18097	ringBuffer := smithyio.NewRingBuffer(buff[:])
18098
18099	body := io.TeeReader(errorBody, ringBuffer)
18100	decoder := json.NewDecoder(body)
18101	decoder.UseNumber()
18102	code, message, err := restjson.GetErrorInfo(decoder)
18103	if err != nil {
18104		var snapshot bytes.Buffer
18105		io.Copy(&snapshot, ringBuffer)
18106		err = &smithy.DeserializationError{
18107			Err:      fmt.Errorf("failed to decode response body, %w", err),
18108			Snapshot: snapshot.Bytes(),
18109		}
18110		return err
18111	}
18112
18113	errorBody.Seek(0, io.SeekStart)
18114	if len(code) != 0 {
18115		errorCode = restjson.SanitizeErrorCode(code)
18116	}
18117	if len(message) != 0 {
18118		errorMessage = message
18119	}
18120
18121	switch {
18122	case strings.EqualFold("BadRequestException", errorCode):
18123		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18124
18125	case strings.EqualFold("ForbiddenException", errorCode):
18126		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18127
18128	case strings.EqualFold("ServiceFailureException", errorCode):
18129		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18130
18131	case strings.EqualFold("ServiceUnavailableException", errorCode):
18132		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18133
18134	case strings.EqualFold("ThrottledClientException", errorCode):
18135		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18136
18137	case strings.EqualFold("UnauthorizedClientException", errorCode):
18138		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18139
18140	default:
18141		genericError := &smithy.GenericAPIError{
18142			Code:    errorCode,
18143			Message: errorMessage,
18144		}
18145		return genericError
18146
18147	}
18148}
18149
18150func awsRestjson1_deserializeOpDocumentListChannelMembershipsForAppInstanceUserOutput(v **ListChannelMembershipsForAppInstanceUserOutput, value interface{}) error {
18151	if v == nil {
18152		return fmt.Errorf("unexpected nil of type %T", v)
18153	}
18154	if value == nil {
18155		return nil
18156	}
18157
18158	shape, ok := value.(map[string]interface{})
18159	if !ok {
18160		return fmt.Errorf("unexpected JSON type %v", value)
18161	}
18162
18163	var sv *ListChannelMembershipsForAppInstanceUserOutput
18164	if *v == nil {
18165		sv = &ListChannelMembershipsForAppInstanceUserOutput{}
18166	} else {
18167		sv = *v
18168	}
18169
18170	for key, value := range shape {
18171		switch key {
18172		case "ChannelMemberships":
18173			if err := awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummaryList(&sv.ChannelMemberships, value); err != nil {
18174				return err
18175			}
18176
18177		case "NextToken":
18178			if value != nil {
18179				jtv, ok := value.(string)
18180				if !ok {
18181					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18182				}
18183				sv.NextToken = ptr.String(jtv)
18184			}
18185
18186		default:
18187			_, _ = key, value
18188
18189		}
18190	}
18191	*v = sv
18192	return nil
18193}
18194
18195type awsRestjson1_deserializeOpListChannelMessages struct {
18196}
18197
18198func (*awsRestjson1_deserializeOpListChannelMessages) ID() string {
18199	return "OperationDeserializer"
18200}
18201
18202func (m *awsRestjson1_deserializeOpListChannelMessages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18203	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18204) {
18205	out, metadata, err = next.HandleDeserialize(ctx, in)
18206	if err != nil {
18207		return out, metadata, err
18208	}
18209
18210	response, ok := out.RawResponse.(*smithyhttp.Response)
18211	if !ok {
18212		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18213	}
18214
18215	if response.StatusCode < 200 || response.StatusCode >= 300 {
18216		return out, metadata, awsRestjson1_deserializeOpErrorListChannelMessages(response, &metadata)
18217	}
18218	output := &ListChannelMessagesOutput{}
18219	out.Result = output
18220
18221	var buff [1024]byte
18222	ringBuffer := smithyio.NewRingBuffer(buff[:])
18223
18224	body := io.TeeReader(response.Body, ringBuffer)
18225
18226	decoder := json.NewDecoder(body)
18227	decoder.UseNumber()
18228	var shape interface{}
18229	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18230		var snapshot bytes.Buffer
18231		io.Copy(&snapshot, ringBuffer)
18232		err = &smithy.DeserializationError{
18233			Err:      fmt.Errorf("failed to decode response body, %w", err),
18234			Snapshot: snapshot.Bytes(),
18235		}
18236		return out, metadata, err
18237	}
18238
18239	err = awsRestjson1_deserializeOpDocumentListChannelMessagesOutput(&output, shape)
18240	if err != nil {
18241		var snapshot bytes.Buffer
18242		io.Copy(&snapshot, ringBuffer)
18243		return out, metadata, &smithy.DeserializationError{
18244			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18245			Snapshot: snapshot.Bytes(),
18246		}
18247	}
18248
18249	return out, metadata, err
18250}
18251
18252func awsRestjson1_deserializeOpErrorListChannelMessages(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18253	var errorBuffer bytes.Buffer
18254	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18255		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18256	}
18257	errorBody := bytes.NewReader(errorBuffer.Bytes())
18258
18259	errorCode := "UnknownError"
18260	errorMessage := errorCode
18261
18262	code := response.Header.Get("X-Amzn-ErrorType")
18263	if len(code) != 0 {
18264		errorCode = restjson.SanitizeErrorCode(code)
18265	}
18266
18267	var buff [1024]byte
18268	ringBuffer := smithyio.NewRingBuffer(buff[:])
18269
18270	body := io.TeeReader(errorBody, ringBuffer)
18271	decoder := json.NewDecoder(body)
18272	decoder.UseNumber()
18273	code, message, err := restjson.GetErrorInfo(decoder)
18274	if err != nil {
18275		var snapshot bytes.Buffer
18276		io.Copy(&snapshot, ringBuffer)
18277		err = &smithy.DeserializationError{
18278			Err:      fmt.Errorf("failed to decode response body, %w", err),
18279			Snapshot: snapshot.Bytes(),
18280		}
18281		return err
18282	}
18283
18284	errorBody.Seek(0, io.SeekStart)
18285	if len(code) != 0 {
18286		errorCode = restjson.SanitizeErrorCode(code)
18287	}
18288	if len(message) != 0 {
18289		errorMessage = message
18290	}
18291
18292	switch {
18293	case strings.EqualFold("BadRequestException", errorCode):
18294		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18295
18296	case strings.EqualFold("ForbiddenException", errorCode):
18297		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18298
18299	case strings.EqualFold("ServiceFailureException", errorCode):
18300		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18301
18302	case strings.EqualFold("ServiceUnavailableException", errorCode):
18303		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18304
18305	case strings.EqualFold("ThrottledClientException", errorCode):
18306		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18307
18308	case strings.EqualFold("UnauthorizedClientException", errorCode):
18309		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18310
18311	default:
18312		genericError := &smithy.GenericAPIError{
18313			Code:    errorCode,
18314			Message: errorMessage,
18315		}
18316		return genericError
18317
18318	}
18319}
18320
18321func awsRestjson1_deserializeOpDocumentListChannelMessagesOutput(v **ListChannelMessagesOutput, value interface{}) error {
18322	if v == nil {
18323		return fmt.Errorf("unexpected nil of type %T", v)
18324	}
18325	if value == nil {
18326		return nil
18327	}
18328
18329	shape, ok := value.(map[string]interface{})
18330	if !ok {
18331		return fmt.Errorf("unexpected JSON type %v", value)
18332	}
18333
18334	var sv *ListChannelMessagesOutput
18335	if *v == nil {
18336		sv = &ListChannelMessagesOutput{}
18337	} else {
18338		sv = *v
18339	}
18340
18341	for key, value := range shape {
18342		switch key {
18343		case "ChannelArn":
18344			if value != nil {
18345				jtv, ok := value.(string)
18346				if !ok {
18347					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
18348				}
18349				sv.ChannelArn = ptr.String(jtv)
18350			}
18351
18352		case "ChannelMessages":
18353			if err := awsRestjson1_deserializeDocumentChannelMessageSummaryList(&sv.ChannelMessages, value); err != nil {
18354				return err
18355			}
18356
18357		case "NextToken":
18358			if value != nil {
18359				jtv, ok := value.(string)
18360				if !ok {
18361					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18362				}
18363				sv.NextToken = ptr.String(jtv)
18364			}
18365
18366		default:
18367			_, _ = key, value
18368
18369		}
18370	}
18371	*v = sv
18372	return nil
18373}
18374
18375type awsRestjson1_deserializeOpListChannelModerators struct {
18376}
18377
18378func (*awsRestjson1_deserializeOpListChannelModerators) ID() string {
18379	return "OperationDeserializer"
18380}
18381
18382func (m *awsRestjson1_deserializeOpListChannelModerators) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18383	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18384) {
18385	out, metadata, err = next.HandleDeserialize(ctx, in)
18386	if err != nil {
18387		return out, metadata, err
18388	}
18389
18390	response, ok := out.RawResponse.(*smithyhttp.Response)
18391	if !ok {
18392		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18393	}
18394
18395	if response.StatusCode < 200 || response.StatusCode >= 300 {
18396		return out, metadata, awsRestjson1_deserializeOpErrorListChannelModerators(response, &metadata)
18397	}
18398	output := &ListChannelModeratorsOutput{}
18399	out.Result = output
18400
18401	var buff [1024]byte
18402	ringBuffer := smithyio.NewRingBuffer(buff[:])
18403
18404	body := io.TeeReader(response.Body, ringBuffer)
18405
18406	decoder := json.NewDecoder(body)
18407	decoder.UseNumber()
18408	var shape interface{}
18409	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18410		var snapshot bytes.Buffer
18411		io.Copy(&snapshot, ringBuffer)
18412		err = &smithy.DeserializationError{
18413			Err:      fmt.Errorf("failed to decode response body, %w", err),
18414			Snapshot: snapshot.Bytes(),
18415		}
18416		return out, metadata, err
18417	}
18418
18419	err = awsRestjson1_deserializeOpDocumentListChannelModeratorsOutput(&output, shape)
18420	if err != nil {
18421		var snapshot bytes.Buffer
18422		io.Copy(&snapshot, ringBuffer)
18423		return out, metadata, &smithy.DeserializationError{
18424			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18425			Snapshot: snapshot.Bytes(),
18426		}
18427	}
18428
18429	return out, metadata, err
18430}
18431
18432func awsRestjson1_deserializeOpErrorListChannelModerators(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18433	var errorBuffer bytes.Buffer
18434	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18435		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18436	}
18437	errorBody := bytes.NewReader(errorBuffer.Bytes())
18438
18439	errorCode := "UnknownError"
18440	errorMessage := errorCode
18441
18442	code := response.Header.Get("X-Amzn-ErrorType")
18443	if len(code) != 0 {
18444		errorCode = restjson.SanitizeErrorCode(code)
18445	}
18446
18447	var buff [1024]byte
18448	ringBuffer := smithyio.NewRingBuffer(buff[:])
18449
18450	body := io.TeeReader(errorBody, ringBuffer)
18451	decoder := json.NewDecoder(body)
18452	decoder.UseNumber()
18453	code, message, err := restjson.GetErrorInfo(decoder)
18454	if err != nil {
18455		var snapshot bytes.Buffer
18456		io.Copy(&snapshot, ringBuffer)
18457		err = &smithy.DeserializationError{
18458			Err:      fmt.Errorf("failed to decode response body, %w", err),
18459			Snapshot: snapshot.Bytes(),
18460		}
18461		return err
18462	}
18463
18464	errorBody.Seek(0, io.SeekStart)
18465	if len(code) != 0 {
18466		errorCode = restjson.SanitizeErrorCode(code)
18467	}
18468	if len(message) != 0 {
18469		errorMessage = message
18470	}
18471
18472	switch {
18473	case strings.EqualFold("BadRequestException", errorCode):
18474		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18475
18476	case strings.EqualFold("ForbiddenException", errorCode):
18477		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18478
18479	case strings.EqualFold("ServiceFailureException", errorCode):
18480		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18481
18482	case strings.EqualFold("ServiceUnavailableException", errorCode):
18483		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18484
18485	case strings.EqualFold("ThrottledClientException", errorCode):
18486		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18487
18488	case strings.EqualFold("UnauthorizedClientException", errorCode):
18489		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18490
18491	default:
18492		genericError := &smithy.GenericAPIError{
18493			Code:    errorCode,
18494			Message: errorMessage,
18495		}
18496		return genericError
18497
18498	}
18499}
18500
18501func awsRestjson1_deserializeOpDocumentListChannelModeratorsOutput(v **ListChannelModeratorsOutput, value interface{}) error {
18502	if v == nil {
18503		return fmt.Errorf("unexpected nil of type %T", v)
18504	}
18505	if value == nil {
18506		return nil
18507	}
18508
18509	shape, ok := value.(map[string]interface{})
18510	if !ok {
18511		return fmt.Errorf("unexpected JSON type %v", value)
18512	}
18513
18514	var sv *ListChannelModeratorsOutput
18515	if *v == nil {
18516		sv = &ListChannelModeratorsOutput{}
18517	} else {
18518		sv = *v
18519	}
18520
18521	for key, value := range shape {
18522		switch key {
18523		case "ChannelArn":
18524			if value != nil {
18525				jtv, ok := value.(string)
18526				if !ok {
18527					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
18528				}
18529				sv.ChannelArn = ptr.String(jtv)
18530			}
18531
18532		case "ChannelModerators":
18533			if err := awsRestjson1_deserializeDocumentChannelModeratorSummaryList(&sv.ChannelModerators, value); err != nil {
18534				return err
18535			}
18536
18537		case "NextToken":
18538			if value != nil {
18539				jtv, ok := value.(string)
18540				if !ok {
18541					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18542				}
18543				sv.NextToken = ptr.String(jtv)
18544			}
18545
18546		default:
18547			_, _ = key, value
18548
18549		}
18550	}
18551	*v = sv
18552	return nil
18553}
18554
18555type awsRestjson1_deserializeOpListChannels struct {
18556}
18557
18558func (*awsRestjson1_deserializeOpListChannels) ID() string {
18559	return "OperationDeserializer"
18560}
18561
18562func (m *awsRestjson1_deserializeOpListChannels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18563	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18564) {
18565	out, metadata, err = next.HandleDeserialize(ctx, in)
18566	if err != nil {
18567		return out, metadata, err
18568	}
18569
18570	response, ok := out.RawResponse.(*smithyhttp.Response)
18571	if !ok {
18572		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18573	}
18574
18575	if response.StatusCode < 200 || response.StatusCode >= 300 {
18576		return out, metadata, awsRestjson1_deserializeOpErrorListChannels(response, &metadata)
18577	}
18578	output := &ListChannelsOutput{}
18579	out.Result = output
18580
18581	var buff [1024]byte
18582	ringBuffer := smithyio.NewRingBuffer(buff[:])
18583
18584	body := io.TeeReader(response.Body, ringBuffer)
18585
18586	decoder := json.NewDecoder(body)
18587	decoder.UseNumber()
18588	var shape interface{}
18589	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18590		var snapshot bytes.Buffer
18591		io.Copy(&snapshot, ringBuffer)
18592		err = &smithy.DeserializationError{
18593			Err:      fmt.Errorf("failed to decode response body, %w", err),
18594			Snapshot: snapshot.Bytes(),
18595		}
18596		return out, metadata, err
18597	}
18598
18599	err = awsRestjson1_deserializeOpDocumentListChannelsOutput(&output, shape)
18600	if err != nil {
18601		var snapshot bytes.Buffer
18602		io.Copy(&snapshot, ringBuffer)
18603		return out, metadata, &smithy.DeserializationError{
18604			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18605			Snapshot: snapshot.Bytes(),
18606		}
18607	}
18608
18609	return out, metadata, err
18610}
18611
18612func awsRestjson1_deserializeOpErrorListChannels(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18613	var errorBuffer bytes.Buffer
18614	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18615		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18616	}
18617	errorBody := bytes.NewReader(errorBuffer.Bytes())
18618
18619	errorCode := "UnknownError"
18620	errorMessage := errorCode
18621
18622	code := response.Header.Get("X-Amzn-ErrorType")
18623	if len(code) != 0 {
18624		errorCode = restjson.SanitizeErrorCode(code)
18625	}
18626
18627	var buff [1024]byte
18628	ringBuffer := smithyio.NewRingBuffer(buff[:])
18629
18630	body := io.TeeReader(errorBody, ringBuffer)
18631	decoder := json.NewDecoder(body)
18632	decoder.UseNumber()
18633	code, message, err := restjson.GetErrorInfo(decoder)
18634	if err != nil {
18635		var snapshot bytes.Buffer
18636		io.Copy(&snapshot, ringBuffer)
18637		err = &smithy.DeserializationError{
18638			Err:      fmt.Errorf("failed to decode response body, %w", err),
18639			Snapshot: snapshot.Bytes(),
18640		}
18641		return err
18642	}
18643
18644	errorBody.Seek(0, io.SeekStart)
18645	if len(code) != 0 {
18646		errorCode = restjson.SanitizeErrorCode(code)
18647	}
18648	if len(message) != 0 {
18649		errorMessage = message
18650	}
18651
18652	switch {
18653	case strings.EqualFold("BadRequestException", errorCode):
18654		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18655
18656	case strings.EqualFold("ForbiddenException", errorCode):
18657		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18658
18659	case strings.EqualFold("ServiceFailureException", errorCode):
18660		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18661
18662	case strings.EqualFold("ServiceUnavailableException", errorCode):
18663		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18664
18665	case strings.EqualFold("ThrottledClientException", errorCode):
18666		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18667
18668	case strings.EqualFold("UnauthorizedClientException", errorCode):
18669		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18670
18671	default:
18672		genericError := &smithy.GenericAPIError{
18673			Code:    errorCode,
18674			Message: errorMessage,
18675		}
18676		return genericError
18677
18678	}
18679}
18680
18681func awsRestjson1_deserializeOpDocumentListChannelsOutput(v **ListChannelsOutput, value interface{}) error {
18682	if v == nil {
18683		return fmt.Errorf("unexpected nil of type %T", v)
18684	}
18685	if value == nil {
18686		return nil
18687	}
18688
18689	shape, ok := value.(map[string]interface{})
18690	if !ok {
18691		return fmt.Errorf("unexpected JSON type %v", value)
18692	}
18693
18694	var sv *ListChannelsOutput
18695	if *v == nil {
18696		sv = &ListChannelsOutput{}
18697	} else {
18698		sv = *v
18699	}
18700
18701	for key, value := range shape {
18702		switch key {
18703		case "Channels":
18704			if err := awsRestjson1_deserializeDocumentChannelSummaryList(&sv.Channels, value); err != nil {
18705				return err
18706			}
18707
18708		case "NextToken":
18709			if value != nil {
18710				jtv, ok := value.(string)
18711				if !ok {
18712					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18713				}
18714				sv.NextToken = ptr.String(jtv)
18715			}
18716
18717		default:
18718			_, _ = key, value
18719
18720		}
18721	}
18722	*v = sv
18723	return nil
18724}
18725
18726type awsRestjson1_deserializeOpListChannelsModeratedByAppInstanceUser struct {
18727}
18728
18729func (*awsRestjson1_deserializeOpListChannelsModeratedByAppInstanceUser) ID() string {
18730	return "OperationDeserializer"
18731}
18732
18733func (m *awsRestjson1_deserializeOpListChannelsModeratedByAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18734	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18735) {
18736	out, metadata, err = next.HandleDeserialize(ctx, in)
18737	if err != nil {
18738		return out, metadata, err
18739	}
18740
18741	response, ok := out.RawResponse.(*smithyhttp.Response)
18742	if !ok {
18743		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18744	}
18745
18746	if response.StatusCode < 200 || response.StatusCode >= 300 {
18747		return out, metadata, awsRestjson1_deserializeOpErrorListChannelsModeratedByAppInstanceUser(response, &metadata)
18748	}
18749	output := &ListChannelsModeratedByAppInstanceUserOutput{}
18750	out.Result = output
18751
18752	var buff [1024]byte
18753	ringBuffer := smithyio.NewRingBuffer(buff[:])
18754
18755	body := io.TeeReader(response.Body, ringBuffer)
18756
18757	decoder := json.NewDecoder(body)
18758	decoder.UseNumber()
18759	var shape interface{}
18760	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18761		var snapshot bytes.Buffer
18762		io.Copy(&snapshot, ringBuffer)
18763		err = &smithy.DeserializationError{
18764			Err:      fmt.Errorf("failed to decode response body, %w", err),
18765			Snapshot: snapshot.Bytes(),
18766		}
18767		return out, metadata, err
18768	}
18769
18770	err = awsRestjson1_deserializeOpDocumentListChannelsModeratedByAppInstanceUserOutput(&output, shape)
18771	if err != nil {
18772		var snapshot bytes.Buffer
18773		io.Copy(&snapshot, ringBuffer)
18774		return out, metadata, &smithy.DeserializationError{
18775			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18776			Snapshot: snapshot.Bytes(),
18777		}
18778	}
18779
18780	return out, metadata, err
18781}
18782
18783func awsRestjson1_deserializeOpErrorListChannelsModeratedByAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18784	var errorBuffer bytes.Buffer
18785	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18786		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18787	}
18788	errorBody := bytes.NewReader(errorBuffer.Bytes())
18789
18790	errorCode := "UnknownError"
18791	errorMessage := errorCode
18792
18793	code := response.Header.Get("X-Amzn-ErrorType")
18794	if len(code) != 0 {
18795		errorCode = restjson.SanitizeErrorCode(code)
18796	}
18797
18798	var buff [1024]byte
18799	ringBuffer := smithyio.NewRingBuffer(buff[:])
18800
18801	body := io.TeeReader(errorBody, ringBuffer)
18802	decoder := json.NewDecoder(body)
18803	decoder.UseNumber()
18804	code, message, err := restjson.GetErrorInfo(decoder)
18805	if err != nil {
18806		var snapshot bytes.Buffer
18807		io.Copy(&snapshot, ringBuffer)
18808		err = &smithy.DeserializationError{
18809			Err:      fmt.Errorf("failed to decode response body, %w", err),
18810			Snapshot: snapshot.Bytes(),
18811		}
18812		return err
18813	}
18814
18815	errorBody.Seek(0, io.SeekStart)
18816	if len(code) != 0 {
18817		errorCode = restjson.SanitizeErrorCode(code)
18818	}
18819	if len(message) != 0 {
18820		errorMessage = message
18821	}
18822
18823	switch {
18824	case strings.EqualFold("BadRequestException", errorCode):
18825		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18826
18827	case strings.EqualFold("ForbiddenException", errorCode):
18828		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18829
18830	case strings.EqualFold("ServiceFailureException", errorCode):
18831		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18832
18833	case strings.EqualFold("ServiceUnavailableException", errorCode):
18834		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18835
18836	case strings.EqualFold("ThrottledClientException", errorCode):
18837		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18838
18839	case strings.EqualFold("UnauthorizedClientException", errorCode):
18840		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18841
18842	default:
18843		genericError := &smithy.GenericAPIError{
18844			Code:    errorCode,
18845			Message: errorMessage,
18846		}
18847		return genericError
18848
18849	}
18850}
18851
18852func awsRestjson1_deserializeOpDocumentListChannelsModeratedByAppInstanceUserOutput(v **ListChannelsModeratedByAppInstanceUserOutput, value interface{}) error {
18853	if v == nil {
18854		return fmt.Errorf("unexpected nil of type %T", v)
18855	}
18856	if value == nil {
18857		return nil
18858	}
18859
18860	shape, ok := value.(map[string]interface{})
18861	if !ok {
18862		return fmt.Errorf("unexpected JSON type %v", value)
18863	}
18864
18865	var sv *ListChannelsModeratedByAppInstanceUserOutput
18866	if *v == nil {
18867		sv = &ListChannelsModeratedByAppInstanceUserOutput{}
18868	} else {
18869		sv = *v
18870	}
18871
18872	for key, value := range shape {
18873		switch key {
18874		case "Channels":
18875			if err := awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummaryList(&sv.Channels, value); err != nil {
18876				return err
18877			}
18878
18879		case "NextToken":
18880			if value != nil {
18881				jtv, ok := value.(string)
18882				if !ok {
18883					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18884				}
18885				sv.NextToken = ptr.String(jtv)
18886			}
18887
18888		default:
18889			_, _ = key, value
18890
18891		}
18892	}
18893	*v = sv
18894	return nil
18895}
18896
18897type awsRestjson1_deserializeOpListMediaCapturePipelines struct {
18898}
18899
18900func (*awsRestjson1_deserializeOpListMediaCapturePipelines) ID() string {
18901	return "OperationDeserializer"
18902}
18903
18904func (m *awsRestjson1_deserializeOpListMediaCapturePipelines) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18905	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18906) {
18907	out, metadata, err = next.HandleDeserialize(ctx, in)
18908	if err != nil {
18909		return out, metadata, err
18910	}
18911
18912	response, ok := out.RawResponse.(*smithyhttp.Response)
18913	if !ok {
18914		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18915	}
18916
18917	if response.StatusCode < 200 || response.StatusCode >= 300 {
18918		return out, metadata, awsRestjson1_deserializeOpErrorListMediaCapturePipelines(response, &metadata)
18919	}
18920	output := &ListMediaCapturePipelinesOutput{}
18921	out.Result = output
18922
18923	var buff [1024]byte
18924	ringBuffer := smithyio.NewRingBuffer(buff[:])
18925
18926	body := io.TeeReader(response.Body, ringBuffer)
18927
18928	decoder := json.NewDecoder(body)
18929	decoder.UseNumber()
18930	var shape interface{}
18931	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18932		var snapshot bytes.Buffer
18933		io.Copy(&snapshot, ringBuffer)
18934		err = &smithy.DeserializationError{
18935			Err:      fmt.Errorf("failed to decode response body, %w", err),
18936			Snapshot: snapshot.Bytes(),
18937		}
18938		return out, metadata, err
18939	}
18940
18941	err = awsRestjson1_deserializeOpDocumentListMediaCapturePipelinesOutput(&output, shape)
18942	if err != nil {
18943		var snapshot bytes.Buffer
18944		io.Copy(&snapshot, ringBuffer)
18945		return out, metadata, &smithy.DeserializationError{
18946			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18947			Snapshot: snapshot.Bytes(),
18948		}
18949	}
18950
18951	return out, metadata, err
18952}
18953
18954func awsRestjson1_deserializeOpErrorListMediaCapturePipelines(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18955	var errorBuffer bytes.Buffer
18956	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18957		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18958	}
18959	errorBody := bytes.NewReader(errorBuffer.Bytes())
18960
18961	errorCode := "UnknownError"
18962	errorMessage := errorCode
18963
18964	code := response.Header.Get("X-Amzn-ErrorType")
18965	if len(code) != 0 {
18966		errorCode = restjson.SanitizeErrorCode(code)
18967	}
18968
18969	var buff [1024]byte
18970	ringBuffer := smithyio.NewRingBuffer(buff[:])
18971
18972	body := io.TeeReader(errorBody, ringBuffer)
18973	decoder := json.NewDecoder(body)
18974	decoder.UseNumber()
18975	code, message, err := restjson.GetErrorInfo(decoder)
18976	if err != nil {
18977		var snapshot bytes.Buffer
18978		io.Copy(&snapshot, ringBuffer)
18979		err = &smithy.DeserializationError{
18980			Err:      fmt.Errorf("failed to decode response body, %w", err),
18981			Snapshot: snapshot.Bytes(),
18982		}
18983		return err
18984	}
18985
18986	errorBody.Seek(0, io.SeekStart)
18987	if len(code) != 0 {
18988		errorCode = restjson.SanitizeErrorCode(code)
18989	}
18990	if len(message) != 0 {
18991		errorMessage = message
18992	}
18993
18994	switch {
18995	case strings.EqualFold("BadRequestException", errorCode):
18996		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18997
18998	case strings.EqualFold("ForbiddenException", errorCode):
18999		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19000
19001	case strings.EqualFold("ServiceFailureException", errorCode):
19002		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19003
19004	case strings.EqualFold("ServiceUnavailableException", errorCode):
19005		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19006
19007	case strings.EqualFold("ThrottledClientException", errorCode):
19008		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19009
19010	case strings.EqualFold("UnauthorizedClientException", errorCode):
19011		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19012
19013	default:
19014		genericError := &smithy.GenericAPIError{
19015			Code:    errorCode,
19016			Message: errorMessage,
19017		}
19018		return genericError
19019
19020	}
19021}
19022
19023func awsRestjson1_deserializeOpDocumentListMediaCapturePipelinesOutput(v **ListMediaCapturePipelinesOutput, value interface{}) error {
19024	if v == nil {
19025		return fmt.Errorf("unexpected nil of type %T", v)
19026	}
19027	if value == nil {
19028		return nil
19029	}
19030
19031	shape, ok := value.(map[string]interface{})
19032	if !ok {
19033		return fmt.Errorf("unexpected JSON type %v", value)
19034	}
19035
19036	var sv *ListMediaCapturePipelinesOutput
19037	if *v == nil {
19038		sv = &ListMediaCapturePipelinesOutput{}
19039	} else {
19040		sv = *v
19041	}
19042
19043	for key, value := range shape {
19044		switch key {
19045		case "MediaCapturePipelines":
19046			if err := awsRestjson1_deserializeDocumentMediaCapturePipelineList(&sv.MediaCapturePipelines, value); err != nil {
19047				return err
19048			}
19049
19050		case "NextToken":
19051			if value != nil {
19052				jtv, ok := value.(string)
19053				if !ok {
19054					return fmt.Errorf("expected String to be of type string, got %T instead", value)
19055				}
19056				sv.NextToken = ptr.String(jtv)
19057			}
19058
19059		default:
19060			_, _ = key, value
19061
19062		}
19063	}
19064	*v = sv
19065	return nil
19066}
19067
19068type awsRestjson1_deserializeOpListMeetings struct {
19069}
19070
19071func (*awsRestjson1_deserializeOpListMeetings) ID() string {
19072	return "OperationDeserializer"
19073}
19074
19075func (m *awsRestjson1_deserializeOpListMeetings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19076	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19077) {
19078	out, metadata, err = next.HandleDeserialize(ctx, in)
19079	if err != nil {
19080		return out, metadata, err
19081	}
19082
19083	response, ok := out.RawResponse.(*smithyhttp.Response)
19084	if !ok {
19085		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19086	}
19087
19088	if response.StatusCode < 200 || response.StatusCode >= 300 {
19089		return out, metadata, awsRestjson1_deserializeOpErrorListMeetings(response, &metadata)
19090	}
19091	output := &ListMeetingsOutput{}
19092	out.Result = output
19093
19094	var buff [1024]byte
19095	ringBuffer := smithyio.NewRingBuffer(buff[:])
19096
19097	body := io.TeeReader(response.Body, ringBuffer)
19098
19099	decoder := json.NewDecoder(body)
19100	decoder.UseNumber()
19101	var shape interface{}
19102	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19103		var snapshot bytes.Buffer
19104		io.Copy(&snapshot, ringBuffer)
19105		err = &smithy.DeserializationError{
19106			Err:      fmt.Errorf("failed to decode response body, %w", err),
19107			Snapshot: snapshot.Bytes(),
19108		}
19109		return out, metadata, err
19110	}
19111
19112	err = awsRestjson1_deserializeOpDocumentListMeetingsOutput(&output, shape)
19113	if err != nil {
19114		var snapshot bytes.Buffer
19115		io.Copy(&snapshot, ringBuffer)
19116		return out, metadata, &smithy.DeserializationError{
19117			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19118			Snapshot: snapshot.Bytes(),
19119		}
19120	}
19121
19122	return out, metadata, err
19123}
19124
19125func awsRestjson1_deserializeOpErrorListMeetings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19126	var errorBuffer bytes.Buffer
19127	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19128		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19129	}
19130	errorBody := bytes.NewReader(errorBuffer.Bytes())
19131
19132	errorCode := "UnknownError"
19133	errorMessage := errorCode
19134
19135	code := response.Header.Get("X-Amzn-ErrorType")
19136	if len(code) != 0 {
19137		errorCode = restjson.SanitizeErrorCode(code)
19138	}
19139
19140	var buff [1024]byte
19141	ringBuffer := smithyio.NewRingBuffer(buff[:])
19142
19143	body := io.TeeReader(errorBody, ringBuffer)
19144	decoder := json.NewDecoder(body)
19145	decoder.UseNumber()
19146	code, message, err := restjson.GetErrorInfo(decoder)
19147	if err != nil {
19148		var snapshot bytes.Buffer
19149		io.Copy(&snapshot, ringBuffer)
19150		err = &smithy.DeserializationError{
19151			Err:      fmt.Errorf("failed to decode response body, %w", err),
19152			Snapshot: snapshot.Bytes(),
19153		}
19154		return err
19155	}
19156
19157	errorBody.Seek(0, io.SeekStart)
19158	if len(code) != 0 {
19159		errorCode = restjson.SanitizeErrorCode(code)
19160	}
19161	if len(message) != 0 {
19162		errorMessage = message
19163	}
19164
19165	switch {
19166	case strings.EqualFold("BadRequestException", errorCode):
19167		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19168
19169	case strings.EqualFold("ForbiddenException", errorCode):
19170		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19171
19172	case strings.EqualFold("ServiceFailureException", errorCode):
19173		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19174
19175	case strings.EqualFold("ServiceUnavailableException", errorCode):
19176		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19177
19178	case strings.EqualFold("ThrottledClientException", errorCode):
19179		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19180
19181	case strings.EqualFold("UnauthorizedClientException", errorCode):
19182		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19183
19184	default:
19185		genericError := &smithy.GenericAPIError{
19186			Code:    errorCode,
19187			Message: errorMessage,
19188		}
19189		return genericError
19190
19191	}
19192}
19193
19194func awsRestjson1_deserializeOpDocumentListMeetingsOutput(v **ListMeetingsOutput, value interface{}) error {
19195	if v == nil {
19196		return fmt.Errorf("unexpected nil of type %T", v)
19197	}
19198	if value == nil {
19199		return nil
19200	}
19201
19202	shape, ok := value.(map[string]interface{})
19203	if !ok {
19204		return fmt.Errorf("unexpected JSON type %v", value)
19205	}
19206
19207	var sv *ListMeetingsOutput
19208	if *v == nil {
19209		sv = &ListMeetingsOutput{}
19210	} else {
19211		sv = *v
19212	}
19213
19214	for key, value := range shape {
19215		switch key {
19216		case "Meetings":
19217			if err := awsRestjson1_deserializeDocumentMeetingList(&sv.Meetings, value); err != nil {
19218				return err
19219			}
19220
19221		case "NextToken":
19222			if value != nil {
19223				jtv, ok := value.(string)
19224				if !ok {
19225					return fmt.Errorf("expected String to be of type string, got %T instead", value)
19226				}
19227				sv.NextToken = ptr.String(jtv)
19228			}
19229
19230		default:
19231			_, _ = key, value
19232
19233		}
19234	}
19235	*v = sv
19236	return nil
19237}
19238
19239type awsRestjson1_deserializeOpListMeetingTags struct {
19240}
19241
19242func (*awsRestjson1_deserializeOpListMeetingTags) ID() string {
19243	return "OperationDeserializer"
19244}
19245
19246func (m *awsRestjson1_deserializeOpListMeetingTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19247	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19248) {
19249	out, metadata, err = next.HandleDeserialize(ctx, in)
19250	if err != nil {
19251		return out, metadata, err
19252	}
19253
19254	response, ok := out.RawResponse.(*smithyhttp.Response)
19255	if !ok {
19256		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19257	}
19258
19259	if response.StatusCode < 200 || response.StatusCode >= 300 {
19260		return out, metadata, awsRestjson1_deserializeOpErrorListMeetingTags(response, &metadata)
19261	}
19262	output := &ListMeetingTagsOutput{}
19263	out.Result = output
19264
19265	var buff [1024]byte
19266	ringBuffer := smithyio.NewRingBuffer(buff[:])
19267
19268	body := io.TeeReader(response.Body, ringBuffer)
19269
19270	decoder := json.NewDecoder(body)
19271	decoder.UseNumber()
19272	var shape interface{}
19273	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19274		var snapshot bytes.Buffer
19275		io.Copy(&snapshot, ringBuffer)
19276		err = &smithy.DeserializationError{
19277			Err:      fmt.Errorf("failed to decode response body, %w", err),
19278			Snapshot: snapshot.Bytes(),
19279		}
19280		return out, metadata, err
19281	}
19282
19283	err = awsRestjson1_deserializeOpDocumentListMeetingTagsOutput(&output, shape)
19284	if err != nil {
19285		var snapshot bytes.Buffer
19286		io.Copy(&snapshot, ringBuffer)
19287		return out, metadata, &smithy.DeserializationError{
19288			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19289			Snapshot: snapshot.Bytes(),
19290		}
19291	}
19292
19293	return out, metadata, err
19294}
19295
19296func awsRestjson1_deserializeOpErrorListMeetingTags(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19297	var errorBuffer bytes.Buffer
19298	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19299		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19300	}
19301	errorBody := bytes.NewReader(errorBuffer.Bytes())
19302
19303	errorCode := "UnknownError"
19304	errorMessage := errorCode
19305
19306	code := response.Header.Get("X-Amzn-ErrorType")
19307	if len(code) != 0 {
19308		errorCode = restjson.SanitizeErrorCode(code)
19309	}
19310
19311	var buff [1024]byte
19312	ringBuffer := smithyio.NewRingBuffer(buff[:])
19313
19314	body := io.TeeReader(errorBody, ringBuffer)
19315	decoder := json.NewDecoder(body)
19316	decoder.UseNumber()
19317	code, message, err := restjson.GetErrorInfo(decoder)
19318	if err != nil {
19319		var snapshot bytes.Buffer
19320		io.Copy(&snapshot, ringBuffer)
19321		err = &smithy.DeserializationError{
19322			Err:      fmt.Errorf("failed to decode response body, %w", err),
19323			Snapshot: snapshot.Bytes(),
19324		}
19325		return err
19326	}
19327
19328	errorBody.Seek(0, io.SeekStart)
19329	if len(code) != 0 {
19330		errorCode = restjson.SanitizeErrorCode(code)
19331	}
19332	if len(message) != 0 {
19333		errorMessage = message
19334	}
19335
19336	switch {
19337	case strings.EqualFold("BadRequestException", errorCode):
19338		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19339
19340	case strings.EqualFold("ForbiddenException", errorCode):
19341		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19342
19343	case strings.EqualFold("NotFoundException", errorCode):
19344		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19345
19346	case strings.EqualFold("ServiceFailureException", errorCode):
19347		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19348
19349	case strings.EqualFold("ServiceUnavailableException", errorCode):
19350		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19351
19352	case strings.EqualFold("ThrottledClientException", errorCode):
19353		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19354
19355	case strings.EqualFold("UnauthorizedClientException", errorCode):
19356		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19357
19358	default:
19359		genericError := &smithy.GenericAPIError{
19360			Code:    errorCode,
19361			Message: errorMessage,
19362		}
19363		return genericError
19364
19365	}
19366}
19367
19368func awsRestjson1_deserializeOpDocumentListMeetingTagsOutput(v **ListMeetingTagsOutput, value interface{}) error {
19369	if v == nil {
19370		return fmt.Errorf("unexpected nil of type %T", v)
19371	}
19372	if value == nil {
19373		return nil
19374	}
19375
19376	shape, ok := value.(map[string]interface{})
19377	if !ok {
19378		return fmt.Errorf("unexpected JSON type %v", value)
19379	}
19380
19381	var sv *ListMeetingTagsOutput
19382	if *v == nil {
19383		sv = &ListMeetingTagsOutput{}
19384	} else {
19385		sv = *v
19386	}
19387
19388	for key, value := range shape {
19389		switch key {
19390		case "Tags":
19391			if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil {
19392				return err
19393			}
19394
19395		default:
19396			_, _ = key, value
19397
19398		}
19399	}
19400	*v = sv
19401	return nil
19402}
19403
19404type awsRestjson1_deserializeOpListPhoneNumberOrders struct {
19405}
19406
19407func (*awsRestjson1_deserializeOpListPhoneNumberOrders) ID() string {
19408	return "OperationDeserializer"
19409}
19410
19411func (m *awsRestjson1_deserializeOpListPhoneNumberOrders) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19412	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19413) {
19414	out, metadata, err = next.HandleDeserialize(ctx, in)
19415	if err != nil {
19416		return out, metadata, err
19417	}
19418
19419	response, ok := out.RawResponse.(*smithyhttp.Response)
19420	if !ok {
19421		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19422	}
19423
19424	if response.StatusCode < 200 || response.StatusCode >= 300 {
19425		return out, metadata, awsRestjson1_deserializeOpErrorListPhoneNumberOrders(response, &metadata)
19426	}
19427	output := &ListPhoneNumberOrdersOutput{}
19428	out.Result = output
19429
19430	var buff [1024]byte
19431	ringBuffer := smithyio.NewRingBuffer(buff[:])
19432
19433	body := io.TeeReader(response.Body, ringBuffer)
19434
19435	decoder := json.NewDecoder(body)
19436	decoder.UseNumber()
19437	var shape interface{}
19438	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19439		var snapshot bytes.Buffer
19440		io.Copy(&snapshot, ringBuffer)
19441		err = &smithy.DeserializationError{
19442			Err:      fmt.Errorf("failed to decode response body, %w", err),
19443			Snapshot: snapshot.Bytes(),
19444		}
19445		return out, metadata, err
19446	}
19447
19448	err = awsRestjson1_deserializeOpDocumentListPhoneNumberOrdersOutput(&output, shape)
19449	if err != nil {
19450		var snapshot bytes.Buffer
19451		io.Copy(&snapshot, ringBuffer)
19452		return out, metadata, &smithy.DeserializationError{
19453			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19454			Snapshot: snapshot.Bytes(),
19455		}
19456	}
19457
19458	return out, metadata, err
19459}
19460
19461func awsRestjson1_deserializeOpErrorListPhoneNumberOrders(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19462	var errorBuffer bytes.Buffer
19463	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19464		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19465	}
19466	errorBody := bytes.NewReader(errorBuffer.Bytes())
19467
19468	errorCode := "UnknownError"
19469	errorMessage := errorCode
19470
19471	code := response.Header.Get("X-Amzn-ErrorType")
19472	if len(code) != 0 {
19473		errorCode = restjson.SanitizeErrorCode(code)
19474	}
19475
19476	var buff [1024]byte
19477	ringBuffer := smithyio.NewRingBuffer(buff[:])
19478
19479	body := io.TeeReader(errorBody, ringBuffer)
19480	decoder := json.NewDecoder(body)
19481	decoder.UseNumber()
19482	code, message, err := restjson.GetErrorInfo(decoder)
19483	if err != nil {
19484		var snapshot bytes.Buffer
19485		io.Copy(&snapshot, ringBuffer)
19486		err = &smithy.DeserializationError{
19487			Err:      fmt.Errorf("failed to decode response body, %w", err),
19488			Snapshot: snapshot.Bytes(),
19489		}
19490		return err
19491	}
19492
19493	errorBody.Seek(0, io.SeekStart)
19494	if len(code) != 0 {
19495		errorCode = restjson.SanitizeErrorCode(code)
19496	}
19497	if len(message) != 0 {
19498		errorMessage = message
19499	}
19500
19501	switch {
19502	case strings.EqualFold("BadRequestException", errorCode):
19503		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19504
19505	case strings.EqualFold("ForbiddenException", errorCode):
19506		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19507
19508	case strings.EqualFold("ServiceFailureException", errorCode):
19509		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19510
19511	case strings.EqualFold("ServiceUnavailableException", errorCode):
19512		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19513
19514	case strings.EqualFold("ThrottledClientException", errorCode):
19515		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19516
19517	case strings.EqualFold("UnauthorizedClientException", errorCode):
19518		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19519
19520	default:
19521		genericError := &smithy.GenericAPIError{
19522			Code:    errorCode,
19523			Message: errorMessage,
19524		}
19525		return genericError
19526
19527	}
19528}
19529
19530func awsRestjson1_deserializeOpDocumentListPhoneNumberOrdersOutput(v **ListPhoneNumberOrdersOutput, value interface{}) error {
19531	if v == nil {
19532		return fmt.Errorf("unexpected nil of type %T", v)
19533	}
19534	if value == nil {
19535		return nil
19536	}
19537
19538	shape, ok := value.(map[string]interface{})
19539	if !ok {
19540		return fmt.Errorf("unexpected JSON type %v", value)
19541	}
19542
19543	var sv *ListPhoneNumberOrdersOutput
19544	if *v == nil {
19545		sv = &ListPhoneNumberOrdersOutput{}
19546	} else {
19547		sv = *v
19548	}
19549
19550	for key, value := range shape {
19551		switch key {
19552		case "NextToken":
19553			if value != nil {
19554				jtv, ok := value.(string)
19555				if !ok {
19556					return fmt.Errorf("expected String to be of type string, got %T instead", value)
19557				}
19558				sv.NextToken = ptr.String(jtv)
19559			}
19560
19561		case "PhoneNumberOrders":
19562			if err := awsRestjson1_deserializeDocumentPhoneNumberOrderList(&sv.PhoneNumberOrders, value); err != nil {
19563				return err
19564			}
19565
19566		default:
19567			_, _ = key, value
19568
19569		}
19570	}
19571	*v = sv
19572	return nil
19573}
19574
19575type awsRestjson1_deserializeOpListPhoneNumbers struct {
19576}
19577
19578func (*awsRestjson1_deserializeOpListPhoneNumbers) ID() string {
19579	return "OperationDeserializer"
19580}
19581
19582func (m *awsRestjson1_deserializeOpListPhoneNumbers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19583	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19584) {
19585	out, metadata, err = next.HandleDeserialize(ctx, in)
19586	if err != nil {
19587		return out, metadata, err
19588	}
19589
19590	response, ok := out.RawResponse.(*smithyhttp.Response)
19591	if !ok {
19592		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19593	}
19594
19595	if response.StatusCode < 200 || response.StatusCode >= 300 {
19596		return out, metadata, awsRestjson1_deserializeOpErrorListPhoneNumbers(response, &metadata)
19597	}
19598	output := &ListPhoneNumbersOutput{}
19599	out.Result = output
19600
19601	var buff [1024]byte
19602	ringBuffer := smithyio.NewRingBuffer(buff[:])
19603
19604	body := io.TeeReader(response.Body, ringBuffer)
19605
19606	decoder := json.NewDecoder(body)
19607	decoder.UseNumber()
19608	var shape interface{}
19609	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19610		var snapshot bytes.Buffer
19611		io.Copy(&snapshot, ringBuffer)
19612		err = &smithy.DeserializationError{
19613			Err:      fmt.Errorf("failed to decode response body, %w", err),
19614			Snapshot: snapshot.Bytes(),
19615		}
19616		return out, metadata, err
19617	}
19618
19619	err = awsRestjson1_deserializeOpDocumentListPhoneNumbersOutput(&output, shape)
19620	if err != nil {
19621		var snapshot bytes.Buffer
19622		io.Copy(&snapshot, ringBuffer)
19623		return out, metadata, &smithy.DeserializationError{
19624			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19625			Snapshot: snapshot.Bytes(),
19626		}
19627	}
19628
19629	return out, metadata, err
19630}
19631
19632func awsRestjson1_deserializeOpErrorListPhoneNumbers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19633	var errorBuffer bytes.Buffer
19634	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19635		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19636	}
19637	errorBody := bytes.NewReader(errorBuffer.Bytes())
19638
19639	errorCode := "UnknownError"
19640	errorMessage := errorCode
19641
19642	code := response.Header.Get("X-Amzn-ErrorType")
19643	if len(code) != 0 {
19644		errorCode = restjson.SanitizeErrorCode(code)
19645	}
19646
19647	var buff [1024]byte
19648	ringBuffer := smithyio.NewRingBuffer(buff[:])
19649
19650	body := io.TeeReader(errorBody, ringBuffer)
19651	decoder := json.NewDecoder(body)
19652	decoder.UseNumber()
19653	code, message, err := restjson.GetErrorInfo(decoder)
19654	if err != nil {
19655		var snapshot bytes.Buffer
19656		io.Copy(&snapshot, ringBuffer)
19657		err = &smithy.DeserializationError{
19658			Err:      fmt.Errorf("failed to decode response body, %w", err),
19659			Snapshot: snapshot.Bytes(),
19660		}
19661		return err
19662	}
19663
19664	errorBody.Seek(0, io.SeekStart)
19665	if len(code) != 0 {
19666		errorCode = restjson.SanitizeErrorCode(code)
19667	}
19668	if len(message) != 0 {
19669		errorMessage = message
19670	}
19671
19672	switch {
19673	case strings.EqualFold("BadRequestException", errorCode):
19674		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19675
19676	case strings.EqualFold("ForbiddenException", errorCode):
19677		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19678
19679	case strings.EqualFold("NotFoundException", errorCode):
19680		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19681
19682	case strings.EqualFold("ServiceFailureException", errorCode):
19683		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19684
19685	case strings.EqualFold("ServiceUnavailableException", errorCode):
19686		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19687
19688	case strings.EqualFold("ThrottledClientException", errorCode):
19689		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19690
19691	case strings.EqualFold("UnauthorizedClientException", errorCode):
19692		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19693
19694	default:
19695		genericError := &smithy.GenericAPIError{
19696			Code:    errorCode,
19697			Message: errorMessage,
19698		}
19699		return genericError
19700
19701	}
19702}
19703
19704func awsRestjson1_deserializeOpDocumentListPhoneNumbersOutput(v **ListPhoneNumbersOutput, value interface{}) error {
19705	if v == nil {
19706		return fmt.Errorf("unexpected nil of type %T", v)
19707	}
19708	if value == nil {
19709		return nil
19710	}
19711
19712	shape, ok := value.(map[string]interface{})
19713	if !ok {
19714		return fmt.Errorf("unexpected JSON type %v", value)
19715	}
19716
19717	var sv *ListPhoneNumbersOutput
19718	if *v == nil {
19719		sv = &ListPhoneNumbersOutput{}
19720	} else {
19721		sv = *v
19722	}
19723
19724	for key, value := range shape {
19725		switch key {
19726		case "NextToken":
19727			if value != nil {
19728				jtv, ok := value.(string)
19729				if !ok {
19730					return fmt.Errorf("expected String to be of type string, got %T instead", value)
19731				}
19732				sv.NextToken = ptr.String(jtv)
19733			}
19734
19735		case "PhoneNumbers":
19736			if err := awsRestjson1_deserializeDocumentPhoneNumberList(&sv.PhoneNumbers, value); err != nil {
19737				return err
19738			}
19739
19740		default:
19741			_, _ = key, value
19742
19743		}
19744	}
19745	*v = sv
19746	return nil
19747}
19748
19749type awsRestjson1_deserializeOpListProxySessions struct {
19750}
19751
19752func (*awsRestjson1_deserializeOpListProxySessions) ID() string {
19753	return "OperationDeserializer"
19754}
19755
19756func (m *awsRestjson1_deserializeOpListProxySessions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19757	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19758) {
19759	out, metadata, err = next.HandleDeserialize(ctx, in)
19760	if err != nil {
19761		return out, metadata, err
19762	}
19763
19764	response, ok := out.RawResponse.(*smithyhttp.Response)
19765	if !ok {
19766		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19767	}
19768
19769	if response.StatusCode < 200 || response.StatusCode >= 300 {
19770		return out, metadata, awsRestjson1_deserializeOpErrorListProxySessions(response, &metadata)
19771	}
19772	output := &ListProxySessionsOutput{}
19773	out.Result = output
19774
19775	var buff [1024]byte
19776	ringBuffer := smithyio.NewRingBuffer(buff[:])
19777
19778	body := io.TeeReader(response.Body, ringBuffer)
19779
19780	decoder := json.NewDecoder(body)
19781	decoder.UseNumber()
19782	var shape interface{}
19783	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19784		var snapshot bytes.Buffer
19785		io.Copy(&snapshot, ringBuffer)
19786		err = &smithy.DeserializationError{
19787			Err:      fmt.Errorf("failed to decode response body, %w", err),
19788			Snapshot: snapshot.Bytes(),
19789		}
19790		return out, metadata, err
19791	}
19792
19793	err = awsRestjson1_deserializeOpDocumentListProxySessionsOutput(&output, shape)
19794	if err != nil {
19795		var snapshot bytes.Buffer
19796		io.Copy(&snapshot, ringBuffer)
19797		return out, metadata, &smithy.DeserializationError{
19798			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19799			Snapshot: snapshot.Bytes(),
19800		}
19801	}
19802
19803	return out, metadata, err
19804}
19805
19806func awsRestjson1_deserializeOpErrorListProxySessions(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19807	var errorBuffer bytes.Buffer
19808	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19809		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19810	}
19811	errorBody := bytes.NewReader(errorBuffer.Bytes())
19812
19813	errorCode := "UnknownError"
19814	errorMessage := errorCode
19815
19816	code := response.Header.Get("X-Amzn-ErrorType")
19817	if len(code) != 0 {
19818		errorCode = restjson.SanitizeErrorCode(code)
19819	}
19820
19821	var buff [1024]byte
19822	ringBuffer := smithyio.NewRingBuffer(buff[:])
19823
19824	body := io.TeeReader(errorBody, ringBuffer)
19825	decoder := json.NewDecoder(body)
19826	decoder.UseNumber()
19827	code, message, err := restjson.GetErrorInfo(decoder)
19828	if err != nil {
19829		var snapshot bytes.Buffer
19830		io.Copy(&snapshot, ringBuffer)
19831		err = &smithy.DeserializationError{
19832			Err:      fmt.Errorf("failed to decode response body, %w", err),
19833			Snapshot: snapshot.Bytes(),
19834		}
19835		return err
19836	}
19837
19838	errorBody.Seek(0, io.SeekStart)
19839	if len(code) != 0 {
19840		errorCode = restjson.SanitizeErrorCode(code)
19841	}
19842	if len(message) != 0 {
19843		errorMessage = message
19844	}
19845
19846	switch {
19847	case strings.EqualFold("BadRequestException", errorCode):
19848		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19849
19850	case strings.EqualFold("ForbiddenException", errorCode):
19851		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19852
19853	case strings.EqualFold("NotFoundException", errorCode):
19854		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19855
19856	case strings.EqualFold("ServiceFailureException", errorCode):
19857		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19858
19859	case strings.EqualFold("ServiceUnavailableException", errorCode):
19860		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19861
19862	case strings.EqualFold("ThrottledClientException", errorCode):
19863		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19864
19865	case strings.EqualFold("UnauthorizedClientException", errorCode):
19866		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19867
19868	default:
19869		genericError := &smithy.GenericAPIError{
19870			Code:    errorCode,
19871			Message: errorMessage,
19872		}
19873		return genericError
19874
19875	}
19876}
19877
19878func awsRestjson1_deserializeOpDocumentListProxySessionsOutput(v **ListProxySessionsOutput, value interface{}) error {
19879	if v == nil {
19880		return fmt.Errorf("unexpected nil of type %T", v)
19881	}
19882	if value == nil {
19883		return nil
19884	}
19885
19886	shape, ok := value.(map[string]interface{})
19887	if !ok {
19888		return fmt.Errorf("unexpected JSON type %v", value)
19889	}
19890
19891	var sv *ListProxySessionsOutput
19892	if *v == nil {
19893		sv = &ListProxySessionsOutput{}
19894	} else {
19895		sv = *v
19896	}
19897
19898	for key, value := range shape {
19899		switch key {
19900		case "NextToken":
19901			if value != nil {
19902				jtv, ok := value.(string)
19903				if !ok {
19904					return fmt.Errorf("expected NextTokenString to be of type string, got %T instead", value)
19905				}
19906				sv.NextToken = ptr.String(jtv)
19907			}
19908
19909		case "ProxySessions":
19910			if err := awsRestjson1_deserializeDocumentProxySessions(&sv.ProxySessions, value); err != nil {
19911				return err
19912			}
19913
19914		default:
19915			_, _ = key, value
19916
19917		}
19918	}
19919	*v = sv
19920	return nil
19921}
19922
19923type awsRestjson1_deserializeOpListRoomMemberships struct {
19924}
19925
19926func (*awsRestjson1_deserializeOpListRoomMemberships) ID() string {
19927	return "OperationDeserializer"
19928}
19929
19930func (m *awsRestjson1_deserializeOpListRoomMemberships) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19931	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19932) {
19933	out, metadata, err = next.HandleDeserialize(ctx, in)
19934	if err != nil {
19935		return out, metadata, err
19936	}
19937
19938	response, ok := out.RawResponse.(*smithyhttp.Response)
19939	if !ok {
19940		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19941	}
19942
19943	if response.StatusCode < 200 || response.StatusCode >= 300 {
19944		return out, metadata, awsRestjson1_deserializeOpErrorListRoomMemberships(response, &metadata)
19945	}
19946	output := &ListRoomMembershipsOutput{}
19947	out.Result = output
19948
19949	var buff [1024]byte
19950	ringBuffer := smithyio.NewRingBuffer(buff[:])
19951
19952	body := io.TeeReader(response.Body, ringBuffer)
19953
19954	decoder := json.NewDecoder(body)
19955	decoder.UseNumber()
19956	var shape interface{}
19957	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19958		var snapshot bytes.Buffer
19959		io.Copy(&snapshot, ringBuffer)
19960		err = &smithy.DeserializationError{
19961			Err:      fmt.Errorf("failed to decode response body, %w", err),
19962			Snapshot: snapshot.Bytes(),
19963		}
19964		return out, metadata, err
19965	}
19966
19967	err = awsRestjson1_deserializeOpDocumentListRoomMembershipsOutput(&output, shape)
19968	if err != nil {
19969		var snapshot bytes.Buffer
19970		io.Copy(&snapshot, ringBuffer)
19971		return out, metadata, &smithy.DeserializationError{
19972			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19973			Snapshot: snapshot.Bytes(),
19974		}
19975	}
19976
19977	return out, metadata, err
19978}
19979
19980func awsRestjson1_deserializeOpErrorListRoomMemberships(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19981	var errorBuffer bytes.Buffer
19982	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19983		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19984	}
19985	errorBody := bytes.NewReader(errorBuffer.Bytes())
19986
19987	errorCode := "UnknownError"
19988	errorMessage := errorCode
19989
19990	code := response.Header.Get("X-Amzn-ErrorType")
19991	if len(code) != 0 {
19992		errorCode = restjson.SanitizeErrorCode(code)
19993	}
19994
19995	var buff [1024]byte
19996	ringBuffer := smithyio.NewRingBuffer(buff[:])
19997
19998	body := io.TeeReader(errorBody, ringBuffer)
19999	decoder := json.NewDecoder(body)
20000	decoder.UseNumber()
20001	code, message, err := restjson.GetErrorInfo(decoder)
20002	if err != nil {
20003		var snapshot bytes.Buffer
20004		io.Copy(&snapshot, ringBuffer)
20005		err = &smithy.DeserializationError{
20006			Err:      fmt.Errorf("failed to decode response body, %w", err),
20007			Snapshot: snapshot.Bytes(),
20008		}
20009		return err
20010	}
20011
20012	errorBody.Seek(0, io.SeekStart)
20013	if len(code) != 0 {
20014		errorCode = restjson.SanitizeErrorCode(code)
20015	}
20016	if len(message) != 0 {
20017		errorMessage = message
20018	}
20019
20020	switch {
20021	case strings.EqualFold("BadRequestException", errorCode):
20022		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20023
20024	case strings.EqualFold("ForbiddenException", errorCode):
20025		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20026
20027	case strings.EqualFold("NotFoundException", errorCode):
20028		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20029
20030	case strings.EqualFold("ServiceFailureException", errorCode):
20031		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20032
20033	case strings.EqualFold("ServiceUnavailableException", errorCode):
20034		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20035
20036	case strings.EqualFold("ThrottledClientException", errorCode):
20037		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20038
20039	case strings.EqualFold("UnauthorizedClientException", errorCode):
20040		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20041
20042	default:
20043		genericError := &smithy.GenericAPIError{
20044			Code:    errorCode,
20045			Message: errorMessage,
20046		}
20047		return genericError
20048
20049	}
20050}
20051
20052func awsRestjson1_deserializeOpDocumentListRoomMembershipsOutput(v **ListRoomMembershipsOutput, value interface{}) error {
20053	if v == nil {
20054		return fmt.Errorf("unexpected nil of type %T", v)
20055	}
20056	if value == nil {
20057		return nil
20058	}
20059
20060	shape, ok := value.(map[string]interface{})
20061	if !ok {
20062		return fmt.Errorf("unexpected JSON type %v", value)
20063	}
20064
20065	var sv *ListRoomMembershipsOutput
20066	if *v == nil {
20067		sv = &ListRoomMembershipsOutput{}
20068	} else {
20069		sv = *v
20070	}
20071
20072	for key, value := range shape {
20073		switch key {
20074		case "NextToken":
20075			if value != nil {
20076				jtv, ok := value.(string)
20077				if !ok {
20078					return fmt.Errorf("expected String to be of type string, got %T instead", value)
20079				}
20080				sv.NextToken = ptr.String(jtv)
20081			}
20082
20083		case "RoomMemberships":
20084			if err := awsRestjson1_deserializeDocumentRoomMembershipList(&sv.RoomMemberships, value); err != nil {
20085				return err
20086			}
20087
20088		default:
20089			_, _ = key, value
20090
20091		}
20092	}
20093	*v = sv
20094	return nil
20095}
20096
20097type awsRestjson1_deserializeOpListRooms struct {
20098}
20099
20100func (*awsRestjson1_deserializeOpListRooms) ID() string {
20101	return "OperationDeserializer"
20102}
20103
20104func (m *awsRestjson1_deserializeOpListRooms) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20105	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20106) {
20107	out, metadata, err = next.HandleDeserialize(ctx, in)
20108	if err != nil {
20109		return out, metadata, err
20110	}
20111
20112	response, ok := out.RawResponse.(*smithyhttp.Response)
20113	if !ok {
20114		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20115	}
20116
20117	if response.StatusCode < 200 || response.StatusCode >= 300 {
20118		return out, metadata, awsRestjson1_deserializeOpErrorListRooms(response, &metadata)
20119	}
20120	output := &ListRoomsOutput{}
20121	out.Result = output
20122
20123	var buff [1024]byte
20124	ringBuffer := smithyio.NewRingBuffer(buff[:])
20125
20126	body := io.TeeReader(response.Body, ringBuffer)
20127
20128	decoder := json.NewDecoder(body)
20129	decoder.UseNumber()
20130	var shape interface{}
20131	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20132		var snapshot bytes.Buffer
20133		io.Copy(&snapshot, ringBuffer)
20134		err = &smithy.DeserializationError{
20135			Err:      fmt.Errorf("failed to decode response body, %w", err),
20136			Snapshot: snapshot.Bytes(),
20137		}
20138		return out, metadata, err
20139	}
20140
20141	err = awsRestjson1_deserializeOpDocumentListRoomsOutput(&output, shape)
20142	if err != nil {
20143		var snapshot bytes.Buffer
20144		io.Copy(&snapshot, ringBuffer)
20145		return out, metadata, &smithy.DeserializationError{
20146			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20147			Snapshot: snapshot.Bytes(),
20148		}
20149	}
20150
20151	return out, metadata, err
20152}
20153
20154func awsRestjson1_deserializeOpErrorListRooms(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20155	var errorBuffer bytes.Buffer
20156	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20157		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20158	}
20159	errorBody := bytes.NewReader(errorBuffer.Bytes())
20160
20161	errorCode := "UnknownError"
20162	errorMessage := errorCode
20163
20164	code := response.Header.Get("X-Amzn-ErrorType")
20165	if len(code) != 0 {
20166		errorCode = restjson.SanitizeErrorCode(code)
20167	}
20168
20169	var buff [1024]byte
20170	ringBuffer := smithyio.NewRingBuffer(buff[:])
20171
20172	body := io.TeeReader(errorBody, ringBuffer)
20173	decoder := json.NewDecoder(body)
20174	decoder.UseNumber()
20175	code, message, err := restjson.GetErrorInfo(decoder)
20176	if err != nil {
20177		var snapshot bytes.Buffer
20178		io.Copy(&snapshot, ringBuffer)
20179		err = &smithy.DeserializationError{
20180			Err:      fmt.Errorf("failed to decode response body, %w", err),
20181			Snapshot: snapshot.Bytes(),
20182		}
20183		return err
20184	}
20185
20186	errorBody.Seek(0, io.SeekStart)
20187	if len(code) != 0 {
20188		errorCode = restjson.SanitizeErrorCode(code)
20189	}
20190	if len(message) != 0 {
20191		errorMessage = message
20192	}
20193
20194	switch {
20195	case strings.EqualFold("BadRequestException", errorCode):
20196		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20197
20198	case strings.EqualFold("ForbiddenException", errorCode):
20199		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20200
20201	case strings.EqualFold("NotFoundException", errorCode):
20202		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20203
20204	case strings.EqualFold("ServiceFailureException", errorCode):
20205		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20206
20207	case strings.EqualFold("ServiceUnavailableException", errorCode):
20208		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20209
20210	case strings.EqualFold("ThrottledClientException", errorCode):
20211		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20212
20213	case strings.EqualFold("UnauthorizedClientException", errorCode):
20214		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20215
20216	default:
20217		genericError := &smithy.GenericAPIError{
20218			Code:    errorCode,
20219			Message: errorMessage,
20220		}
20221		return genericError
20222
20223	}
20224}
20225
20226func awsRestjson1_deserializeOpDocumentListRoomsOutput(v **ListRoomsOutput, value interface{}) error {
20227	if v == nil {
20228		return fmt.Errorf("unexpected nil of type %T", v)
20229	}
20230	if value == nil {
20231		return nil
20232	}
20233
20234	shape, ok := value.(map[string]interface{})
20235	if !ok {
20236		return fmt.Errorf("unexpected JSON type %v", value)
20237	}
20238
20239	var sv *ListRoomsOutput
20240	if *v == nil {
20241		sv = &ListRoomsOutput{}
20242	} else {
20243		sv = *v
20244	}
20245
20246	for key, value := range shape {
20247		switch key {
20248		case "NextToken":
20249			if value != nil {
20250				jtv, ok := value.(string)
20251				if !ok {
20252					return fmt.Errorf("expected String to be of type string, got %T instead", value)
20253				}
20254				sv.NextToken = ptr.String(jtv)
20255			}
20256
20257		case "Rooms":
20258			if err := awsRestjson1_deserializeDocumentRoomList(&sv.Rooms, value); err != nil {
20259				return err
20260			}
20261
20262		default:
20263			_, _ = key, value
20264
20265		}
20266	}
20267	*v = sv
20268	return nil
20269}
20270
20271type awsRestjson1_deserializeOpListSipMediaApplications struct {
20272}
20273
20274func (*awsRestjson1_deserializeOpListSipMediaApplications) ID() string {
20275	return "OperationDeserializer"
20276}
20277
20278func (m *awsRestjson1_deserializeOpListSipMediaApplications) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20279	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20280) {
20281	out, metadata, err = next.HandleDeserialize(ctx, in)
20282	if err != nil {
20283		return out, metadata, err
20284	}
20285
20286	response, ok := out.RawResponse.(*smithyhttp.Response)
20287	if !ok {
20288		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20289	}
20290
20291	if response.StatusCode < 200 || response.StatusCode >= 300 {
20292		return out, metadata, awsRestjson1_deserializeOpErrorListSipMediaApplications(response, &metadata)
20293	}
20294	output := &ListSipMediaApplicationsOutput{}
20295	out.Result = output
20296
20297	var buff [1024]byte
20298	ringBuffer := smithyio.NewRingBuffer(buff[:])
20299
20300	body := io.TeeReader(response.Body, ringBuffer)
20301
20302	decoder := json.NewDecoder(body)
20303	decoder.UseNumber()
20304	var shape interface{}
20305	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20306		var snapshot bytes.Buffer
20307		io.Copy(&snapshot, ringBuffer)
20308		err = &smithy.DeserializationError{
20309			Err:      fmt.Errorf("failed to decode response body, %w", err),
20310			Snapshot: snapshot.Bytes(),
20311		}
20312		return out, metadata, err
20313	}
20314
20315	err = awsRestjson1_deserializeOpDocumentListSipMediaApplicationsOutput(&output, shape)
20316	if err != nil {
20317		var snapshot bytes.Buffer
20318		io.Copy(&snapshot, ringBuffer)
20319		return out, metadata, &smithy.DeserializationError{
20320			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20321			Snapshot: snapshot.Bytes(),
20322		}
20323	}
20324
20325	return out, metadata, err
20326}
20327
20328func awsRestjson1_deserializeOpErrorListSipMediaApplications(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20329	var errorBuffer bytes.Buffer
20330	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20331		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20332	}
20333	errorBody := bytes.NewReader(errorBuffer.Bytes())
20334
20335	errorCode := "UnknownError"
20336	errorMessage := errorCode
20337
20338	code := response.Header.Get("X-Amzn-ErrorType")
20339	if len(code) != 0 {
20340		errorCode = restjson.SanitizeErrorCode(code)
20341	}
20342
20343	var buff [1024]byte
20344	ringBuffer := smithyio.NewRingBuffer(buff[:])
20345
20346	body := io.TeeReader(errorBody, ringBuffer)
20347	decoder := json.NewDecoder(body)
20348	decoder.UseNumber()
20349	code, message, err := restjson.GetErrorInfo(decoder)
20350	if err != nil {
20351		var snapshot bytes.Buffer
20352		io.Copy(&snapshot, ringBuffer)
20353		err = &smithy.DeserializationError{
20354			Err:      fmt.Errorf("failed to decode response body, %w", err),
20355			Snapshot: snapshot.Bytes(),
20356		}
20357		return err
20358	}
20359
20360	errorBody.Seek(0, io.SeekStart)
20361	if len(code) != 0 {
20362		errorCode = restjson.SanitizeErrorCode(code)
20363	}
20364	if len(message) != 0 {
20365		errorMessage = message
20366	}
20367
20368	switch {
20369	case strings.EqualFold("BadRequestException", errorCode):
20370		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20371
20372	case strings.EqualFold("ForbiddenException", errorCode):
20373		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20374
20375	case strings.EqualFold("ServiceFailureException", errorCode):
20376		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20377
20378	case strings.EqualFold("ServiceUnavailableException", errorCode):
20379		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20380
20381	case strings.EqualFold("ThrottledClientException", errorCode):
20382		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20383
20384	case strings.EqualFold("UnauthorizedClientException", errorCode):
20385		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20386
20387	default:
20388		genericError := &smithy.GenericAPIError{
20389			Code:    errorCode,
20390			Message: errorMessage,
20391		}
20392		return genericError
20393
20394	}
20395}
20396
20397func awsRestjson1_deserializeOpDocumentListSipMediaApplicationsOutput(v **ListSipMediaApplicationsOutput, value interface{}) error {
20398	if v == nil {
20399		return fmt.Errorf("unexpected nil of type %T", v)
20400	}
20401	if value == nil {
20402		return nil
20403	}
20404
20405	shape, ok := value.(map[string]interface{})
20406	if !ok {
20407		return fmt.Errorf("unexpected JSON type %v", value)
20408	}
20409
20410	var sv *ListSipMediaApplicationsOutput
20411	if *v == nil {
20412		sv = &ListSipMediaApplicationsOutput{}
20413	} else {
20414		sv = *v
20415	}
20416
20417	for key, value := range shape {
20418		switch key {
20419		case "NextToken":
20420			if value != nil {
20421				jtv, ok := value.(string)
20422				if !ok {
20423					return fmt.Errorf("expected NextTokenString to be of type string, got %T instead", value)
20424				}
20425				sv.NextToken = ptr.String(jtv)
20426			}
20427
20428		case "SipMediaApplications":
20429			if err := awsRestjson1_deserializeDocumentSipMediaApplicationList(&sv.SipMediaApplications, value); err != nil {
20430				return err
20431			}
20432
20433		default:
20434			_, _ = key, value
20435
20436		}
20437	}
20438	*v = sv
20439	return nil
20440}
20441
20442type awsRestjson1_deserializeOpListSipRules struct {
20443}
20444
20445func (*awsRestjson1_deserializeOpListSipRules) ID() string {
20446	return "OperationDeserializer"
20447}
20448
20449func (m *awsRestjson1_deserializeOpListSipRules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20450	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20451) {
20452	out, metadata, err = next.HandleDeserialize(ctx, in)
20453	if err != nil {
20454		return out, metadata, err
20455	}
20456
20457	response, ok := out.RawResponse.(*smithyhttp.Response)
20458	if !ok {
20459		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20460	}
20461
20462	if response.StatusCode < 200 || response.StatusCode >= 300 {
20463		return out, metadata, awsRestjson1_deserializeOpErrorListSipRules(response, &metadata)
20464	}
20465	output := &ListSipRulesOutput{}
20466	out.Result = output
20467
20468	var buff [1024]byte
20469	ringBuffer := smithyio.NewRingBuffer(buff[:])
20470
20471	body := io.TeeReader(response.Body, ringBuffer)
20472
20473	decoder := json.NewDecoder(body)
20474	decoder.UseNumber()
20475	var shape interface{}
20476	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20477		var snapshot bytes.Buffer
20478		io.Copy(&snapshot, ringBuffer)
20479		err = &smithy.DeserializationError{
20480			Err:      fmt.Errorf("failed to decode response body, %w", err),
20481			Snapshot: snapshot.Bytes(),
20482		}
20483		return out, metadata, err
20484	}
20485
20486	err = awsRestjson1_deserializeOpDocumentListSipRulesOutput(&output, shape)
20487	if err != nil {
20488		var snapshot bytes.Buffer
20489		io.Copy(&snapshot, ringBuffer)
20490		return out, metadata, &smithy.DeserializationError{
20491			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20492			Snapshot: snapshot.Bytes(),
20493		}
20494	}
20495
20496	return out, metadata, err
20497}
20498
20499func awsRestjson1_deserializeOpErrorListSipRules(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20500	var errorBuffer bytes.Buffer
20501	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20502		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20503	}
20504	errorBody := bytes.NewReader(errorBuffer.Bytes())
20505
20506	errorCode := "UnknownError"
20507	errorMessage := errorCode
20508
20509	code := response.Header.Get("X-Amzn-ErrorType")
20510	if len(code) != 0 {
20511		errorCode = restjson.SanitizeErrorCode(code)
20512	}
20513
20514	var buff [1024]byte
20515	ringBuffer := smithyio.NewRingBuffer(buff[:])
20516
20517	body := io.TeeReader(errorBody, ringBuffer)
20518	decoder := json.NewDecoder(body)
20519	decoder.UseNumber()
20520	code, message, err := restjson.GetErrorInfo(decoder)
20521	if err != nil {
20522		var snapshot bytes.Buffer
20523		io.Copy(&snapshot, ringBuffer)
20524		err = &smithy.DeserializationError{
20525			Err:      fmt.Errorf("failed to decode response body, %w", err),
20526			Snapshot: snapshot.Bytes(),
20527		}
20528		return err
20529	}
20530
20531	errorBody.Seek(0, io.SeekStart)
20532	if len(code) != 0 {
20533		errorCode = restjson.SanitizeErrorCode(code)
20534	}
20535	if len(message) != 0 {
20536		errorMessage = message
20537	}
20538
20539	switch {
20540	case strings.EqualFold("BadRequestException", errorCode):
20541		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20542
20543	case strings.EqualFold("ForbiddenException", errorCode):
20544		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20545
20546	case strings.EqualFold("ServiceFailureException", errorCode):
20547		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20548
20549	case strings.EqualFold("ServiceUnavailableException", errorCode):
20550		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20551
20552	case strings.EqualFold("ThrottledClientException", errorCode):
20553		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20554
20555	case strings.EqualFold("UnauthorizedClientException", errorCode):
20556		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20557
20558	default:
20559		genericError := &smithy.GenericAPIError{
20560			Code:    errorCode,
20561			Message: errorMessage,
20562		}
20563		return genericError
20564
20565	}
20566}
20567
20568func awsRestjson1_deserializeOpDocumentListSipRulesOutput(v **ListSipRulesOutput, value interface{}) error {
20569	if v == nil {
20570		return fmt.Errorf("unexpected nil of type %T", v)
20571	}
20572	if value == nil {
20573		return nil
20574	}
20575
20576	shape, ok := value.(map[string]interface{})
20577	if !ok {
20578		return fmt.Errorf("unexpected JSON type %v", value)
20579	}
20580
20581	var sv *ListSipRulesOutput
20582	if *v == nil {
20583		sv = &ListSipRulesOutput{}
20584	} else {
20585		sv = *v
20586	}
20587
20588	for key, value := range shape {
20589		switch key {
20590		case "NextToken":
20591			if value != nil {
20592				jtv, ok := value.(string)
20593				if !ok {
20594					return fmt.Errorf("expected NextTokenString to be of type string, got %T instead", value)
20595				}
20596				sv.NextToken = ptr.String(jtv)
20597			}
20598
20599		case "SipRules":
20600			if err := awsRestjson1_deserializeDocumentSipRuleList(&sv.SipRules, value); err != nil {
20601				return err
20602			}
20603
20604		default:
20605			_, _ = key, value
20606
20607		}
20608	}
20609	*v = sv
20610	return nil
20611}
20612
20613type awsRestjson1_deserializeOpListSupportedPhoneNumberCountries struct {
20614}
20615
20616func (*awsRestjson1_deserializeOpListSupportedPhoneNumberCountries) ID() string {
20617	return "OperationDeserializer"
20618}
20619
20620func (m *awsRestjson1_deserializeOpListSupportedPhoneNumberCountries) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20621	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20622) {
20623	out, metadata, err = next.HandleDeserialize(ctx, in)
20624	if err != nil {
20625		return out, metadata, err
20626	}
20627
20628	response, ok := out.RawResponse.(*smithyhttp.Response)
20629	if !ok {
20630		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20631	}
20632
20633	if response.StatusCode < 200 || response.StatusCode >= 300 {
20634		return out, metadata, awsRestjson1_deserializeOpErrorListSupportedPhoneNumberCountries(response, &metadata)
20635	}
20636	output := &ListSupportedPhoneNumberCountriesOutput{}
20637	out.Result = output
20638
20639	var buff [1024]byte
20640	ringBuffer := smithyio.NewRingBuffer(buff[:])
20641
20642	body := io.TeeReader(response.Body, ringBuffer)
20643
20644	decoder := json.NewDecoder(body)
20645	decoder.UseNumber()
20646	var shape interface{}
20647	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20648		var snapshot bytes.Buffer
20649		io.Copy(&snapshot, ringBuffer)
20650		err = &smithy.DeserializationError{
20651			Err:      fmt.Errorf("failed to decode response body, %w", err),
20652			Snapshot: snapshot.Bytes(),
20653		}
20654		return out, metadata, err
20655	}
20656
20657	err = awsRestjson1_deserializeOpDocumentListSupportedPhoneNumberCountriesOutput(&output, shape)
20658	if err != nil {
20659		var snapshot bytes.Buffer
20660		io.Copy(&snapshot, ringBuffer)
20661		return out, metadata, &smithy.DeserializationError{
20662			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20663			Snapshot: snapshot.Bytes(),
20664		}
20665	}
20666
20667	return out, metadata, err
20668}
20669
20670func awsRestjson1_deserializeOpErrorListSupportedPhoneNumberCountries(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20671	var errorBuffer bytes.Buffer
20672	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20673		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20674	}
20675	errorBody := bytes.NewReader(errorBuffer.Bytes())
20676
20677	errorCode := "UnknownError"
20678	errorMessage := errorCode
20679
20680	code := response.Header.Get("X-Amzn-ErrorType")
20681	if len(code) != 0 {
20682		errorCode = restjson.SanitizeErrorCode(code)
20683	}
20684
20685	var buff [1024]byte
20686	ringBuffer := smithyio.NewRingBuffer(buff[:])
20687
20688	body := io.TeeReader(errorBody, ringBuffer)
20689	decoder := json.NewDecoder(body)
20690	decoder.UseNumber()
20691	code, message, err := restjson.GetErrorInfo(decoder)
20692	if err != nil {
20693		var snapshot bytes.Buffer
20694		io.Copy(&snapshot, ringBuffer)
20695		err = &smithy.DeserializationError{
20696			Err:      fmt.Errorf("failed to decode response body, %w", err),
20697			Snapshot: snapshot.Bytes(),
20698		}
20699		return err
20700	}
20701
20702	errorBody.Seek(0, io.SeekStart)
20703	if len(code) != 0 {
20704		errorCode = restjson.SanitizeErrorCode(code)
20705	}
20706	if len(message) != 0 {
20707		errorMessage = message
20708	}
20709
20710	switch {
20711	case strings.EqualFold("AccessDeniedException", errorCode):
20712		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
20713
20714	case strings.EqualFold("BadRequestException", errorCode):
20715		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20716
20717	case strings.EqualFold("ForbiddenException", errorCode):
20718		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20719
20720	case strings.EqualFold("ServiceFailureException", errorCode):
20721		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20722
20723	case strings.EqualFold("ServiceUnavailableException", errorCode):
20724		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20725
20726	case strings.EqualFold("ThrottledClientException", errorCode):
20727		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20728
20729	case strings.EqualFold("UnauthorizedClientException", errorCode):
20730		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20731
20732	default:
20733		genericError := &smithy.GenericAPIError{
20734			Code:    errorCode,
20735			Message: errorMessage,
20736		}
20737		return genericError
20738
20739	}
20740}
20741
20742func awsRestjson1_deserializeOpDocumentListSupportedPhoneNumberCountriesOutput(v **ListSupportedPhoneNumberCountriesOutput, value interface{}) error {
20743	if v == nil {
20744		return fmt.Errorf("unexpected nil of type %T", v)
20745	}
20746	if value == nil {
20747		return nil
20748	}
20749
20750	shape, ok := value.(map[string]interface{})
20751	if !ok {
20752		return fmt.Errorf("unexpected JSON type %v", value)
20753	}
20754
20755	var sv *ListSupportedPhoneNumberCountriesOutput
20756	if *v == nil {
20757		sv = &ListSupportedPhoneNumberCountriesOutput{}
20758	} else {
20759		sv = *v
20760	}
20761
20762	for key, value := range shape {
20763		switch key {
20764		case "PhoneNumberCountries":
20765			if err := awsRestjson1_deserializeDocumentPhoneNumberCountriesList(&sv.PhoneNumberCountries, value); err != nil {
20766				return err
20767			}
20768
20769		default:
20770			_, _ = key, value
20771
20772		}
20773	}
20774	*v = sv
20775	return nil
20776}
20777
20778type awsRestjson1_deserializeOpListTagsForResource struct {
20779}
20780
20781func (*awsRestjson1_deserializeOpListTagsForResource) ID() string {
20782	return "OperationDeserializer"
20783}
20784
20785func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20786	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20787) {
20788	out, metadata, err = next.HandleDeserialize(ctx, in)
20789	if err != nil {
20790		return out, metadata, err
20791	}
20792
20793	response, ok := out.RawResponse.(*smithyhttp.Response)
20794	if !ok {
20795		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20796	}
20797
20798	if response.StatusCode < 200 || response.StatusCode >= 300 {
20799		return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata)
20800	}
20801	output := &ListTagsForResourceOutput{}
20802	out.Result = output
20803
20804	var buff [1024]byte
20805	ringBuffer := smithyio.NewRingBuffer(buff[:])
20806
20807	body := io.TeeReader(response.Body, ringBuffer)
20808
20809	decoder := json.NewDecoder(body)
20810	decoder.UseNumber()
20811	var shape interface{}
20812	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20813		var snapshot bytes.Buffer
20814		io.Copy(&snapshot, ringBuffer)
20815		err = &smithy.DeserializationError{
20816			Err:      fmt.Errorf("failed to decode response body, %w", err),
20817			Snapshot: snapshot.Bytes(),
20818		}
20819		return out, metadata, err
20820	}
20821
20822	err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape)
20823	if err != nil {
20824		var snapshot bytes.Buffer
20825		io.Copy(&snapshot, ringBuffer)
20826		return out, metadata, &smithy.DeserializationError{
20827			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20828			Snapshot: snapshot.Bytes(),
20829		}
20830	}
20831
20832	return out, metadata, err
20833}
20834
20835func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20836	var errorBuffer bytes.Buffer
20837	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20838		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20839	}
20840	errorBody := bytes.NewReader(errorBuffer.Bytes())
20841
20842	errorCode := "UnknownError"
20843	errorMessage := errorCode
20844
20845	code := response.Header.Get("X-Amzn-ErrorType")
20846	if len(code) != 0 {
20847		errorCode = restjson.SanitizeErrorCode(code)
20848	}
20849
20850	var buff [1024]byte
20851	ringBuffer := smithyio.NewRingBuffer(buff[:])
20852
20853	body := io.TeeReader(errorBody, ringBuffer)
20854	decoder := json.NewDecoder(body)
20855	decoder.UseNumber()
20856	code, message, err := restjson.GetErrorInfo(decoder)
20857	if err != nil {
20858		var snapshot bytes.Buffer
20859		io.Copy(&snapshot, ringBuffer)
20860		err = &smithy.DeserializationError{
20861			Err:      fmt.Errorf("failed to decode response body, %w", err),
20862			Snapshot: snapshot.Bytes(),
20863		}
20864		return err
20865	}
20866
20867	errorBody.Seek(0, io.SeekStart)
20868	if len(code) != 0 {
20869		errorCode = restjson.SanitizeErrorCode(code)
20870	}
20871	if len(message) != 0 {
20872		errorMessage = message
20873	}
20874
20875	switch {
20876	case strings.EqualFold("BadRequestException", errorCode):
20877		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20878
20879	case strings.EqualFold("ForbiddenException", errorCode):
20880		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20881
20882	case strings.EqualFold("NotFoundException", errorCode):
20883		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20884
20885	case strings.EqualFold("ServiceFailureException", errorCode):
20886		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20887
20888	case strings.EqualFold("ServiceUnavailableException", errorCode):
20889		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20890
20891	case strings.EqualFold("UnauthorizedClientException", errorCode):
20892		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20893
20894	default:
20895		genericError := &smithy.GenericAPIError{
20896			Code:    errorCode,
20897			Message: errorMessage,
20898		}
20899		return genericError
20900
20901	}
20902}
20903
20904func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error {
20905	if v == nil {
20906		return fmt.Errorf("unexpected nil of type %T", v)
20907	}
20908	if value == nil {
20909		return nil
20910	}
20911
20912	shape, ok := value.(map[string]interface{})
20913	if !ok {
20914		return fmt.Errorf("unexpected JSON type %v", value)
20915	}
20916
20917	var sv *ListTagsForResourceOutput
20918	if *v == nil {
20919		sv = &ListTagsForResourceOutput{}
20920	} else {
20921		sv = *v
20922	}
20923
20924	for key, value := range shape {
20925		switch key {
20926		case "Tags":
20927			if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil {
20928				return err
20929			}
20930
20931		default:
20932			_, _ = key, value
20933
20934		}
20935	}
20936	*v = sv
20937	return nil
20938}
20939
20940type awsRestjson1_deserializeOpListUsers struct {
20941}
20942
20943func (*awsRestjson1_deserializeOpListUsers) ID() string {
20944	return "OperationDeserializer"
20945}
20946
20947func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20948	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20949) {
20950	out, metadata, err = next.HandleDeserialize(ctx, in)
20951	if err != nil {
20952		return out, metadata, err
20953	}
20954
20955	response, ok := out.RawResponse.(*smithyhttp.Response)
20956	if !ok {
20957		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20958	}
20959
20960	if response.StatusCode < 200 || response.StatusCode >= 300 {
20961		return out, metadata, awsRestjson1_deserializeOpErrorListUsers(response, &metadata)
20962	}
20963	output := &ListUsersOutput{}
20964	out.Result = output
20965
20966	var buff [1024]byte
20967	ringBuffer := smithyio.NewRingBuffer(buff[:])
20968
20969	body := io.TeeReader(response.Body, ringBuffer)
20970
20971	decoder := json.NewDecoder(body)
20972	decoder.UseNumber()
20973	var shape interface{}
20974	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20975		var snapshot bytes.Buffer
20976		io.Copy(&snapshot, ringBuffer)
20977		err = &smithy.DeserializationError{
20978			Err:      fmt.Errorf("failed to decode response body, %w", err),
20979			Snapshot: snapshot.Bytes(),
20980		}
20981		return out, metadata, err
20982	}
20983
20984	err = awsRestjson1_deserializeOpDocumentListUsersOutput(&output, shape)
20985	if err != nil {
20986		var snapshot bytes.Buffer
20987		io.Copy(&snapshot, ringBuffer)
20988		return out, metadata, &smithy.DeserializationError{
20989			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20990			Snapshot: snapshot.Bytes(),
20991		}
20992	}
20993
20994	return out, metadata, err
20995}
20996
20997func awsRestjson1_deserializeOpErrorListUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20998	var errorBuffer bytes.Buffer
20999	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21000		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21001	}
21002	errorBody := bytes.NewReader(errorBuffer.Bytes())
21003
21004	errorCode := "UnknownError"
21005	errorMessage := errorCode
21006
21007	code := response.Header.Get("X-Amzn-ErrorType")
21008	if len(code) != 0 {
21009		errorCode = restjson.SanitizeErrorCode(code)
21010	}
21011
21012	var buff [1024]byte
21013	ringBuffer := smithyio.NewRingBuffer(buff[:])
21014
21015	body := io.TeeReader(errorBody, ringBuffer)
21016	decoder := json.NewDecoder(body)
21017	decoder.UseNumber()
21018	code, message, err := restjson.GetErrorInfo(decoder)
21019	if err != nil {
21020		var snapshot bytes.Buffer
21021		io.Copy(&snapshot, ringBuffer)
21022		err = &smithy.DeserializationError{
21023			Err:      fmt.Errorf("failed to decode response body, %w", err),
21024			Snapshot: snapshot.Bytes(),
21025		}
21026		return err
21027	}
21028
21029	errorBody.Seek(0, io.SeekStart)
21030	if len(code) != 0 {
21031		errorCode = restjson.SanitizeErrorCode(code)
21032	}
21033	if len(message) != 0 {
21034		errorMessage = message
21035	}
21036
21037	switch {
21038	case strings.EqualFold("BadRequestException", errorCode):
21039		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21040
21041	case strings.EqualFold("ForbiddenException", errorCode):
21042		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21043
21044	case strings.EqualFold("NotFoundException", errorCode):
21045		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21046
21047	case strings.EqualFold("ServiceFailureException", errorCode):
21048		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21049
21050	case strings.EqualFold("ServiceUnavailableException", errorCode):
21051		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21052
21053	case strings.EqualFold("ThrottledClientException", errorCode):
21054		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21055
21056	case strings.EqualFold("UnauthorizedClientException", errorCode):
21057		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21058
21059	default:
21060		genericError := &smithy.GenericAPIError{
21061			Code:    errorCode,
21062			Message: errorMessage,
21063		}
21064		return genericError
21065
21066	}
21067}
21068
21069func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, value interface{}) error {
21070	if v == nil {
21071		return fmt.Errorf("unexpected nil of type %T", v)
21072	}
21073	if value == nil {
21074		return nil
21075	}
21076
21077	shape, ok := value.(map[string]interface{})
21078	if !ok {
21079		return fmt.Errorf("unexpected JSON type %v", value)
21080	}
21081
21082	var sv *ListUsersOutput
21083	if *v == nil {
21084		sv = &ListUsersOutput{}
21085	} else {
21086		sv = *v
21087	}
21088
21089	for key, value := range shape {
21090		switch key {
21091		case "NextToken":
21092			if value != nil {
21093				jtv, ok := value.(string)
21094				if !ok {
21095					return fmt.Errorf("expected String to be of type string, got %T instead", value)
21096				}
21097				sv.NextToken = ptr.String(jtv)
21098			}
21099
21100		case "Users":
21101			if err := awsRestjson1_deserializeDocumentUserList(&sv.Users, value); err != nil {
21102				return err
21103			}
21104
21105		default:
21106			_, _ = key, value
21107
21108		}
21109	}
21110	*v = sv
21111	return nil
21112}
21113
21114type awsRestjson1_deserializeOpListVoiceConnectorGroups struct {
21115}
21116
21117func (*awsRestjson1_deserializeOpListVoiceConnectorGroups) ID() string {
21118	return "OperationDeserializer"
21119}
21120
21121func (m *awsRestjson1_deserializeOpListVoiceConnectorGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21122	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21123) {
21124	out, metadata, err = next.HandleDeserialize(ctx, in)
21125	if err != nil {
21126		return out, metadata, err
21127	}
21128
21129	response, ok := out.RawResponse.(*smithyhttp.Response)
21130	if !ok {
21131		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21132	}
21133
21134	if response.StatusCode < 200 || response.StatusCode >= 300 {
21135		return out, metadata, awsRestjson1_deserializeOpErrorListVoiceConnectorGroups(response, &metadata)
21136	}
21137	output := &ListVoiceConnectorGroupsOutput{}
21138	out.Result = output
21139
21140	var buff [1024]byte
21141	ringBuffer := smithyio.NewRingBuffer(buff[:])
21142
21143	body := io.TeeReader(response.Body, ringBuffer)
21144
21145	decoder := json.NewDecoder(body)
21146	decoder.UseNumber()
21147	var shape interface{}
21148	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21149		var snapshot bytes.Buffer
21150		io.Copy(&snapshot, ringBuffer)
21151		err = &smithy.DeserializationError{
21152			Err:      fmt.Errorf("failed to decode response body, %w", err),
21153			Snapshot: snapshot.Bytes(),
21154		}
21155		return out, metadata, err
21156	}
21157
21158	err = awsRestjson1_deserializeOpDocumentListVoiceConnectorGroupsOutput(&output, shape)
21159	if err != nil {
21160		var snapshot bytes.Buffer
21161		io.Copy(&snapshot, ringBuffer)
21162		return out, metadata, &smithy.DeserializationError{
21163			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21164			Snapshot: snapshot.Bytes(),
21165		}
21166	}
21167
21168	return out, metadata, err
21169}
21170
21171func awsRestjson1_deserializeOpErrorListVoiceConnectorGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21172	var errorBuffer bytes.Buffer
21173	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21174		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21175	}
21176	errorBody := bytes.NewReader(errorBuffer.Bytes())
21177
21178	errorCode := "UnknownError"
21179	errorMessage := errorCode
21180
21181	code := response.Header.Get("X-Amzn-ErrorType")
21182	if len(code) != 0 {
21183		errorCode = restjson.SanitizeErrorCode(code)
21184	}
21185
21186	var buff [1024]byte
21187	ringBuffer := smithyio.NewRingBuffer(buff[:])
21188
21189	body := io.TeeReader(errorBody, ringBuffer)
21190	decoder := json.NewDecoder(body)
21191	decoder.UseNumber()
21192	code, message, err := restjson.GetErrorInfo(decoder)
21193	if err != nil {
21194		var snapshot bytes.Buffer
21195		io.Copy(&snapshot, ringBuffer)
21196		err = &smithy.DeserializationError{
21197			Err:      fmt.Errorf("failed to decode response body, %w", err),
21198			Snapshot: snapshot.Bytes(),
21199		}
21200		return err
21201	}
21202
21203	errorBody.Seek(0, io.SeekStart)
21204	if len(code) != 0 {
21205		errorCode = restjson.SanitizeErrorCode(code)
21206	}
21207	if len(message) != 0 {
21208		errorMessage = message
21209	}
21210
21211	switch {
21212	case strings.EqualFold("BadRequestException", errorCode):
21213		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21214
21215	case strings.EqualFold("ForbiddenException", errorCode):
21216		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21217
21218	case strings.EqualFold("ServiceFailureException", errorCode):
21219		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21220
21221	case strings.EqualFold("ServiceUnavailableException", errorCode):
21222		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21223
21224	case strings.EqualFold("ThrottledClientException", errorCode):
21225		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21226
21227	case strings.EqualFold("UnauthorizedClientException", errorCode):
21228		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21229
21230	default:
21231		genericError := &smithy.GenericAPIError{
21232			Code:    errorCode,
21233			Message: errorMessage,
21234		}
21235		return genericError
21236
21237	}
21238}
21239
21240func awsRestjson1_deserializeOpDocumentListVoiceConnectorGroupsOutput(v **ListVoiceConnectorGroupsOutput, value interface{}) error {
21241	if v == nil {
21242		return fmt.Errorf("unexpected nil of type %T", v)
21243	}
21244	if value == nil {
21245		return nil
21246	}
21247
21248	shape, ok := value.(map[string]interface{})
21249	if !ok {
21250		return fmt.Errorf("unexpected JSON type %v", value)
21251	}
21252
21253	var sv *ListVoiceConnectorGroupsOutput
21254	if *v == nil {
21255		sv = &ListVoiceConnectorGroupsOutput{}
21256	} else {
21257		sv = *v
21258	}
21259
21260	for key, value := range shape {
21261		switch key {
21262		case "NextToken":
21263			if value != nil {
21264				jtv, ok := value.(string)
21265				if !ok {
21266					return fmt.Errorf("expected String to be of type string, got %T instead", value)
21267				}
21268				sv.NextToken = ptr.String(jtv)
21269			}
21270
21271		case "VoiceConnectorGroups":
21272			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroupList(&sv.VoiceConnectorGroups, value); err != nil {
21273				return err
21274			}
21275
21276		default:
21277			_, _ = key, value
21278
21279		}
21280	}
21281	*v = sv
21282	return nil
21283}
21284
21285type awsRestjson1_deserializeOpListVoiceConnectors struct {
21286}
21287
21288func (*awsRestjson1_deserializeOpListVoiceConnectors) ID() string {
21289	return "OperationDeserializer"
21290}
21291
21292func (m *awsRestjson1_deserializeOpListVoiceConnectors) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21293	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21294) {
21295	out, metadata, err = next.HandleDeserialize(ctx, in)
21296	if err != nil {
21297		return out, metadata, err
21298	}
21299
21300	response, ok := out.RawResponse.(*smithyhttp.Response)
21301	if !ok {
21302		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21303	}
21304
21305	if response.StatusCode < 200 || response.StatusCode >= 300 {
21306		return out, metadata, awsRestjson1_deserializeOpErrorListVoiceConnectors(response, &metadata)
21307	}
21308	output := &ListVoiceConnectorsOutput{}
21309	out.Result = output
21310
21311	var buff [1024]byte
21312	ringBuffer := smithyio.NewRingBuffer(buff[:])
21313
21314	body := io.TeeReader(response.Body, ringBuffer)
21315
21316	decoder := json.NewDecoder(body)
21317	decoder.UseNumber()
21318	var shape interface{}
21319	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21320		var snapshot bytes.Buffer
21321		io.Copy(&snapshot, ringBuffer)
21322		err = &smithy.DeserializationError{
21323			Err:      fmt.Errorf("failed to decode response body, %w", err),
21324			Snapshot: snapshot.Bytes(),
21325		}
21326		return out, metadata, err
21327	}
21328
21329	err = awsRestjson1_deserializeOpDocumentListVoiceConnectorsOutput(&output, shape)
21330	if err != nil {
21331		var snapshot bytes.Buffer
21332		io.Copy(&snapshot, ringBuffer)
21333		return out, metadata, &smithy.DeserializationError{
21334			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21335			Snapshot: snapshot.Bytes(),
21336		}
21337	}
21338
21339	return out, metadata, err
21340}
21341
21342func awsRestjson1_deserializeOpErrorListVoiceConnectors(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21343	var errorBuffer bytes.Buffer
21344	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21345		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21346	}
21347	errorBody := bytes.NewReader(errorBuffer.Bytes())
21348
21349	errorCode := "UnknownError"
21350	errorMessage := errorCode
21351
21352	code := response.Header.Get("X-Amzn-ErrorType")
21353	if len(code) != 0 {
21354		errorCode = restjson.SanitizeErrorCode(code)
21355	}
21356
21357	var buff [1024]byte
21358	ringBuffer := smithyio.NewRingBuffer(buff[:])
21359
21360	body := io.TeeReader(errorBody, ringBuffer)
21361	decoder := json.NewDecoder(body)
21362	decoder.UseNumber()
21363	code, message, err := restjson.GetErrorInfo(decoder)
21364	if err != nil {
21365		var snapshot bytes.Buffer
21366		io.Copy(&snapshot, ringBuffer)
21367		err = &smithy.DeserializationError{
21368			Err:      fmt.Errorf("failed to decode response body, %w", err),
21369			Snapshot: snapshot.Bytes(),
21370		}
21371		return err
21372	}
21373
21374	errorBody.Seek(0, io.SeekStart)
21375	if len(code) != 0 {
21376		errorCode = restjson.SanitizeErrorCode(code)
21377	}
21378	if len(message) != 0 {
21379		errorMessage = message
21380	}
21381
21382	switch {
21383	case strings.EqualFold("BadRequestException", errorCode):
21384		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21385
21386	case strings.EqualFold("ForbiddenException", errorCode):
21387		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21388
21389	case strings.EqualFold("ServiceFailureException", errorCode):
21390		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21391
21392	case strings.EqualFold("ServiceUnavailableException", errorCode):
21393		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21394
21395	case strings.EqualFold("ThrottledClientException", errorCode):
21396		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21397
21398	case strings.EqualFold("UnauthorizedClientException", errorCode):
21399		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21400
21401	default:
21402		genericError := &smithy.GenericAPIError{
21403			Code:    errorCode,
21404			Message: errorMessage,
21405		}
21406		return genericError
21407
21408	}
21409}
21410
21411func awsRestjson1_deserializeOpDocumentListVoiceConnectorsOutput(v **ListVoiceConnectorsOutput, value interface{}) error {
21412	if v == nil {
21413		return fmt.Errorf("unexpected nil of type %T", v)
21414	}
21415	if value == nil {
21416		return nil
21417	}
21418
21419	shape, ok := value.(map[string]interface{})
21420	if !ok {
21421		return fmt.Errorf("unexpected JSON type %v", value)
21422	}
21423
21424	var sv *ListVoiceConnectorsOutput
21425	if *v == nil {
21426		sv = &ListVoiceConnectorsOutput{}
21427	} else {
21428		sv = *v
21429	}
21430
21431	for key, value := range shape {
21432		switch key {
21433		case "NextToken":
21434			if value != nil {
21435				jtv, ok := value.(string)
21436				if !ok {
21437					return fmt.Errorf("expected String to be of type string, got %T instead", value)
21438				}
21439				sv.NextToken = ptr.String(jtv)
21440			}
21441
21442		case "VoiceConnectors":
21443			if err := awsRestjson1_deserializeDocumentVoiceConnectorList(&sv.VoiceConnectors, value); err != nil {
21444				return err
21445			}
21446
21447		default:
21448			_, _ = key, value
21449
21450		}
21451	}
21452	*v = sv
21453	return nil
21454}
21455
21456type awsRestjson1_deserializeOpListVoiceConnectorTerminationCredentials struct {
21457}
21458
21459func (*awsRestjson1_deserializeOpListVoiceConnectorTerminationCredentials) ID() string {
21460	return "OperationDeserializer"
21461}
21462
21463func (m *awsRestjson1_deserializeOpListVoiceConnectorTerminationCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21464	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21465) {
21466	out, metadata, err = next.HandleDeserialize(ctx, in)
21467	if err != nil {
21468		return out, metadata, err
21469	}
21470
21471	response, ok := out.RawResponse.(*smithyhttp.Response)
21472	if !ok {
21473		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21474	}
21475
21476	if response.StatusCode < 200 || response.StatusCode >= 300 {
21477		return out, metadata, awsRestjson1_deserializeOpErrorListVoiceConnectorTerminationCredentials(response, &metadata)
21478	}
21479	output := &ListVoiceConnectorTerminationCredentialsOutput{}
21480	out.Result = output
21481
21482	var buff [1024]byte
21483	ringBuffer := smithyio.NewRingBuffer(buff[:])
21484
21485	body := io.TeeReader(response.Body, ringBuffer)
21486
21487	decoder := json.NewDecoder(body)
21488	decoder.UseNumber()
21489	var shape interface{}
21490	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21491		var snapshot bytes.Buffer
21492		io.Copy(&snapshot, ringBuffer)
21493		err = &smithy.DeserializationError{
21494			Err:      fmt.Errorf("failed to decode response body, %w", err),
21495			Snapshot: snapshot.Bytes(),
21496		}
21497		return out, metadata, err
21498	}
21499
21500	err = awsRestjson1_deserializeOpDocumentListVoiceConnectorTerminationCredentialsOutput(&output, shape)
21501	if err != nil {
21502		var snapshot bytes.Buffer
21503		io.Copy(&snapshot, ringBuffer)
21504		return out, metadata, &smithy.DeserializationError{
21505			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21506			Snapshot: snapshot.Bytes(),
21507		}
21508	}
21509
21510	return out, metadata, err
21511}
21512
21513func awsRestjson1_deserializeOpErrorListVoiceConnectorTerminationCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21514	var errorBuffer bytes.Buffer
21515	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21516		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21517	}
21518	errorBody := bytes.NewReader(errorBuffer.Bytes())
21519
21520	errorCode := "UnknownError"
21521	errorMessage := errorCode
21522
21523	code := response.Header.Get("X-Amzn-ErrorType")
21524	if len(code) != 0 {
21525		errorCode = restjson.SanitizeErrorCode(code)
21526	}
21527
21528	var buff [1024]byte
21529	ringBuffer := smithyio.NewRingBuffer(buff[:])
21530
21531	body := io.TeeReader(errorBody, ringBuffer)
21532	decoder := json.NewDecoder(body)
21533	decoder.UseNumber()
21534	code, message, err := restjson.GetErrorInfo(decoder)
21535	if err != nil {
21536		var snapshot bytes.Buffer
21537		io.Copy(&snapshot, ringBuffer)
21538		err = &smithy.DeserializationError{
21539			Err:      fmt.Errorf("failed to decode response body, %w", err),
21540			Snapshot: snapshot.Bytes(),
21541		}
21542		return err
21543	}
21544
21545	errorBody.Seek(0, io.SeekStart)
21546	if len(code) != 0 {
21547		errorCode = restjson.SanitizeErrorCode(code)
21548	}
21549	if len(message) != 0 {
21550		errorMessage = message
21551	}
21552
21553	switch {
21554	case strings.EqualFold("BadRequestException", errorCode):
21555		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21556
21557	case strings.EqualFold("ForbiddenException", errorCode):
21558		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21559
21560	case strings.EqualFold("NotFoundException", errorCode):
21561		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21562
21563	case strings.EqualFold("ServiceFailureException", errorCode):
21564		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21565
21566	case strings.EqualFold("ServiceUnavailableException", errorCode):
21567		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21568
21569	case strings.EqualFold("ThrottledClientException", errorCode):
21570		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21571
21572	case strings.EqualFold("UnauthorizedClientException", errorCode):
21573		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21574
21575	default:
21576		genericError := &smithy.GenericAPIError{
21577			Code:    errorCode,
21578			Message: errorMessage,
21579		}
21580		return genericError
21581
21582	}
21583}
21584
21585func awsRestjson1_deserializeOpDocumentListVoiceConnectorTerminationCredentialsOutput(v **ListVoiceConnectorTerminationCredentialsOutput, value interface{}) error {
21586	if v == nil {
21587		return fmt.Errorf("unexpected nil of type %T", v)
21588	}
21589	if value == nil {
21590		return nil
21591	}
21592
21593	shape, ok := value.(map[string]interface{})
21594	if !ok {
21595		return fmt.Errorf("unexpected JSON type %v", value)
21596	}
21597
21598	var sv *ListVoiceConnectorTerminationCredentialsOutput
21599	if *v == nil {
21600		sv = &ListVoiceConnectorTerminationCredentialsOutput{}
21601	} else {
21602		sv = *v
21603	}
21604
21605	for key, value := range shape {
21606		switch key {
21607		case "Usernames":
21608			if err := awsRestjson1_deserializeDocumentSensitiveStringList(&sv.Usernames, value); err != nil {
21609				return err
21610			}
21611
21612		default:
21613			_, _ = key, value
21614
21615		}
21616	}
21617	*v = sv
21618	return nil
21619}
21620
21621type awsRestjson1_deserializeOpLogoutUser struct {
21622}
21623
21624func (*awsRestjson1_deserializeOpLogoutUser) ID() string {
21625	return "OperationDeserializer"
21626}
21627
21628func (m *awsRestjson1_deserializeOpLogoutUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21629	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21630) {
21631	out, metadata, err = next.HandleDeserialize(ctx, in)
21632	if err != nil {
21633		return out, metadata, err
21634	}
21635
21636	response, ok := out.RawResponse.(*smithyhttp.Response)
21637	if !ok {
21638		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21639	}
21640
21641	if response.StatusCode < 200 || response.StatusCode >= 300 {
21642		return out, metadata, awsRestjson1_deserializeOpErrorLogoutUser(response, &metadata)
21643	}
21644	output := &LogoutUserOutput{}
21645	out.Result = output
21646
21647	return out, metadata, err
21648}
21649
21650func awsRestjson1_deserializeOpErrorLogoutUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21651	var errorBuffer bytes.Buffer
21652	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21653		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21654	}
21655	errorBody := bytes.NewReader(errorBuffer.Bytes())
21656
21657	errorCode := "UnknownError"
21658	errorMessage := errorCode
21659
21660	code := response.Header.Get("X-Amzn-ErrorType")
21661	if len(code) != 0 {
21662		errorCode = restjson.SanitizeErrorCode(code)
21663	}
21664
21665	var buff [1024]byte
21666	ringBuffer := smithyio.NewRingBuffer(buff[:])
21667
21668	body := io.TeeReader(errorBody, ringBuffer)
21669	decoder := json.NewDecoder(body)
21670	decoder.UseNumber()
21671	code, message, err := restjson.GetErrorInfo(decoder)
21672	if err != nil {
21673		var snapshot bytes.Buffer
21674		io.Copy(&snapshot, ringBuffer)
21675		err = &smithy.DeserializationError{
21676			Err:      fmt.Errorf("failed to decode response body, %w", err),
21677			Snapshot: snapshot.Bytes(),
21678		}
21679		return err
21680	}
21681
21682	errorBody.Seek(0, io.SeekStart)
21683	if len(code) != 0 {
21684		errorCode = restjson.SanitizeErrorCode(code)
21685	}
21686	if len(message) != 0 {
21687		errorMessage = message
21688	}
21689
21690	switch {
21691	case strings.EqualFold("BadRequestException", errorCode):
21692		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21693
21694	case strings.EqualFold("ForbiddenException", errorCode):
21695		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21696
21697	case strings.EqualFold("NotFoundException", errorCode):
21698		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21699
21700	case strings.EqualFold("ServiceFailureException", errorCode):
21701		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21702
21703	case strings.EqualFold("ServiceUnavailableException", errorCode):
21704		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21705
21706	case strings.EqualFold("ThrottledClientException", errorCode):
21707		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21708
21709	case strings.EqualFold("UnauthorizedClientException", errorCode):
21710		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21711
21712	default:
21713		genericError := &smithy.GenericAPIError{
21714			Code:    errorCode,
21715			Message: errorMessage,
21716		}
21717		return genericError
21718
21719	}
21720}
21721
21722type awsRestjson1_deserializeOpPutAppInstanceRetentionSettings struct {
21723}
21724
21725func (*awsRestjson1_deserializeOpPutAppInstanceRetentionSettings) ID() string {
21726	return "OperationDeserializer"
21727}
21728
21729func (m *awsRestjson1_deserializeOpPutAppInstanceRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21730	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21731) {
21732	out, metadata, err = next.HandleDeserialize(ctx, in)
21733	if err != nil {
21734		return out, metadata, err
21735	}
21736
21737	response, ok := out.RawResponse.(*smithyhttp.Response)
21738	if !ok {
21739		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21740	}
21741
21742	if response.StatusCode < 200 || response.StatusCode >= 300 {
21743		return out, metadata, awsRestjson1_deserializeOpErrorPutAppInstanceRetentionSettings(response, &metadata)
21744	}
21745	output := &PutAppInstanceRetentionSettingsOutput{}
21746	out.Result = output
21747
21748	var buff [1024]byte
21749	ringBuffer := smithyio.NewRingBuffer(buff[:])
21750
21751	body := io.TeeReader(response.Body, ringBuffer)
21752
21753	decoder := json.NewDecoder(body)
21754	decoder.UseNumber()
21755	var shape interface{}
21756	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21757		var snapshot bytes.Buffer
21758		io.Copy(&snapshot, ringBuffer)
21759		err = &smithy.DeserializationError{
21760			Err:      fmt.Errorf("failed to decode response body, %w", err),
21761			Snapshot: snapshot.Bytes(),
21762		}
21763		return out, metadata, err
21764	}
21765
21766	err = awsRestjson1_deserializeOpDocumentPutAppInstanceRetentionSettingsOutput(&output, shape)
21767	if err != nil {
21768		var snapshot bytes.Buffer
21769		io.Copy(&snapshot, ringBuffer)
21770		return out, metadata, &smithy.DeserializationError{
21771			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21772			Snapshot: snapshot.Bytes(),
21773		}
21774	}
21775
21776	return out, metadata, err
21777}
21778
21779func awsRestjson1_deserializeOpErrorPutAppInstanceRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21780	var errorBuffer bytes.Buffer
21781	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21782		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21783	}
21784	errorBody := bytes.NewReader(errorBuffer.Bytes())
21785
21786	errorCode := "UnknownError"
21787	errorMessage := errorCode
21788
21789	code := response.Header.Get("X-Amzn-ErrorType")
21790	if len(code) != 0 {
21791		errorCode = restjson.SanitizeErrorCode(code)
21792	}
21793
21794	var buff [1024]byte
21795	ringBuffer := smithyio.NewRingBuffer(buff[:])
21796
21797	body := io.TeeReader(errorBody, ringBuffer)
21798	decoder := json.NewDecoder(body)
21799	decoder.UseNumber()
21800	code, message, err := restjson.GetErrorInfo(decoder)
21801	if err != nil {
21802		var snapshot bytes.Buffer
21803		io.Copy(&snapshot, ringBuffer)
21804		err = &smithy.DeserializationError{
21805			Err:      fmt.Errorf("failed to decode response body, %w", err),
21806			Snapshot: snapshot.Bytes(),
21807		}
21808		return err
21809	}
21810
21811	errorBody.Seek(0, io.SeekStart)
21812	if len(code) != 0 {
21813		errorCode = restjson.SanitizeErrorCode(code)
21814	}
21815	if len(message) != 0 {
21816		errorMessage = message
21817	}
21818
21819	switch {
21820	case strings.EqualFold("BadRequestException", errorCode):
21821		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21822
21823	case strings.EqualFold("ConflictException", errorCode):
21824		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
21825
21826	case strings.EqualFold("ForbiddenException", errorCode):
21827		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21828
21829	case strings.EqualFold("NotFoundException", errorCode):
21830		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21831
21832	case strings.EqualFold("ServiceFailureException", errorCode):
21833		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21834
21835	case strings.EqualFold("ServiceUnavailableException", errorCode):
21836		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21837
21838	case strings.EqualFold("ThrottledClientException", errorCode):
21839		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21840
21841	case strings.EqualFold("UnauthorizedClientException", errorCode):
21842		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21843
21844	default:
21845		genericError := &smithy.GenericAPIError{
21846			Code:    errorCode,
21847			Message: errorMessage,
21848		}
21849		return genericError
21850
21851	}
21852}
21853
21854func awsRestjson1_deserializeOpDocumentPutAppInstanceRetentionSettingsOutput(v **PutAppInstanceRetentionSettingsOutput, value interface{}) error {
21855	if v == nil {
21856		return fmt.Errorf("unexpected nil of type %T", v)
21857	}
21858	if value == nil {
21859		return nil
21860	}
21861
21862	shape, ok := value.(map[string]interface{})
21863	if !ok {
21864		return fmt.Errorf("unexpected JSON type %v", value)
21865	}
21866
21867	var sv *PutAppInstanceRetentionSettingsOutput
21868	if *v == nil {
21869		sv = &PutAppInstanceRetentionSettingsOutput{}
21870	} else {
21871		sv = *v
21872	}
21873
21874	for key, value := range shape {
21875		switch key {
21876		case "AppInstanceRetentionSettings":
21877			if err := awsRestjson1_deserializeDocumentAppInstanceRetentionSettings(&sv.AppInstanceRetentionSettings, value); err != nil {
21878				return err
21879			}
21880
21881		case "InitiateDeletionTimestamp":
21882			if value != nil {
21883				switch jtv := value.(type) {
21884				case json.Number:
21885					f64, err := jtv.Float64()
21886					if err != nil {
21887						return err
21888					}
21889					sv.InitiateDeletionTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
21890
21891				default:
21892					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
21893
21894				}
21895			}
21896
21897		default:
21898			_, _ = key, value
21899
21900		}
21901	}
21902	*v = sv
21903	return nil
21904}
21905
21906type awsRestjson1_deserializeOpPutAppInstanceStreamingConfigurations struct {
21907}
21908
21909func (*awsRestjson1_deserializeOpPutAppInstanceStreamingConfigurations) ID() string {
21910	return "OperationDeserializer"
21911}
21912
21913func (m *awsRestjson1_deserializeOpPutAppInstanceStreamingConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21914	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21915) {
21916	out, metadata, err = next.HandleDeserialize(ctx, in)
21917	if err != nil {
21918		return out, metadata, err
21919	}
21920
21921	response, ok := out.RawResponse.(*smithyhttp.Response)
21922	if !ok {
21923		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21924	}
21925
21926	if response.StatusCode < 200 || response.StatusCode >= 300 {
21927		return out, metadata, awsRestjson1_deserializeOpErrorPutAppInstanceStreamingConfigurations(response, &metadata)
21928	}
21929	output := &PutAppInstanceStreamingConfigurationsOutput{}
21930	out.Result = output
21931
21932	var buff [1024]byte
21933	ringBuffer := smithyio.NewRingBuffer(buff[:])
21934
21935	body := io.TeeReader(response.Body, ringBuffer)
21936
21937	decoder := json.NewDecoder(body)
21938	decoder.UseNumber()
21939	var shape interface{}
21940	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21941		var snapshot bytes.Buffer
21942		io.Copy(&snapshot, ringBuffer)
21943		err = &smithy.DeserializationError{
21944			Err:      fmt.Errorf("failed to decode response body, %w", err),
21945			Snapshot: snapshot.Bytes(),
21946		}
21947		return out, metadata, err
21948	}
21949
21950	err = awsRestjson1_deserializeOpDocumentPutAppInstanceStreamingConfigurationsOutput(&output, shape)
21951	if err != nil {
21952		var snapshot bytes.Buffer
21953		io.Copy(&snapshot, ringBuffer)
21954		return out, metadata, &smithy.DeserializationError{
21955			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21956			Snapshot: snapshot.Bytes(),
21957		}
21958	}
21959
21960	return out, metadata, err
21961}
21962
21963func awsRestjson1_deserializeOpErrorPutAppInstanceStreamingConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21964	var errorBuffer bytes.Buffer
21965	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21966		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21967	}
21968	errorBody := bytes.NewReader(errorBuffer.Bytes())
21969
21970	errorCode := "UnknownError"
21971	errorMessage := errorCode
21972
21973	code := response.Header.Get("X-Amzn-ErrorType")
21974	if len(code) != 0 {
21975		errorCode = restjson.SanitizeErrorCode(code)
21976	}
21977
21978	var buff [1024]byte
21979	ringBuffer := smithyio.NewRingBuffer(buff[:])
21980
21981	body := io.TeeReader(errorBody, ringBuffer)
21982	decoder := json.NewDecoder(body)
21983	decoder.UseNumber()
21984	code, message, err := restjson.GetErrorInfo(decoder)
21985	if err != nil {
21986		var snapshot bytes.Buffer
21987		io.Copy(&snapshot, ringBuffer)
21988		err = &smithy.DeserializationError{
21989			Err:      fmt.Errorf("failed to decode response body, %w", err),
21990			Snapshot: snapshot.Bytes(),
21991		}
21992		return err
21993	}
21994
21995	errorBody.Seek(0, io.SeekStart)
21996	if len(code) != 0 {
21997		errorCode = restjson.SanitizeErrorCode(code)
21998	}
21999	if len(message) != 0 {
22000		errorMessage = message
22001	}
22002
22003	switch {
22004	case strings.EqualFold("BadRequestException", errorCode):
22005		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22006
22007	case strings.EqualFold("ForbiddenException", errorCode):
22008		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22009
22010	case strings.EqualFold("NotFoundException", errorCode):
22011		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22012
22013	case strings.EqualFold("ServiceFailureException", errorCode):
22014		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22015
22016	case strings.EqualFold("ServiceUnavailableException", errorCode):
22017		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22018
22019	case strings.EqualFold("ThrottledClientException", errorCode):
22020		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22021
22022	case strings.EqualFold("UnauthorizedClientException", errorCode):
22023		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22024
22025	default:
22026		genericError := &smithy.GenericAPIError{
22027			Code:    errorCode,
22028			Message: errorMessage,
22029		}
22030		return genericError
22031
22032	}
22033}
22034
22035func awsRestjson1_deserializeOpDocumentPutAppInstanceStreamingConfigurationsOutput(v **PutAppInstanceStreamingConfigurationsOutput, value interface{}) error {
22036	if v == nil {
22037		return fmt.Errorf("unexpected nil of type %T", v)
22038	}
22039	if value == nil {
22040		return nil
22041	}
22042
22043	shape, ok := value.(map[string]interface{})
22044	if !ok {
22045		return fmt.Errorf("unexpected JSON type %v", value)
22046	}
22047
22048	var sv *PutAppInstanceStreamingConfigurationsOutput
22049	if *v == nil {
22050		sv = &PutAppInstanceStreamingConfigurationsOutput{}
22051	} else {
22052		sv = *v
22053	}
22054
22055	for key, value := range shape {
22056		switch key {
22057		case "AppInstanceStreamingConfigurations":
22058			if err := awsRestjson1_deserializeDocumentAppInstanceStreamingConfigurationList(&sv.AppInstanceStreamingConfigurations, value); err != nil {
22059				return err
22060			}
22061
22062		default:
22063			_, _ = key, value
22064
22065		}
22066	}
22067	*v = sv
22068	return nil
22069}
22070
22071type awsRestjson1_deserializeOpPutEventsConfiguration struct {
22072}
22073
22074func (*awsRestjson1_deserializeOpPutEventsConfiguration) ID() string {
22075	return "OperationDeserializer"
22076}
22077
22078func (m *awsRestjson1_deserializeOpPutEventsConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22079	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22080) {
22081	out, metadata, err = next.HandleDeserialize(ctx, in)
22082	if err != nil {
22083		return out, metadata, err
22084	}
22085
22086	response, ok := out.RawResponse.(*smithyhttp.Response)
22087	if !ok {
22088		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22089	}
22090
22091	if response.StatusCode < 200 || response.StatusCode >= 300 {
22092		return out, metadata, awsRestjson1_deserializeOpErrorPutEventsConfiguration(response, &metadata)
22093	}
22094	output := &PutEventsConfigurationOutput{}
22095	out.Result = output
22096
22097	var buff [1024]byte
22098	ringBuffer := smithyio.NewRingBuffer(buff[:])
22099
22100	body := io.TeeReader(response.Body, ringBuffer)
22101
22102	decoder := json.NewDecoder(body)
22103	decoder.UseNumber()
22104	var shape interface{}
22105	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22106		var snapshot bytes.Buffer
22107		io.Copy(&snapshot, ringBuffer)
22108		err = &smithy.DeserializationError{
22109			Err:      fmt.Errorf("failed to decode response body, %w", err),
22110			Snapshot: snapshot.Bytes(),
22111		}
22112		return out, metadata, err
22113	}
22114
22115	err = awsRestjson1_deserializeOpDocumentPutEventsConfigurationOutput(&output, shape)
22116	if err != nil {
22117		var snapshot bytes.Buffer
22118		io.Copy(&snapshot, ringBuffer)
22119		return out, metadata, &smithy.DeserializationError{
22120			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22121			Snapshot: snapshot.Bytes(),
22122		}
22123	}
22124
22125	return out, metadata, err
22126}
22127
22128func awsRestjson1_deserializeOpErrorPutEventsConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22129	var errorBuffer bytes.Buffer
22130	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22131		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22132	}
22133	errorBody := bytes.NewReader(errorBuffer.Bytes())
22134
22135	errorCode := "UnknownError"
22136	errorMessage := errorCode
22137
22138	code := response.Header.Get("X-Amzn-ErrorType")
22139	if len(code) != 0 {
22140		errorCode = restjson.SanitizeErrorCode(code)
22141	}
22142
22143	var buff [1024]byte
22144	ringBuffer := smithyio.NewRingBuffer(buff[:])
22145
22146	body := io.TeeReader(errorBody, ringBuffer)
22147	decoder := json.NewDecoder(body)
22148	decoder.UseNumber()
22149	code, message, err := restjson.GetErrorInfo(decoder)
22150	if err != nil {
22151		var snapshot bytes.Buffer
22152		io.Copy(&snapshot, ringBuffer)
22153		err = &smithy.DeserializationError{
22154			Err:      fmt.Errorf("failed to decode response body, %w", err),
22155			Snapshot: snapshot.Bytes(),
22156		}
22157		return err
22158	}
22159
22160	errorBody.Seek(0, io.SeekStart)
22161	if len(code) != 0 {
22162		errorCode = restjson.SanitizeErrorCode(code)
22163	}
22164	if len(message) != 0 {
22165		errorMessage = message
22166	}
22167
22168	switch {
22169	case strings.EqualFold("BadRequestException", errorCode):
22170		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22171
22172	case strings.EqualFold("ForbiddenException", errorCode):
22173		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22174
22175	case strings.EqualFold("NotFoundException", errorCode):
22176		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22177
22178	case strings.EqualFold("ResourceLimitExceededException", errorCode):
22179		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
22180
22181	case strings.EqualFold("ServiceFailureException", errorCode):
22182		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22183
22184	case strings.EqualFold("ServiceUnavailableException", errorCode):
22185		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22186
22187	case strings.EqualFold("UnauthorizedClientException", errorCode):
22188		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22189
22190	default:
22191		genericError := &smithy.GenericAPIError{
22192			Code:    errorCode,
22193			Message: errorMessage,
22194		}
22195		return genericError
22196
22197	}
22198}
22199
22200func awsRestjson1_deserializeOpDocumentPutEventsConfigurationOutput(v **PutEventsConfigurationOutput, value interface{}) error {
22201	if v == nil {
22202		return fmt.Errorf("unexpected nil of type %T", v)
22203	}
22204	if value == nil {
22205		return nil
22206	}
22207
22208	shape, ok := value.(map[string]interface{})
22209	if !ok {
22210		return fmt.Errorf("unexpected JSON type %v", value)
22211	}
22212
22213	var sv *PutEventsConfigurationOutput
22214	if *v == nil {
22215		sv = &PutEventsConfigurationOutput{}
22216	} else {
22217		sv = *v
22218	}
22219
22220	for key, value := range shape {
22221		switch key {
22222		case "EventsConfiguration":
22223			if err := awsRestjson1_deserializeDocumentEventsConfiguration(&sv.EventsConfiguration, value); err != nil {
22224				return err
22225			}
22226
22227		default:
22228			_, _ = key, value
22229
22230		}
22231	}
22232	*v = sv
22233	return nil
22234}
22235
22236type awsRestjson1_deserializeOpPutRetentionSettings struct {
22237}
22238
22239func (*awsRestjson1_deserializeOpPutRetentionSettings) ID() string {
22240	return "OperationDeserializer"
22241}
22242
22243func (m *awsRestjson1_deserializeOpPutRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22244	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22245) {
22246	out, metadata, err = next.HandleDeserialize(ctx, in)
22247	if err != nil {
22248		return out, metadata, err
22249	}
22250
22251	response, ok := out.RawResponse.(*smithyhttp.Response)
22252	if !ok {
22253		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22254	}
22255
22256	if response.StatusCode < 200 || response.StatusCode >= 300 {
22257		return out, metadata, awsRestjson1_deserializeOpErrorPutRetentionSettings(response, &metadata)
22258	}
22259	output := &PutRetentionSettingsOutput{}
22260	out.Result = output
22261
22262	var buff [1024]byte
22263	ringBuffer := smithyio.NewRingBuffer(buff[:])
22264
22265	body := io.TeeReader(response.Body, ringBuffer)
22266
22267	decoder := json.NewDecoder(body)
22268	decoder.UseNumber()
22269	var shape interface{}
22270	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22271		var snapshot bytes.Buffer
22272		io.Copy(&snapshot, ringBuffer)
22273		err = &smithy.DeserializationError{
22274			Err:      fmt.Errorf("failed to decode response body, %w", err),
22275			Snapshot: snapshot.Bytes(),
22276		}
22277		return out, metadata, err
22278	}
22279
22280	err = awsRestjson1_deserializeOpDocumentPutRetentionSettingsOutput(&output, shape)
22281	if err != nil {
22282		var snapshot bytes.Buffer
22283		io.Copy(&snapshot, ringBuffer)
22284		return out, metadata, &smithy.DeserializationError{
22285			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22286			Snapshot: snapshot.Bytes(),
22287		}
22288	}
22289
22290	return out, metadata, err
22291}
22292
22293func awsRestjson1_deserializeOpErrorPutRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22294	var errorBuffer bytes.Buffer
22295	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22296		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22297	}
22298	errorBody := bytes.NewReader(errorBuffer.Bytes())
22299
22300	errorCode := "UnknownError"
22301	errorMessage := errorCode
22302
22303	code := response.Header.Get("X-Amzn-ErrorType")
22304	if len(code) != 0 {
22305		errorCode = restjson.SanitizeErrorCode(code)
22306	}
22307
22308	var buff [1024]byte
22309	ringBuffer := smithyio.NewRingBuffer(buff[:])
22310
22311	body := io.TeeReader(errorBody, ringBuffer)
22312	decoder := json.NewDecoder(body)
22313	decoder.UseNumber()
22314	code, message, err := restjson.GetErrorInfo(decoder)
22315	if err != nil {
22316		var snapshot bytes.Buffer
22317		io.Copy(&snapshot, ringBuffer)
22318		err = &smithy.DeserializationError{
22319			Err:      fmt.Errorf("failed to decode response body, %w", err),
22320			Snapshot: snapshot.Bytes(),
22321		}
22322		return err
22323	}
22324
22325	errorBody.Seek(0, io.SeekStart)
22326	if len(code) != 0 {
22327		errorCode = restjson.SanitizeErrorCode(code)
22328	}
22329	if len(message) != 0 {
22330		errorMessage = message
22331	}
22332
22333	switch {
22334	case strings.EqualFold("BadRequestException", errorCode):
22335		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22336
22337	case strings.EqualFold("ConflictException", errorCode):
22338		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
22339
22340	case strings.EqualFold("ForbiddenException", errorCode):
22341		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22342
22343	case strings.EqualFold("NotFoundException", errorCode):
22344		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22345
22346	case strings.EqualFold("ServiceFailureException", errorCode):
22347		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22348
22349	case strings.EqualFold("ServiceUnavailableException", errorCode):
22350		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22351
22352	case strings.EqualFold("ThrottledClientException", errorCode):
22353		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22354
22355	case strings.EqualFold("UnauthorizedClientException", errorCode):
22356		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22357
22358	default:
22359		genericError := &smithy.GenericAPIError{
22360			Code:    errorCode,
22361			Message: errorMessage,
22362		}
22363		return genericError
22364
22365	}
22366}
22367
22368func awsRestjson1_deserializeOpDocumentPutRetentionSettingsOutput(v **PutRetentionSettingsOutput, value interface{}) error {
22369	if v == nil {
22370		return fmt.Errorf("unexpected nil of type %T", v)
22371	}
22372	if value == nil {
22373		return nil
22374	}
22375
22376	shape, ok := value.(map[string]interface{})
22377	if !ok {
22378		return fmt.Errorf("unexpected JSON type %v", value)
22379	}
22380
22381	var sv *PutRetentionSettingsOutput
22382	if *v == nil {
22383		sv = &PutRetentionSettingsOutput{}
22384	} else {
22385		sv = *v
22386	}
22387
22388	for key, value := range shape {
22389		switch key {
22390		case "InitiateDeletionTimestamp":
22391			if value != nil {
22392				jtv, ok := value.(string)
22393				if !ok {
22394					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
22395				}
22396				t, err := smithytime.ParseDateTime(jtv)
22397				if err != nil {
22398					return err
22399				}
22400				sv.InitiateDeletionTimestamp = ptr.Time(t)
22401			}
22402
22403		case "RetentionSettings":
22404			if err := awsRestjson1_deserializeDocumentRetentionSettings(&sv.RetentionSettings, value); err != nil {
22405				return err
22406			}
22407
22408		default:
22409			_, _ = key, value
22410
22411		}
22412	}
22413	*v = sv
22414	return nil
22415}
22416
22417type awsRestjson1_deserializeOpPutSipMediaApplicationLoggingConfiguration struct {
22418}
22419
22420func (*awsRestjson1_deserializeOpPutSipMediaApplicationLoggingConfiguration) ID() string {
22421	return "OperationDeserializer"
22422}
22423
22424func (m *awsRestjson1_deserializeOpPutSipMediaApplicationLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22425	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22426) {
22427	out, metadata, err = next.HandleDeserialize(ctx, in)
22428	if err != nil {
22429		return out, metadata, err
22430	}
22431
22432	response, ok := out.RawResponse.(*smithyhttp.Response)
22433	if !ok {
22434		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22435	}
22436
22437	if response.StatusCode < 200 || response.StatusCode >= 300 {
22438		return out, metadata, awsRestjson1_deserializeOpErrorPutSipMediaApplicationLoggingConfiguration(response, &metadata)
22439	}
22440	output := &PutSipMediaApplicationLoggingConfigurationOutput{}
22441	out.Result = output
22442
22443	var buff [1024]byte
22444	ringBuffer := smithyio.NewRingBuffer(buff[:])
22445
22446	body := io.TeeReader(response.Body, ringBuffer)
22447
22448	decoder := json.NewDecoder(body)
22449	decoder.UseNumber()
22450	var shape interface{}
22451	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22452		var snapshot bytes.Buffer
22453		io.Copy(&snapshot, ringBuffer)
22454		err = &smithy.DeserializationError{
22455			Err:      fmt.Errorf("failed to decode response body, %w", err),
22456			Snapshot: snapshot.Bytes(),
22457		}
22458		return out, metadata, err
22459	}
22460
22461	err = awsRestjson1_deserializeOpDocumentPutSipMediaApplicationLoggingConfigurationOutput(&output, shape)
22462	if err != nil {
22463		var snapshot bytes.Buffer
22464		io.Copy(&snapshot, ringBuffer)
22465		return out, metadata, &smithy.DeserializationError{
22466			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22467			Snapshot: snapshot.Bytes(),
22468		}
22469	}
22470
22471	return out, metadata, err
22472}
22473
22474func awsRestjson1_deserializeOpErrorPutSipMediaApplicationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22475	var errorBuffer bytes.Buffer
22476	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22477		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22478	}
22479	errorBody := bytes.NewReader(errorBuffer.Bytes())
22480
22481	errorCode := "UnknownError"
22482	errorMessage := errorCode
22483
22484	code := response.Header.Get("X-Amzn-ErrorType")
22485	if len(code) != 0 {
22486		errorCode = restjson.SanitizeErrorCode(code)
22487	}
22488
22489	var buff [1024]byte
22490	ringBuffer := smithyio.NewRingBuffer(buff[:])
22491
22492	body := io.TeeReader(errorBody, ringBuffer)
22493	decoder := json.NewDecoder(body)
22494	decoder.UseNumber()
22495	code, message, err := restjson.GetErrorInfo(decoder)
22496	if err != nil {
22497		var snapshot bytes.Buffer
22498		io.Copy(&snapshot, ringBuffer)
22499		err = &smithy.DeserializationError{
22500			Err:      fmt.Errorf("failed to decode response body, %w", err),
22501			Snapshot: snapshot.Bytes(),
22502		}
22503		return err
22504	}
22505
22506	errorBody.Seek(0, io.SeekStart)
22507	if len(code) != 0 {
22508		errorCode = restjson.SanitizeErrorCode(code)
22509	}
22510	if len(message) != 0 {
22511		errorMessage = message
22512	}
22513
22514	switch {
22515	case strings.EqualFold("BadRequestException", errorCode):
22516		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22517
22518	case strings.EqualFold("ForbiddenException", errorCode):
22519		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22520
22521	case strings.EqualFold("NotFoundException", errorCode):
22522		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22523
22524	case strings.EqualFold("ServiceFailureException", errorCode):
22525		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22526
22527	case strings.EqualFold("ServiceUnavailableException", errorCode):
22528		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22529
22530	case strings.EqualFold("ThrottledClientException", errorCode):
22531		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22532
22533	case strings.EqualFold("UnauthorizedClientException", errorCode):
22534		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22535
22536	default:
22537		genericError := &smithy.GenericAPIError{
22538			Code:    errorCode,
22539			Message: errorMessage,
22540		}
22541		return genericError
22542
22543	}
22544}
22545
22546func awsRestjson1_deserializeOpDocumentPutSipMediaApplicationLoggingConfigurationOutput(v **PutSipMediaApplicationLoggingConfigurationOutput, value interface{}) error {
22547	if v == nil {
22548		return fmt.Errorf("unexpected nil of type %T", v)
22549	}
22550	if value == nil {
22551		return nil
22552	}
22553
22554	shape, ok := value.(map[string]interface{})
22555	if !ok {
22556		return fmt.Errorf("unexpected JSON type %v", value)
22557	}
22558
22559	var sv *PutSipMediaApplicationLoggingConfigurationOutput
22560	if *v == nil {
22561		sv = &PutSipMediaApplicationLoggingConfigurationOutput{}
22562	} else {
22563		sv = *v
22564	}
22565
22566	for key, value := range shape {
22567		switch key {
22568		case "SipMediaApplicationLoggingConfiguration":
22569			if err := awsRestjson1_deserializeDocumentSipMediaApplicationLoggingConfiguration(&sv.SipMediaApplicationLoggingConfiguration, value); err != nil {
22570				return err
22571			}
22572
22573		default:
22574			_, _ = key, value
22575
22576		}
22577	}
22578	*v = sv
22579	return nil
22580}
22581
22582type awsRestjson1_deserializeOpPutVoiceConnectorEmergencyCallingConfiguration struct {
22583}
22584
22585func (*awsRestjson1_deserializeOpPutVoiceConnectorEmergencyCallingConfiguration) ID() string {
22586	return "OperationDeserializer"
22587}
22588
22589func (m *awsRestjson1_deserializeOpPutVoiceConnectorEmergencyCallingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22590	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22591) {
22592	out, metadata, err = next.HandleDeserialize(ctx, in)
22593	if err != nil {
22594		return out, metadata, err
22595	}
22596
22597	response, ok := out.RawResponse.(*smithyhttp.Response)
22598	if !ok {
22599		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22600	}
22601
22602	if response.StatusCode < 200 || response.StatusCode >= 300 {
22603		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorEmergencyCallingConfiguration(response, &metadata)
22604	}
22605	output := &PutVoiceConnectorEmergencyCallingConfigurationOutput{}
22606	out.Result = output
22607
22608	var buff [1024]byte
22609	ringBuffer := smithyio.NewRingBuffer(buff[:])
22610
22611	body := io.TeeReader(response.Body, ringBuffer)
22612
22613	decoder := json.NewDecoder(body)
22614	decoder.UseNumber()
22615	var shape interface{}
22616	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22617		var snapshot bytes.Buffer
22618		io.Copy(&snapshot, ringBuffer)
22619		err = &smithy.DeserializationError{
22620			Err:      fmt.Errorf("failed to decode response body, %w", err),
22621			Snapshot: snapshot.Bytes(),
22622		}
22623		return out, metadata, err
22624	}
22625
22626	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorEmergencyCallingConfigurationOutput(&output, shape)
22627	if err != nil {
22628		var snapshot bytes.Buffer
22629		io.Copy(&snapshot, ringBuffer)
22630		return out, metadata, &smithy.DeserializationError{
22631			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22632			Snapshot: snapshot.Bytes(),
22633		}
22634	}
22635
22636	return out, metadata, err
22637}
22638
22639func awsRestjson1_deserializeOpErrorPutVoiceConnectorEmergencyCallingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22640	var errorBuffer bytes.Buffer
22641	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22642		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22643	}
22644	errorBody := bytes.NewReader(errorBuffer.Bytes())
22645
22646	errorCode := "UnknownError"
22647	errorMessage := errorCode
22648
22649	code := response.Header.Get("X-Amzn-ErrorType")
22650	if len(code) != 0 {
22651		errorCode = restjson.SanitizeErrorCode(code)
22652	}
22653
22654	var buff [1024]byte
22655	ringBuffer := smithyio.NewRingBuffer(buff[:])
22656
22657	body := io.TeeReader(errorBody, ringBuffer)
22658	decoder := json.NewDecoder(body)
22659	decoder.UseNumber()
22660	code, message, err := restjson.GetErrorInfo(decoder)
22661	if err != nil {
22662		var snapshot bytes.Buffer
22663		io.Copy(&snapshot, ringBuffer)
22664		err = &smithy.DeserializationError{
22665			Err:      fmt.Errorf("failed to decode response body, %w", err),
22666			Snapshot: snapshot.Bytes(),
22667		}
22668		return err
22669	}
22670
22671	errorBody.Seek(0, io.SeekStart)
22672	if len(code) != 0 {
22673		errorCode = restjson.SanitizeErrorCode(code)
22674	}
22675	if len(message) != 0 {
22676		errorMessage = message
22677	}
22678
22679	switch {
22680	case strings.EqualFold("BadRequestException", errorCode):
22681		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22682
22683	case strings.EqualFold("ForbiddenException", errorCode):
22684		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22685
22686	case strings.EqualFold("NotFoundException", errorCode):
22687		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22688
22689	case strings.EqualFold("ServiceFailureException", errorCode):
22690		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22691
22692	case strings.EqualFold("ServiceUnavailableException", errorCode):
22693		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22694
22695	case strings.EqualFold("ThrottledClientException", errorCode):
22696		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22697
22698	case strings.EqualFold("UnauthorizedClientException", errorCode):
22699		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22700
22701	default:
22702		genericError := &smithy.GenericAPIError{
22703			Code:    errorCode,
22704			Message: errorMessage,
22705		}
22706		return genericError
22707
22708	}
22709}
22710
22711func awsRestjson1_deserializeOpDocumentPutVoiceConnectorEmergencyCallingConfigurationOutput(v **PutVoiceConnectorEmergencyCallingConfigurationOutput, value interface{}) error {
22712	if v == nil {
22713		return fmt.Errorf("unexpected nil of type %T", v)
22714	}
22715	if value == nil {
22716		return nil
22717	}
22718
22719	shape, ok := value.(map[string]interface{})
22720	if !ok {
22721		return fmt.Errorf("unexpected JSON type %v", value)
22722	}
22723
22724	var sv *PutVoiceConnectorEmergencyCallingConfigurationOutput
22725	if *v == nil {
22726		sv = &PutVoiceConnectorEmergencyCallingConfigurationOutput{}
22727	} else {
22728		sv = *v
22729	}
22730
22731	for key, value := range shape {
22732		switch key {
22733		case "EmergencyCallingConfiguration":
22734			if err := awsRestjson1_deserializeDocumentEmergencyCallingConfiguration(&sv.EmergencyCallingConfiguration, value); err != nil {
22735				return err
22736			}
22737
22738		default:
22739			_, _ = key, value
22740
22741		}
22742	}
22743	*v = sv
22744	return nil
22745}
22746
22747type awsRestjson1_deserializeOpPutVoiceConnectorLoggingConfiguration struct {
22748}
22749
22750func (*awsRestjson1_deserializeOpPutVoiceConnectorLoggingConfiguration) ID() string {
22751	return "OperationDeserializer"
22752}
22753
22754func (m *awsRestjson1_deserializeOpPutVoiceConnectorLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22755	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22756) {
22757	out, metadata, err = next.HandleDeserialize(ctx, in)
22758	if err != nil {
22759		return out, metadata, err
22760	}
22761
22762	response, ok := out.RawResponse.(*smithyhttp.Response)
22763	if !ok {
22764		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22765	}
22766
22767	if response.StatusCode < 200 || response.StatusCode >= 300 {
22768		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorLoggingConfiguration(response, &metadata)
22769	}
22770	output := &PutVoiceConnectorLoggingConfigurationOutput{}
22771	out.Result = output
22772
22773	var buff [1024]byte
22774	ringBuffer := smithyio.NewRingBuffer(buff[:])
22775
22776	body := io.TeeReader(response.Body, ringBuffer)
22777
22778	decoder := json.NewDecoder(body)
22779	decoder.UseNumber()
22780	var shape interface{}
22781	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22782		var snapshot bytes.Buffer
22783		io.Copy(&snapshot, ringBuffer)
22784		err = &smithy.DeserializationError{
22785			Err:      fmt.Errorf("failed to decode response body, %w", err),
22786			Snapshot: snapshot.Bytes(),
22787		}
22788		return out, metadata, err
22789	}
22790
22791	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorLoggingConfigurationOutput(&output, shape)
22792	if err != nil {
22793		var snapshot bytes.Buffer
22794		io.Copy(&snapshot, ringBuffer)
22795		return out, metadata, &smithy.DeserializationError{
22796			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22797			Snapshot: snapshot.Bytes(),
22798		}
22799	}
22800
22801	return out, metadata, err
22802}
22803
22804func awsRestjson1_deserializeOpErrorPutVoiceConnectorLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22805	var errorBuffer bytes.Buffer
22806	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22807		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22808	}
22809	errorBody := bytes.NewReader(errorBuffer.Bytes())
22810
22811	errorCode := "UnknownError"
22812	errorMessage := errorCode
22813
22814	code := response.Header.Get("X-Amzn-ErrorType")
22815	if len(code) != 0 {
22816		errorCode = restjson.SanitizeErrorCode(code)
22817	}
22818
22819	var buff [1024]byte
22820	ringBuffer := smithyio.NewRingBuffer(buff[:])
22821
22822	body := io.TeeReader(errorBody, ringBuffer)
22823	decoder := json.NewDecoder(body)
22824	decoder.UseNumber()
22825	code, message, err := restjson.GetErrorInfo(decoder)
22826	if err != nil {
22827		var snapshot bytes.Buffer
22828		io.Copy(&snapshot, ringBuffer)
22829		err = &smithy.DeserializationError{
22830			Err:      fmt.Errorf("failed to decode response body, %w", err),
22831			Snapshot: snapshot.Bytes(),
22832		}
22833		return err
22834	}
22835
22836	errorBody.Seek(0, io.SeekStart)
22837	if len(code) != 0 {
22838		errorCode = restjson.SanitizeErrorCode(code)
22839	}
22840	if len(message) != 0 {
22841		errorMessage = message
22842	}
22843
22844	switch {
22845	case strings.EqualFold("BadRequestException", errorCode):
22846		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22847
22848	case strings.EqualFold("ForbiddenException", errorCode):
22849		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22850
22851	case strings.EqualFold("NotFoundException", errorCode):
22852		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22853
22854	case strings.EqualFold("ServiceFailureException", errorCode):
22855		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22856
22857	case strings.EqualFold("ServiceUnavailableException", errorCode):
22858		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22859
22860	case strings.EqualFold("ThrottledClientException", errorCode):
22861		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22862
22863	case strings.EqualFold("UnauthorizedClientException", errorCode):
22864		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22865
22866	default:
22867		genericError := &smithy.GenericAPIError{
22868			Code:    errorCode,
22869			Message: errorMessage,
22870		}
22871		return genericError
22872
22873	}
22874}
22875
22876func awsRestjson1_deserializeOpDocumentPutVoiceConnectorLoggingConfigurationOutput(v **PutVoiceConnectorLoggingConfigurationOutput, value interface{}) error {
22877	if v == nil {
22878		return fmt.Errorf("unexpected nil of type %T", v)
22879	}
22880	if value == nil {
22881		return nil
22882	}
22883
22884	shape, ok := value.(map[string]interface{})
22885	if !ok {
22886		return fmt.Errorf("unexpected JSON type %v", value)
22887	}
22888
22889	var sv *PutVoiceConnectorLoggingConfigurationOutput
22890	if *v == nil {
22891		sv = &PutVoiceConnectorLoggingConfigurationOutput{}
22892	} else {
22893		sv = *v
22894	}
22895
22896	for key, value := range shape {
22897		switch key {
22898		case "LoggingConfiguration":
22899			if err := awsRestjson1_deserializeDocumentLoggingConfiguration(&sv.LoggingConfiguration, value); err != nil {
22900				return err
22901			}
22902
22903		default:
22904			_, _ = key, value
22905
22906		}
22907	}
22908	*v = sv
22909	return nil
22910}
22911
22912type awsRestjson1_deserializeOpPutVoiceConnectorOrigination struct {
22913}
22914
22915func (*awsRestjson1_deserializeOpPutVoiceConnectorOrigination) ID() string {
22916	return "OperationDeserializer"
22917}
22918
22919func (m *awsRestjson1_deserializeOpPutVoiceConnectorOrigination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22920	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22921) {
22922	out, metadata, err = next.HandleDeserialize(ctx, in)
22923	if err != nil {
22924		return out, metadata, err
22925	}
22926
22927	response, ok := out.RawResponse.(*smithyhttp.Response)
22928	if !ok {
22929		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22930	}
22931
22932	if response.StatusCode < 200 || response.StatusCode >= 300 {
22933		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorOrigination(response, &metadata)
22934	}
22935	output := &PutVoiceConnectorOriginationOutput{}
22936	out.Result = output
22937
22938	var buff [1024]byte
22939	ringBuffer := smithyio.NewRingBuffer(buff[:])
22940
22941	body := io.TeeReader(response.Body, ringBuffer)
22942
22943	decoder := json.NewDecoder(body)
22944	decoder.UseNumber()
22945	var shape interface{}
22946	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22947		var snapshot bytes.Buffer
22948		io.Copy(&snapshot, ringBuffer)
22949		err = &smithy.DeserializationError{
22950			Err:      fmt.Errorf("failed to decode response body, %w", err),
22951			Snapshot: snapshot.Bytes(),
22952		}
22953		return out, metadata, err
22954	}
22955
22956	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorOriginationOutput(&output, shape)
22957	if err != nil {
22958		var snapshot bytes.Buffer
22959		io.Copy(&snapshot, ringBuffer)
22960		return out, metadata, &smithy.DeserializationError{
22961			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22962			Snapshot: snapshot.Bytes(),
22963		}
22964	}
22965
22966	return out, metadata, err
22967}
22968
22969func awsRestjson1_deserializeOpErrorPutVoiceConnectorOrigination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22970	var errorBuffer bytes.Buffer
22971	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22972		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22973	}
22974	errorBody := bytes.NewReader(errorBuffer.Bytes())
22975
22976	errorCode := "UnknownError"
22977	errorMessage := errorCode
22978
22979	code := response.Header.Get("X-Amzn-ErrorType")
22980	if len(code) != 0 {
22981		errorCode = restjson.SanitizeErrorCode(code)
22982	}
22983
22984	var buff [1024]byte
22985	ringBuffer := smithyio.NewRingBuffer(buff[:])
22986
22987	body := io.TeeReader(errorBody, ringBuffer)
22988	decoder := json.NewDecoder(body)
22989	decoder.UseNumber()
22990	code, message, err := restjson.GetErrorInfo(decoder)
22991	if err != nil {
22992		var snapshot bytes.Buffer
22993		io.Copy(&snapshot, ringBuffer)
22994		err = &smithy.DeserializationError{
22995			Err:      fmt.Errorf("failed to decode response body, %w", err),
22996			Snapshot: snapshot.Bytes(),
22997		}
22998		return err
22999	}
23000
23001	errorBody.Seek(0, io.SeekStart)
23002	if len(code) != 0 {
23003		errorCode = restjson.SanitizeErrorCode(code)
23004	}
23005	if len(message) != 0 {
23006		errorMessage = message
23007	}
23008
23009	switch {
23010	case strings.EqualFold("BadRequestException", errorCode):
23011		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23012
23013	case strings.EqualFold("ForbiddenException", errorCode):
23014		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23015
23016	case strings.EqualFold("NotFoundException", errorCode):
23017		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23018
23019	case strings.EqualFold("ServiceFailureException", errorCode):
23020		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23021
23022	case strings.EqualFold("ServiceUnavailableException", errorCode):
23023		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23024
23025	case strings.EqualFold("ThrottledClientException", errorCode):
23026		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23027
23028	case strings.EqualFold("UnauthorizedClientException", errorCode):
23029		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23030
23031	default:
23032		genericError := &smithy.GenericAPIError{
23033			Code:    errorCode,
23034			Message: errorMessage,
23035		}
23036		return genericError
23037
23038	}
23039}
23040
23041func awsRestjson1_deserializeOpDocumentPutVoiceConnectorOriginationOutput(v **PutVoiceConnectorOriginationOutput, value interface{}) error {
23042	if v == nil {
23043		return fmt.Errorf("unexpected nil of type %T", v)
23044	}
23045	if value == nil {
23046		return nil
23047	}
23048
23049	shape, ok := value.(map[string]interface{})
23050	if !ok {
23051		return fmt.Errorf("unexpected JSON type %v", value)
23052	}
23053
23054	var sv *PutVoiceConnectorOriginationOutput
23055	if *v == nil {
23056		sv = &PutVoiceConnectorOriginationOutput{}
23057	} else {
23058		sv = *v
23059	}
23060
23061	for key, value := range shape {
23062		switch key {
23063		case "Origination":
23064			if err := awsRestjson1_deserializeDocumentOrigination(&sv.Origination, value); err != nil {
23065				return err
23066			}
23067
23068		default:
23069			_, _ = key, value
23070
23071		}
23072	}
23073	*v = sv
23074	return nil
23075}
23076
23077type awsRestjson1_deserializeOpPutVoiceConnectorProxy struct {
23078}
23079
23080func (*awsRestjson1_deserializeOpPutVoiceConnectorProxy) ID() string {
23081	return "OperationDeserializer"
23082}
23083
23084func (m *awsRestjson1_deserializeOpPutVoiceConnectorProxy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23085	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23086) {
23087	out, metadata, err = next.HandleDeserialize(ctx, in)
23088	if err != nil {
23089		return out, metadata, err
23090	}
23091
23092	response, ok := out.RawResponse.(*smithyhttp.Response)
23093	if !ok {
23094		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23095	}
23096
23097	if response.StatusCode < 200 || response.StatusCode >= 300 {
23098		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorProxy(response, &metadata)
23099	}
23100	output := &PutVoiceConnectorProxyOutput{}
23101	out.Result = output
23102
23103	var buff [1024]byte
23104	ringBuffer := smithyio.NewRingBuffer(buff[:])
23105
23106	body := io.TeeReader(response.Body, ringBuffer)
23107
23108	decoder := json.NewDecoder(body)
23109	decoder.UseNumber()
23110	var shape interface{}
23111	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23112		var snapshot bytes.Buffer
23113		io.Copy(&snapshot, ringBuffer)
23114		err = &smithy.DeserializationError{
23115			Err:      fmt.Errorf("failed to decode response body, %w", err),
23116			Snapshot: snapshot.Bytes(),
23117		}
23118		return out, metadata, err
23119	}
23120
23121	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorProxyOutput(&output, shape)
23122	if err != nil {
23123		var snapshot bytes.Buffer
23124		io.Copy(&snapshot, ringBuffer)
23125		return out, metadata, &smithy.DeserializationError{
23126			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23127			Snapshot: snapshot.Bytes(),
23128		}
23129	}
23130
23131	return out, metadata, err
23132}
23133
23134func awsRestjson1_deserializeOpErrorPutVoiceConnectorProxy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23135	var errorBuffer bytes.Buffer
23136	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23137		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23138	}
23139	errorBody := bytes.NewReader(errorBuffer.Bytes())
23140
23141	errorCode := "UnknownError"
23142	errorMessage := errorCode
23143
23144	code := response.Header.Get("X-Amzn-ErrorType")
23145	if len(code) != 0 {
23146		errorCode = restjson.SanitizeErrorCode(code)
23147	}
23148
23149	var buff [1024]byte
23150	ringBuffer := smithyio.NewRingBuffer(buff[:])
23151
23152	body := io.TeeReader(errorBody, ringBuffer)
23153	decoder := json.NewDecoder(body)
23154	decoder.UseNumber()
23155	code, message, err := restjson.GetErrorInfo(decoder)
23156	if err != nil {
23157		var snapshot bytes.Buffer
23158		io.Copy(&snapshot, ringBuffer)
23159		err = &smithy.DeserializationError{
23160			Err:      fmt.Errorf("failed to decode response body, %w", err),
23161			Snapshot: snapshot.Bytes(),
23162		}
23163		return err
23164	}
23165
23166	errorBody.Seek(0, io.SeekStart)
23167	if len(code) != 0 {
23168		errorCode = restjson.SanitizeErrorCode(code)
23169	}
23170	if len(message) != 0 {
23171		errorMessage = message
23172	}
23173
23174	switch {
23175	case strings.EqualFold("AccessDeniedException", errorCode):
23176		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
23177
23178	case strings.EqualFold("BadRequestException", errorCode):
23179		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23180
23181	case strings.EqualFold("ForbiddenException", errorCode):
23182		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23183
23184	case strings.EqualFold("NotFoundException", errorCode):
23185		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23186
23187	case strings.EqualFold("ServiceFailureException", errorCode):
23188		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23189
23190	case strings.EqualFold("ServiceUnavailableException", errorCode):
23191		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23192
23193	case strings.EqualFold("ThrottledClientException", errorCode):
23194		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23195
23196	case strings.EqualFold("UnauthorizedClientException", errorCode):
23197		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23198
23199	default:
23200		genericError := &smithy.GenericAPIError{
23201			Code:    errorCode,
23202			Message: errorMessage,
23203		}
23204		return genericError
23205
23206	}
23207}
23208
23209func awsRestjson1_deserializeOpDocumentPutVoiceConnectorProxyOutput(v **PutVoiceConnectorProxyOutput, value interface{}) error {
23210	if v == nil {
23211		return fmt.Errorf("unexpected nil of type %T", v)
23212	}
23213	if value == nil {
23214		return nil
23215	}
23216
23217	shape, ok := value.(map[string]interface{})
23218	if !ok {
23219		return fmt.Errorf("unexpected JSON type %v", value)
23220	}
23221
23222	var sv *PutVoiceConnectorProxyOutput
23223	if *v == nil {
23224		sv = &PutVoiceConnectorProxyOutput{}
23225	} else {
23226		sv = *v
23227	}
23228
23229	for key, value := range shape {
23230		switch key {
23231		case "Proxy":
23232			if err := awsRestjson1_deserializeDocumentProxy(&sv.Proxy, value); err != nil {
23233				return err
23234			}
23235
23236		default:
23237			_, _ = key, value
23238
23239		}
23240	}
23241	*v = sv
23242	return nil
23243}
23244
23245type awsRestjson1_deserializeOpPutVoiceConnectorStreamingConfiguration struct {
23246}
23247
23248func (*awsRestjson1_deserializeOpPutVoiceConnectorStreamingConfiguration) ID() string {
23249	return "OperationDeserializer"
23250}
23251
23252func (m *awsRestjson1_deserializeOpPutVoiceConnectorStreamingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23253	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23254) {
23255	out, metadata, err = next.HandleDeserialize(ctx, in)
23256	if err != nil {
23257		return out, metadata, err
23258	}
23259
23260	response, ok := out.RawResponse.(*smithyhttp.Response)
23261	if !ok {
23262		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23263	}
23264
23265	if response.StatusCode < 200 || response.StatusCode >= 300 {
23266		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorStreamingConfiguration(response, &metadata)
23267	}
23268	output := &PutVoiceConnectorStreamingConfigurationOutput{}
23269	out.Result = output
23270
23271	var buff [1024]byte
23272	ringBuffer := smithyio.NewRingBuffer(buff[:])
23273
23274	body := io.TeeReader(response.Body, ringBuffer)
23275
23276	decoder := json.NewDecoder(body)
23277	decoder.UseNumber()
23278	var shape interface{}
23279	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23280		var snapshot bytes.Buffer
23281		io.Copy(&snapshot, ringBuffer)
23282		err = &smithy.DeserializationError{
23283			Err:      fmt.Errorf("failed to decode response body, %w", err),
23284			Snapshot: snapshot.Bytes(),
23285		}
23286		return out, metadata, err
23287	}
23288
23289	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorStreamingConfigurationOutput(&output, shape)
23290	if err != nil {
23291		var snapshot bytes.Buffer
23292		io.Copy(&snapshot, ringBuffer)
23293		return out, metadata, &smithy.DeserializationError{
23294			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23295			Snapshot: snapshot.Bytes(),
23296		}
23297	}
23298
23299	return out, metadata, err
23300}
23301
23302func awsRestjson1_deserializeOpErrorPutVoiceConnectorStreamingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23303	var errorBuffer bytes.Buffer
23304	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23305		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23306	}
23307	errorBody := bytes.NewReader(errorBuffer.Bytes())
23308
23309	errorCode := "UnknownError"
23310	errorMessage := errorCode
23311
23312	code := response.Header.Get("X-Amzn-ErrorType")
23313	if len(code) != 0 {
23314		errorCode = restjson.SanitizeErrorCode(code)
23315	}
23316
23317	var buff [1024]byte
23318	ringBuffer := smithyio.NewRingBuffer(buff[:])
23319
23320	body := io.TeeReader(errorBody, ringBuffer)
23321	decoder := json.NewDecoder(body)
23322	decoder.UseNumber()
23323	code, message, err := restjson.GetErrorInfo(decoder)
23324	if err != nil {
23325		var snapshot bytes.Buffer
23326		io.Copy(&snapshot, ringBuffer)
23327		err = &smithy.DeserializationError{
23328			Err:      fmt.Errorf("failed to decode response body, %w", err),
23329			Snapshot: snapshot.Bytes(),
23330		}
23331		return err
23332	}
23333
23334	errorBody.Seek(0, io.SeekStart)
23335	if len(code) != 0 {
23336		errorCode = restjson.SanitizeErrorCode(code)
23337	}
23338	if len(message) != 0 {
23339		errorMessage = message
23340	}
23341
23342	switch {
23343	case strings.EqualFold("BadRequestException", errorCode):
23344		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23345
23346	case strings.EqualFold("ForbiddenException", errorCode):
23347		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23348
23349	case strings.EqualFold("NotFoundException", errorCode):
23350		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23351
23352	case strings.EqualFold("ServiceFailureException", errorCode):
23353		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23354
23355	case strings.EqualFold("ServiceUnavailableException", errorCode):
23356		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23357
23358	case strings.EqualFold("ThrottledClientException", errorCode):
23359		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23360
23361	case strings.EqualFold("UnauthorizedClientException", errorCode):
23362		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23363
23364	default:
23365		genericError := &smithy.GenericAPIError{
23366			Code:    errorCode,
23367			Message: errorMessage,
23368		}
23369		return genericError
23370
23371	}
23372}
23373
23374func awsRestjson1_deserializeOpDocumentPutVoiceConnectorStreamingConfigurationOutput(v **PutVoiceConnectorStreamingConfigurationOutput, value interface{}) error {
23375	if v == nil {
23376		return fmt.Errorf("unexpected nil of type %T", v)
23377	}
23378	if value == nil {
23379		return nil
23380	}
23381
23382	shape, ok := value.(map[string]interface{})
23383	if !ok {
23384		return fmt.Errorf("unexpected JSON type %v", value)
23385	}
23386
23387	var sv *PutVoiceConnectorStreamingConfigurationOutput
23388	if *v == nil {
23389		sv = &PutVoiceConnectorStreamingConfigurationOutput{}
23390	} else {
23391		sv = *v
23392	}
23393
23394	for key, value := range shape {
23395		switch key {
23396		case "StreamingConfiguration":
23397			if err := awsRestjson1_deserializeDocumentStreamingConfiguration(&sv.StreamingConfiguration, value); err != nil {
23398				return err
23399			}
23400
23401		default:
23402			_, _ = key, value
23403
23404		}
23405	}
23406	*v = sv
23407	return nil
23408}
23409
23410type awsRestjson1_deserializeOpPutVoiceConnectorTermination struct {
23411}
23412
23413func (*awsRestjson1_deserializeOpPutVoiceConnectorTermination) ID() string {
23414	return "OperationDeserializer"
23415}
23416
23417func (m *awsRestjson1_deserializeOpPutVoiceConnectorTermination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23418	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23419) {
23420	out, metadata, err = next.HandleDeserialize(ctx, in)
23421	if err != nil {
23422		return out, metadata, err
23423	}
23424
23425	response, ok := out.RawResponse.(*smithyhttp.Response)
23426	if !ok {
23427		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23428	}
23429
23430	if response.StatusCode < 200 || response.StatusCode >= 300 {
23431		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorTermination(response, &metadata)
23432	}
23433	output := &PutVoiceConnectorTerminationOutput{}
23434	out.Result = output
23435
23436	var buff [1024]byte
23437	ringBuffer := smithyio.NewRingBuffer(buff[:])
23438
23439	body := io.TeeReader(response.Body, ringBuffer)
23440
23441	decoder := json.NewDecoder(body)
23442	decoder.UseNumber()
23443	var shape interface{}
23444	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23445		var snapshot bytes.Buffer
23446		io.Copy(&snapshot, ringBuffer)
23447		err = &smithy.DeserializationError{
23448			Err:      fmt.Errorf("failed to decode response body, %w", err),
23449			Snapshot: snapshot.Bytes(),
23450		}
23451		return out, metadata, err
23452	}
23453
23454	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorTerminationOutput(&output, shape)
23455	if err != nil {
23456		var snapshot bytes.Buffer
23457		io.Copy(&snapshot, ringBuffer)
23458		return out, metadata, &smithy.DeserializationError{
23459			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23460			Snapshot: snapshot.Bytes(),
23461		}
23462	}
23463
23464	return out, metadata, err
23465}
23466
23467func awsRestjson1_deserializeOpErrorPutVoiceConnectorTermination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23468	var errorBuffer bytes.Buffer
23469	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23470		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23471	}
23472	errorBody := bytes.NewReader(errorBuffer.Bytes())
23473
23474	errorCode := "UnknownError"
23475	errorMessage := errorCode
23476
23477	code := response.Header.Get("X-Amzn-ErrorType")
23478	if len(code) != 0 {
23479		errorCode = restjson.SanitizeErrorCode(code)
23480	}
23481
23482	var buff [1024]byte
23483	ringBuffer := smithyio.NewRingBuffer(buff[:])
23484
23485	body := io.TeeReader(errorBody, ringBuffer)
23486	decoder := json.NewDecoder(body)
23487	decoder.UseNumber()
23488	code, message, err := restjson.GetErrorInfo(decoder)
23489	if err != nil {
23490		var snapshot bytes.Buffer
23491		io.Copy(&snapshot, ringBuffer)
23492		err = &smithy.DeserializationError{
23493			Err:      fmt.Errorf("failed to decode response body, %w", err),
23494			Snapshot: snapshot.Bytes(),
23495		}
23496		return err
23497	}
23498
23499	errorBody.Seek(0, io.SeekStart)
23500	if len(code) != 0 {
23501		errorCode = restjson.SanitizeErrorCode(code)
23502	}
23503	if len(message) != 0 {
23504		errorMessage = message
23505	}
23506
23507	switch {
23508	case strings.EqualFold("AccessDeniedException", errorCode):
23509		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
23510
23511	case strings.EqualFold("BadRequestException", errorCode):
23512		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23513
23514	case strings.EqualFold("ForbiddenException", errorCode):
23515		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23516
23517	case strings.EqualFold("NotFoundException", errorCode):
23518		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23519
23520	case strings.EqualFold("ServiceFailureException", errorCode):
23521		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23522
23523	case strings.EqualFold("ServiceUnavailableException", errorCode):
23524		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23525
23526	case strings.EqualFold("ThrottledClientException", errorCode):
23527		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23528
23529	case strings.EqualFold("UnauthorizedClientException", errorCode):
23530		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23531
23532	default:
23533		genericError := &smithy.GenericAPIError{
23534			Code:    errorCode,
23535			Message: errorMessage,
23536		}
23537		return genericError
23538
23539	}
23540}
23541
23542func awsRestjson1_deserializeOpDocumentPutVoiceConnectorTerminationOutput(v **PutVoiceConnectorTerminationOutput, value interface{}) error {
23543	if v == nil {
23544		return fmt.Errorf("unexpected nil of type %T", v)
23545	}
23546	if value == nil {
23547		return nil
23548	}
23549
23550	shape, ok := value.(map[string]interface{})
23551	if !ok {
23552		return fmt.Errorf("unexpected JSON type %v", value)
23553	}
23554
23555	var sv *PutVoiceConnectorTerminationOutput
23556	if *v == nil {
23557		sv = &PutVoiceConnectorTerminationOutput{}
23558	} else {
23559		sv = *v
23560	}
23561
23562	for key, value := range shape {
23563		switch key {
23564		case "Termination":
23565			if err := awsRestjson1_deserializeDocumentTermination(&sv.Termination, value); err != nil {
23566				return err
23567			}
23568
23569		default:
23570			_, _ = key, value
23571
23572		}
23573	}
23574	*v = sv
23575	return nil
23576}
23577
23578type awsRestjson1_deserializeOpPutVoiceConnectorTerminationCredentials struct {
23579}
23580
23581func (*awsRestjson1_deserializeOpPutVoiceConnectorTerminationCredentials) ID() string {
23582	return "OperationDeserializer"
23583}
23584
23585func (m *awsRestjson1_deserializeOpPutVoiceConnectorTerminationCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23586	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23587) {
23588	out, metadata, err = next.HandleDeserialize(ctx, in)
23589	if err != nil {
23590		return out, metadata, err
23591	}
23592
23593	response, ok := out.RawResponse.(*smithyhttp.Response)
23594	if !ok {
23595		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23596	}
23597
23598	if response.StatusCode < 200 || response.StatusCode >= 300 {
23599		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorTerminationCredentials(response, &metadata)
23600	}
23601	output := &PutVoiceConnectorTerminationCredentialsOutput{}
23602	out.Result = output
23603
23604	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
23605		return out, metadata, &smithy.DeserializationError{
23606			Err: fmt.Errorf("failed to discard response body, %w", err),
23607		}
23608	}
23609
23610	return out, metadata, err
23611}
23612
23613func awsRestjson1_deserializeOpErrorPutVoiceConnectorTerminationCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23614	var errorBuffer bytes.Buffer
23615	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23616		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23617	}
23618	errorBody := bytes.NewReader(errorBuffer.Bytes())
23619
23620	errorCode := "UnknownError"
23621	errorMessage := errorCode
23622
23623	code := response.Header.Get("X-Amzn-ErrorType")
23624	if len(code) != 0 {
23625		errorCode = restjson.SanitizeErrorCode(code)
23626	}
23627
23628	var buff [1024]byte
23629	ringBuffer := smithyio.NewRingBuffer(buff[:])
23630
23631	body := io.TeeReader(errorBody, ringBuffer)
23632	decoder := json.NewDecoder(body)
23633	decoder.UseNumber()
23634	code, message, err := restjson.GetErrorInfo(decoder)
23635	if err != nil {
23636		var snapshot bytes.Buffer
23637		io.Copy(&snapshot, ringBuffer)
23638		err = &smithy.DeserializationError{
23639			Err:      fmt.Errorf("failed to decode response body, %w", err),
23640			Snapshot: snapshot.Bytes(),
23641		}
23642		return err
23643	}
23644
23645	errorBody.Seek(0, io.SeekStart)
23646	if len(code) != 0 {
23647		errorCode = restjson.SanitizeErrorCode(code)
23648	}
23649	if len(message) != 0 {
23650		errorMessage = message
23651	}
23652
23653	switch {
23654	case strings.EqualFold("BadRequestException", errorCode):
23655		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23656
23657	case strings.EqualFold("ForbiddenException", errorCode):
23658		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23659
23660	case strings.EqualFold("NotFoundException", errorCode):
23661		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23662
23663	case strings.EqualFold("ServiceFailureException", errorCode):
23664		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23665
23666	case strings.EqualFold("ServiceUnavailableException", errorCode):
23667		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23668
23669	case strings.EqualFold("ThrottledClientException", errorCode):
23670		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23671
23672	case strings.EqualFold("UnauthorizedClientException", errorCode):
23673		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23674
23675	default:
23676		genericError := &smithy.GenericAPIError{
23677			Code:    errorCode,
23678			Message: errorMessage,
23679		}
23680		return genericError
23681
23682	}
23683}
23684
23685type awsRestjson1_deserializeOpRedactChannelMessage struct {
23686}
23687
23688func (*awsRestjson1_deserializeOpRedactChannelMessage) ID() string {
23689	return "OperationDeserializer"
23690}
23691
23692func (m *awsRestjson1_deserializeOpRedactChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23693	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23694) {
23695	out, metadata, err = next.HandleDeserialize(ctx, in)
23696	if err != nil {
23697		return out, metadata, err
23698	}
23699
23700	response, ok := out.RawResponse.(*smithyhttp.Response)
23701	if !ok {
23702		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23703	}
23704
23705	if response.StatusCode < 200 || response.StatusCode >= 300 {
23706		return out, metadata, awsRestjson1_deserializeOpErrorRedactChannelMessage(response, &metadata)
23707	}
23708	output := &RedactChannelMessageOutput{}
23709	out.Result = output
23710
23711	var buff [1024]byte
23712	ringBuffer := smithyio.NewRingBuffer(buff[:])
23713
23714	body := io.TeeReader(response.Body, ringBuffer)
23715
23716	decoder := json.NewDecoder(body)
23717	decoder.UseNumber()
23718	var shape interface{}
23719	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23720		var snapshot bytes.Buffer
23721		io.Copy(&snapshot, ringBuffer)
23722		err = &smithy.DeserializationError{
23723			Err:      fmt.Errorf("failed to decode response body, %w", err),
23724			Snapshot: snapshot.Bytes(),
23725		}
23726		return out, metadata, err
23727	}
23728
23729	err = awsRestjson1_deserializeOpDocumentRedactChannelMessageOutput(&output, shape)
23730	if err != nil {
23731		var snapshot bytes.Buffer
23732		io.Copy(&snapshot, ringBuffer)
23733		return out, metadata, &smithy.DeserializationError{
23734			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23735			Snapshot: snapshot.Bytes(),
23736		}
23737	}
23738
23739	return out, metadata, err
23740}
23741
23742func awsRestjson1_deserializeOpErrorRedactChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23743	var errorBuffer bytes.Buffer
23744	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23745		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23746	}
23747	errorBody := bytes.NewReader(errorBuffer.Bytes())
23748
23749	errorCode := "UnknownError"
23750	errorMessage := errorCode
23751
23752	code := response.Header.Get("X-Amzn-ErrorType")
23753	if len(code) != 0 {
23754		errorCode = restjson.SanitizeErrorCode(code)
23755	}
23756
23757	var buff [1024]byte
23758	ringBuffer := smithyio.NewRingBuffer(buff[:])
23759
23760	body := io.TeeReader(errorBody, ringBuffer)
23761	decoder := json.NewDecoder(body)
23762	decoder.UseNumber()
23763	code, message, err := restjson.GetErrorInfo(decoder)
23764	if err != nil {
23765		var snapshot bytes.Buffer
23766		io.Copy(&snapshot, ringBuffer)
23767		err = &smithy.DeserializationError{
23768			Err:      fmt.Errorf("failed to decode response body, %w", err),
23769			Snapshot: snapshot.Bytes(),
23770		}
23771		return err
23772	}
23773
23774	errorBody.Seek(0, io.SeekStart)
23775	if len(code) != 0 {
23776		errorCode = restjson.SanitizeErrorCode(code)
23777	}
23778	if len(message) != 0 {
23779		errorMessage = message
23780	}
23781
23782	switch {
23783	case strings.EqualFold("BadRequestException", errorCode):
23784		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23785
23786	case strings.EqualFold("ForbiddenException", errorCode):
23787		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23788
23789	case strings.EqualFold("ServiceFailureException", errorCode):
23790		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23791
23792	case strings.EqualFold("ServiceUnavailableException", errorCode):
23793		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23794
23795	case strings.EqualFold("ThrottledClientException", errorCode):
23796		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23797
23798	case strings.EqualFold("UnauthorizedClientException", errorCode):
23799		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23800
23801	default:
23802		genericError := &smithy.GenericAPIError{
23803			Code:    errorCode,
23804			Message: errorMessage,
23805		}
23806		return genericError
23807
23808	}
23809}
23810
23811func awsRestjson1_deserializeOpDocumentRedactChannelMessageOutput(v **RedactChannelMessageOutput, value interface{}) error {
23812	if v == nil {
23813		return fmt.Errorf("unexpected nil of type %T", v)
23814	}
23815	if value == nil {
23816		return nil
23817	}
23818
23819	shape, ok := value.(map[string]interface{})
23820	if !ok {
23821		return fmt.Errorf("unexpected JSON type %v", value)
23822	}
23823
23824	var sv *RedactChannelMessageOutput
23825	if *v == nil {
23826		sv = &RedactChannelMessageOutput{}
23827	} else {
23828		sv = *v
23829	}
23830
23831	for key, value := range shape {
23832		switch key {
23833		case "ChannelArn":
23834			if value != nil {
23835				jtv, ok := value.(string)
23836				if !ok {
23837					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
23838				}
23839				sv.ChannelArn = ptr.String(jtv)
23840			}
23841
23842		case "MessageId":
23843			if value != nil {
23844				jtv, ok := value.(string)
23845				if !ok {
23846					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
23847				}
23848				sv.MessageId = ptr.String(jtv)
23849			}
23850
23851		default:
23852			_, _ = key, value
23853
23854		}
23855	}
23856	*v = sv
23857	return nil
23858}
23859
23860type awsRestjson1_deserializeOpRedactConversationMessage struct {
23861}
23862
23863func (*awsRestjson1_deserializeOpRedactConversationMessage) ID() string {
23864	return "OperationDeserializer"
23865}
23866
23867func (m *awsRestjson1_deserializeOpRedactConversationMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23868	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23869) {
23870	out, metadata, err = next.HandleDeserialize(ctx, in)
23871	if err != nil {
23872		return out, metadata, err
23873	}
23874
23875	response, ok := out.RawResponse.(*smithyhttp.Response)
23876	if !ok {
23877		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23878	}
23879
23880	if response.StatusCode < 200 || response.StatusCode >= 300 {
23881		return out, metadata, awsRestjson1_deserializeOpErrorRedactConversationMessage(response, &metadata)
23882	}
23883	output := &RedactConversationMessageOutput{}
23884	out.Result = output
23885
23886	return out, metadata, err
23887}
23888
23889func awsRestjson1_deserializeOpErrorRedactConversationMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23890	var errorBuffer bytes.Buffer
23891	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23892		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23893	}
23894	errorBody := bytes.NewReader(errorBuffer.Bytes())
23895
23896	errorCode := "UnknownError"
23897	errorMessage := errorCode
23898
23899	code := response.Header.Get("X-Amzn-ErrorType")
23900	if len(code) != 0 {
23901		errorCode = restjson.SanitizeErrorCode(code)
23902	}
23903
23904	var buff [1024]byte
23905	ringBuffer := smithyio.NewRingBuffer(buff[:])
23906
23907	body := io.TeeReader(errorBody, ringBuffer)
23908	decoder := json.NewDecoder(body)
23909	decoder.UseNumber()
23910	code, message, err := restjson.GetErrorInfo(decoder)
23911	if err != nil {
23912		var snapshot bytes.Buffer
23913		io.Copy(&snapshot, ringBuffer)
23914		err = &smithy.DeserializationError{
23915			Err:      fmt.Errorf("failed to decode response body, %w", err),
23916			Snapshot: snapshot.Bytes(),
23917		}
23918		return err
23919	}
23920
23921	errorBody.Seek(0, io.SeekStart)
23922	if len(code) != 0 {
23923		errorCode = restjson.SanitizeErrorCode(code)
23924	}
23925	if len(message) != 0 {
23926		errorMessage = message
23927	}
23928
23929	switch {
23930	case strings.EqualFold("BadRequestException", errorCode):
23931		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23932
23933	case strings.EqualFold("ForbiddenException", errorCode):
23934		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23935
23936	case strings.EqualFold("NotFoundException", errorCode):
23937		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23938
23939	case strings.EqualFold("ServiceFailureException", errorCode):
23940		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23941
23942	case strings.EqualFold("ServiceUnavailableException", errorCode):
23943		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23944
23945	case strings.EqualFold("ThrottledClientException", errorCode):
23946		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23947
23948	case strings.EqualFold("UnauthorizedClientException", errorCode):
23949		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23950
23951	default:
23952		genericError := &smithy.GenericAPIError{
23953			Code:    errorCode,
23954			Message: errorMessage,
23955		}
23956		return genericError
23957
23958	}
23959}
23960
23961type awsRestjson1_deserializeOpRedactRoomMessage struct {
23962}
23963
23964func (*awsRestjson1_deserializeOpRedactRoomMessage) ID() string {
23965	return "OperationDeserializer"
23966}
23967
23968func (m *awsRestjson1_deserializeOpRedactRoomMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23969	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23970) {
23971	out, metadata, err = next.HandleDeserialize(ctx, in)
23972	if err != nil {
23973		return out, metadata, err
23974	}
23975
23976	response, ok := out.RawResponse.(*smithyhttp.Response)
23977	if !ok {
23978		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23979	}
23980
23981	if response.StatusCode < 200 || response.StatusCode >= 300 {
23982		return out, metadata, awsRestjson1_deserializeOpErrorRedactRoomMessage(response, &metadata)
23983	}
23984	output := &RedactRoomMessageOutput{}
23985	out.Result = output
23986
23987	return out, metadata, err
23988}
23989
23990func awsRestjson1_deserializeOpErrorRedactRoomMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23991	var errorBuffer bytes.Buffer
23992	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23993		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23994	}
23995	errorBody := bytes.NewReader(errorBuffer.Bytes())
23996
23997	errorCode := "UnknownError"
23998	errorMessage := errorCode
23999
24000	code := response.Header.Get("X-Amzn-ErrorType")
24001	if len(code) != 0 {
24002		errorCode = restjson.SanitizeErrorCode(code)
24003	}
24004
24005	var buff [1024]byte
24006	ringBuffer := smithyio.NewRingBuffer(buff[:])
24007
24008	body := io.TeeReader(errorBody, ringBuffer)
24009	decoder := json.NewDecoder(body)
24010	decoder.UseNumber()
24011	code, message, err := restjson.GetErrorInfo(decoder)
24012	if err != nil {
24013		var snapshot bytes.Buffer
24014		io.Copy(&snapshot, ringBuffer)
24015		err = &smithy.DeserializationError{
24016			Err:      fmt.Errorf("failed to decode response body, %w", err),
24017			Snapshot: snapshot.Bytes(),
24018		}
24019		return err
24020	}
24021
24022	errorBody.Seek(0, io.SeekStart)
24023	if len(code) != 0 {
24024		errorCode = restjson.SanitizeErrorCode(code)
24025	}
24026	if len(message) != 0 {
24027		errorMessage = message
24028	}
24029
24030	switch {
24031	case strings.EqualFold("BadRequestException", errorCode):
24032		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24033
24034	case strings.EqualFold("ForbiddenException", errorCode):
24035		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24036
24037	case strings.EqualFold("NotFoundException", errorCode):
24038		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24039
24040	case strings.EqualFold("ServiceFailureException", errorCode):
24041		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24042
24043	case strings.EqualFold("ServiceUnavailableException", errorCode):
24044		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24045
24046	case strings.EqualFold("ThrottledClientException", errorCode):
24047		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24048
24049	case strings.EqualFold("UnauthorizedClientException", errorCode):
24050		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24051
24052	default:
24053		genericError := &smithy.GenericAPIError{
24054			Code:    errorCode,
24055			Message: errorMessage,
24056		}
24057		return genericError
24058
24059	}
24060}
24061
24062type awsRestjson1_deserializeOpRegenerateSecurityToken struct {
24063}
24064
24065func (*awsRestjson1_deserializeOpRegenerateSecurityToken) ID() string {
24066	return "OperationDeserializer"
24067}
24068
24069func (m *awsRestjson1_deserializeOpRegenerateSecurityToken) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24070	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24071) {
24072	out, metadata, err = next.HandleDeserialize(ctx, in)
24073	if err != nil {
24074		return out, metadata, err
24075	}
24076
24077	response, ok := out.RawResponse.(*smithyhttp.Response)
24078	if !ok {
24079		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24080	}
24081
24082	if response.StatusCode < 200 || response.StatusCode >= 300 {
24083		return out, metadata, awsRestjson1_deserializeOpErrorRegenerateSecurityToken(response, &metadata)
24084	}
24085	output := &RegenerateSecurityTokenOutput{}
24086	out.Result = output
24087
24088	var buff [1024]byte
24089	ringBuffer := smithyio.NewRingBuffer(buff[:])
24090
24091	body := io.TeeReader(response.Body, ringBuffer)
24092
24093	decoder := json.NewDecoder(body)
24094	decoder.UseNumber()
24095	var shape interface{}
24096	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24097		var snapshot bytes.Buffer
24098		io.Copy(&snapshot, ringBuffer)
24099		err = &smithy.DeserializationError{
24100			Err:      fmt.Errorf("failed to decode response body, %w", err),
24101			Snapshot: snapshot.Bytes(),
24102		}
24103		return out, metadata, err
24104	}
24105
24106	err = awsRestjson1_deserializeOpDocumentRegenerateSecurityTokenOutput(&output, shape)
24107	if err != nil {
24108		var snapshot bytes.Buffer
24109		io.Copy(&snapshot, ringBuffer)
24110		return out, metadata, &smithy.DeserializationError{
24111			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24112			Snapshot: snapshot.Bytes(),
24113		}
24114	}
24115
24116	return out, metadata, err
24117}
24118
24119func awsRestjson1_deserializeOpErrorRegenerateSecurityToken(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24120	var errorBuffer bytes.Buffer
24121	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24122		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24123	}
24124	errorBody := bytes.NewReader(errorBuffer.Bytes())
24125
24126	errorCode := "UnknownError"
24127	errorMessage := errorCode
24128
24129	code := response.Header.Get("X-Amzn-ErrorType")
24130	if len(code) != 0 {
24131		errorCode = restjson.SanitizeErrorCode(code)
24132	}
24133
24134	var buff [1024]byte
24135	ringBuffer := smithyio.NewRingBuffer(buff[:])
24136
24137	body := io.TeeReader(errorBody, ringBuffer)
24138	decoder := json.NewDecoder(body)
24139	decoder.UseNumber()
24140	code, message, err := restjson.GetErrorInfo(decoder)
24141	if err != nil {
24142		var snapshot bytes.Buffer
24143		io.Copy(&snapshot, ringBuffer)
24144		err = &smithy.DeserializationError{
24145			Err:      fmt.Errorf("failed to decode response body, %w", err),
24146			Snapshot: snapshot.Bytes(),
24147		}
24148		return err
24149	}
24150
24151	errorBody.Seek(0, io.SeekStart)
24152	if len(code) != 0 {
24153		errorCode = restjson.SanitizeErrorCode(code)
24154	}
24155	if len(message) != 0 {
24156		errorMessage = message
24157	}
24158
24159	switch {
24160	case strings.EqualFold("BadRequestException", errorCode):
24161		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24162
24163	case strings.EqualFold("ForbiddenException", errorCode):
24164		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24165
24166	case strings.EqualFold("NotFoundException", errorCode):
24167		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24168
24169	case strings.EqualFold("ServiceFailureException", errorCode):
24170		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24171
24172	case strings.EqualFold("ServiceUnavailableException", errorCode):
24173		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24174
24175	case strings.EqualFold("ThrottledClientException", errorCode):
24176		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24177
24178	case strings.EqualFold("UnauthorizedClientException", errorCode):
24179		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24180
24181	default:
24182		genericError := &smithy.GenericAPIError{
24183			Code:    errorCode,
24184			Message: errorMessage,
24185		}
24186		return genericError
24187
24188	}
24189}
24190
24191func awsRestjson1_deserializeOpDocumentRegenerateSecurityTokenOutput(v **RegenerateSecurityTokenOutput, value interface{}) error {
24192	if v == nil {
24193		return fmt.Errorf("unexpected nil of type %T", v)
24194	}
24195	if value == nil {
24196		return nil
24197	}
24198
24199	shape, ok := value.(map[string]interface{})
24200	if !ok {
24201		return fmt.Errorf("unexpected JSON type %v", value)
24202	}
24203
24204	var sv *RegenerateSecurityTokenOutput
24205	if *v == nil {
24206		sv = &RegenerateSecurityTokenOutput{}
24207	} else {
24208		sv = *v
24209	}
24210
24211	for key, value := range shape {
24212		switch key {
24213		case "Bot":
24214			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
24215				return err
24216			}
24217
24218		default:
24219			_, _ = key, value
24220
24221		}
24222	}
24223	*v = sv
24224	return nil
24225}
24226
24227type awsRestjson1_deserializeOpResetPersonalPIN struct {
24228}
24229
24230func (*awsRestjson1_deserializeOpResetPersonalPIN) ID() string {
24231	return "OperationDeserializer"
24232}
24233
24234func (m *awsRestjson1_deserializeOpResetPersonalPIN) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24235	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24236) {
24237	out, metadata, err = next.HandleDeserialize(ctx, in)
24238	if err != nil {
24239		return out, metadata, err
24240	}
24241
24242	response, ok := out.RawResponse.(*smithyhttp.Response)
24243	if !ok {
24244		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24245	}
24246
24247	if response.StatusCode < 200 || response.StatusCode >= 300 {
24248		return out, metadata, awsRestjson1_deserializeOpErrorResetPersonalPIN(response, &metadata)
24249	}
24250	output := &ResetPersonalPINOutput{}
24251	out.Result = output
24252
24253	var buff [1024]byte
24254	ringBuffer := smithyio.NewRingBuffer(buff[:])
24255
24256	body := io.TeeReader(response.Body, ringBuffer)
24257
24258	decoder := json.NewDecoder(body)
24259	decoder.UseNumber()
24260	var shape interface{}
24261	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24262		var snapshot bytes.Buffer
24263		io.Copy(&snapshot, ringBuffer)
24264		err = &smithy.DeserializationError{
24265			Err:      fmt.Errorf("failed to decode response body, %w", err),
24266			Snapshot: snapshot.Bytes(),
24267		}
24268		return out, metadata, err
24269	}
24270
24271	err = awsRestjson1_deserializeOpDocumentResetPersonalPINOutput(&output, shape)
24272	if err != nil {
24273		var snapshot bytes.Buffer
24274		io.Copy(&snapshot, ringBuffer)
24275		return out, metadata, &smithy.DeserializationError{
24276			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24277			Snapshot: snapshot.Bytes(),
24278		}
24279	}
24280
24281	return out, metadata, err
24282}
24283
24284func awsRestjson1_deserializeOpErrorResetPersonalPIN(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24285	var errorBuffer bytes.Buffer
24286	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24287		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24288	}
24289	errorBody := bytes.NewReader(errorBuffer.Bytes())
24290
24291	errorCode := "UnknownError"
24292	errorMessage := errorCode
24293
24294	code := response.Header.Get("X-Amzn-ErrorType")
24295	if len(code) != 0 {
24296		errorCode = restjson.SanitizeErrorCode(code)
24297	}
24298
24299	var buff [1024]byte
24300	ringBuffer := smithyio.NewRingBuffer(buff[:])
24301
24302	body := io.TeeReader(errorBody, ringBuffer)
24303	decoder := json.NewDecoder(body)
24304	decoder.UseNumber()
24305	code, message, err := restjson.GetErrorInfo(decoder)
24306	if err != nil {
24307		var snapshot bytes.Buffer
24308		io.Copy(&snapshot, ringBuffer)
24309		err = &smithy.DeserializationError{
24310			Err:      fmt.Errorf("failed to decode response body, %w", err),
24311			Snapshot: snapshot.Bytes(),
24312		}
24313		return err
24314	}
24315
24316	errorBody.Seek(0, io.SeekStart)
24317	if len(code) != 0 {
24318		errorCode = restjson.SanitizeErrorCode(code)
24319	}
24320	if len(message) != 0 {
24321		errorMessage = message
24322	}
24323
24324	switch {
24325	case strings.EqualFold("BadRequestException", errorCode):
24326		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24327
24328	case strings.EqualFold("ForbiddenException", errorCode):
24329		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24330
24331	case strings.EqualFold("NotFoundException", errorCode):
24332		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24333
24334	case strings.EqualFold("ServiceFailureException", errorCode):
24335		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24336
24337	case strings.EqualFold("ServiceUnavailableException", errorCode):
24338		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24339
24340	case strings.EqualFold("ThrottledClientException", errorCode):
24341		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24342
24343	case strings.EqualFold("UnauthorizedClientException", errorCode):
24344		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24345
24346	default:
24347		genericError := &smithy.GenericAPIError{
24348			Code:    errorCode,
24349			Message: errorMessage,
24350		}
24351		return genericError
24352
24353	}
24354}
24355
24356func awsRestjson1_deserializeOpDocumentResetPersonalPINOutput(v **ResetPersonalPINOutput, value interface{}) error {
24357	if v == nil {
24358		return fmt.Errorf("unexpected nil of type %T", v)
24359	}
24360	if value == nil {
24361		return nil
24362	}
24363
24364	shape, ok := value.(map[string]interface{})
24365	if !ok {
24366		return fmt.Errorf("unexpected JSON type %v", value)
24367	}
24368
24369	var sv *ResetPersonalPINOutput
24370	if *v == nil {
24371		sv = &ResetPersonalPINOutput{}
24372	} else {
24373		sv = *v
24374	}
24375
24376	for key, value := range shape {
24377		switch key {
24378		case "User":
24379			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
24380				return err
24381			}
24382
24383		default:
24384			_, _ = key, value
24385
24386		}
24387	}
24388	*v = sv
24389	return nil
24390}
24391
24392type awsRestjson1_deserializeOpRestorePhoneNumber struct {
24393}
24394
24395func (*awsRestjson1_deserializeOpRestorePhoneNumber) ID() string {
24396	return "OperationDeserializer"
24397}
24398
24399func (m *awsRestjson1_deserializeOpRestorePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24400	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24401) {
24402	out, metadata, err = next.HandleDeserialize(ctx, in)
24403	if err != nil {
24404		return out, metadata, err
24405	}
24406
24407	response, ok := out.RawResponse.(*smithyhttp.Response)
24408	if !ok {
24409		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24410	}
24411
24412	if response.StatusCode < 200 || response.StatusCode >= 300 {
24413		return out, metadata, awsRestjson1_deserializeOpErrorRestorePhoneNumber(response, &metadata)
24414	}
24415	output := &RestorePhoneNumberOutput{}
24416	out.Result = output
24417
24418	var buff [1024]byte
24419	ringBuffer := smithyio.NewRingBuffer(buff[:])
24420
24421	body := io.TeeReader(response.Body, ringBuffer)
24422
24423	decoder := json.NewDecoder(body)
24424	decoder.UseNumber()
24425	var shape interface{}
24426	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24427		var snapshot bytes.Buffer
24428		io.Copy(&snapshot, ringBuffer)
24429		err = &smithy.DeserializationError{
24430			Err:      fmt.Errorf("failed to decode response body, %w", err),
24431			Snapshot: snapshot.Bytes(),
24432		}
24433		return out, metadata, err
24434	}
24435
24436	err = awsRestjson1_deserializeOpDocumentRestorePhoneNumberOutput(&output, shape)
24437	if err != nil {
24438		var snapshot bytes.Buffer
24439		io.Copy(&snapshot, ringBuffer)
24440		return out, metadata, &smithy.DeserializationError{
24441			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24442			Snapshot: snapshot.Bytes(),
24443		}
24444	}
24445
24446	return out, metadata, err
24447}
24448
24449func awsRestjson1_deserializeOpErrorRestorePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24450	var errorBuffer bytes.Buffer
24451	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24452		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24453	}
24454	errorBody := bytes.NewReader(errorBuffer.Bytes())
24455
24456	errorCode := "UnknownError"
24457	errorMessage := errorCode
24458
24459	code := response.Header.Get("X-Amzn-ErrorType")
24460	if len(code) != 0 {
24461		errorCode = restjson.SanitizeErrorCode(code)
24462	}
24463
24464	var buff [1024]byte
24465	ringBuffer := smithyio.NewRingBuffer(buff[:])
24466
24467	body := io.TeeReader(errorBody, ringBuffer)
24468	decoder := json.NewDecoder(body)
24469	decoder.UseNumber()
24470	code, message, err := restjson.GetErrorInfo(decoder)
24471	if err != nil {
24472		var snapshot bytes.Buffer
24473		io.Copy(&snapshot, ringBuffer)
24474		err = &smithy.DeserializationError{
24475			Err:      fmt.Errorf("failed to decode response body, %w", err),
24476			Snapshot: snapshot.Bytes(),
24477		}
24478		return err
24479	}
24480
24481	errorBody.Seek(0, io.SeekStart)
24482	if len(code) != 0 {
24483		errorCode = restjson.SanitizeErrorCode(code)
24484	}
24485	if len(message) != 0 {
24486		errorMessage = message
24487	}
24488
24489	switch {
24490	case strings.EqualFold("BadRequestException", errorCode):
24491		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24492
24493	case strings.EqualFold("ForbiddenException", errorCode):
24494		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24495
24496	case strings.EqualFold("NotFoundException", errorCode):
24497		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24498
24499	case strings.EqualFold("ResourceLimitExceededException", errorCode):
24500		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
24501
24502	case strings.EqualFold("ServiceFailureException", errorCode):
24503		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24504
24505	case strings.EqualFold("ServiceUnavailableException", errorCode):
24506		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24507
24508	case strings.EqualFold("ThrottledClientException", errorCode):
24509		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24510
24511	case strings.EqualFold("UnauthorizedClientException", errorCode):
24512		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24513
24514	default:
24515		genericError := &smithy.GenericAPIError{
24516			Code:    errorCode,
24517			Message: errorMessage,
24518		}
24519		return genericError
24520
24521	}
24522}
24523
24524func awsRestjson1_deserializeOpDocumentRestorePhoneNumberOutput(v **RestorePhoneNumberOutput, value interface{}) error {
24525	if v == nil {
24526		return fmt.Errorf("unexpected nil of type %T", v)
24527	}
24528	if value == nil {
24529		return nil
24530	}
24531
24532	shape, ok := value.(map[string]interface{})
24533	if !ok {
24534		return fmt.Errorf("unexpected JSON type %v", value)
24535	}
24536
24537	var sv *RestorePhoneNumberOutput
24538	if *v == nil {
24539		sv = &RestorePhoneNumberOutput{}
24540	} else {
24541		sv = *v
24542	}
24543
24544	for key, value := range shape {
24545		switch key {
24546		case "PhoneNumber":
24547			if err := awsRestjson1_deserializeDocumentPhoneNumber(&sv.PhoneNumber, value); err != nil {
24548				return err
24549			}
24550
24551		default:
24552			_, _ = key, value
24553
24554		}
24555	}
24556	*v = sv
24557	return nil
24558}
24559
24560type awsRestjson1_deserializeOpSearchAvailablePhoneNumbers struct {
24561}
24562
24563func (*awsRestjson1_deserializeOpSearchAvailablePhoneNumbers) ID() string {
24564	return "OperationDeserializer"
24565}
24566
24567func (m *awsRestjson1_deserializeOpSearchAvailablePhoneNumbers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24568	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24569) {
24570	out, metadata, err = next.HandleDeserialize(ctx, in)
24571	if err != nil {
24572		return out, metadata, err
24573	}
24574
24575	response, ok := out.RawResponse.(*smithyhttp.Response)
24576	if !ok {
24577		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24578	}
24579
24580	if response.StatusCode < 200 || response.StatusCode >= 300 {
24581		return out, metadata, awsRestjson1_deserializeOpErrorSearchAvailablePhoneNumbers(response, &metadata)
24582	}
24583	output := &SearchAvailablePhoneNumbersOutput{}
24584	out.Result = output
24585
24586	var buff [1024]byte
24587	ringBuffer := smithyio.NewRingBuffer(buff[:])
24588
24589	body := io.TeeReader(response.Body, ringBuffer)
24590
24591	decoder := json.NewDecoder(body)
24592	decoder.UseNumber()
24593	var shape interface{}
24594	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24595		var snapshot bytes.Buffer
24596		io.Copy(&snapshot, ringBuffer)
24597		err = &smithy.DeserializationError{
24598			Err:      fmt.Errorf("failed to decode response body, %w", err),
24599			Snapshot: snapshot.Bytes(),
24600		}
24601		return out, metadata, err
24602	}
24603
24604	err = awsRestjson1_deserializeOpDocumentSearchAvailablePhoneNumbersOutput(&output, shape)
24605	if err != nil {
24606		var snapshot bytes.Buffer
24607		io.Copy(&snapshot, ringBuffer)
24608		return out, metadata, &smithy.DeserializationError{
24609			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24610			Snapshot: snapshot.Bytes(),
24611		}
24612	}
24613
24614	return out, metadata, err
24615}
24616
24617func awsRestjson1_deserializeOpErrorSearchAvailablePhoneNumbers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24618	var errorBuffer bytes.Buffer
24619	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24620		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24621	}
24622	errorBody := bytes.NewReader(errorBuffer.Bytes())
24623
24624	errorCode := "UnknownError"
24625	errorMessage := errorCode
24626
24627	code := response.Header.Get("X-Amzn-ErrorType")
24628	if len(code) != 0 {
24629		errorCode = restjson.SanitizeErrorCode(code)
24630	}
24631
24632	var buff [1024]byte
24633	ringBuffer := smithyio.NewRingBuffer(buff[:])
24634
24635	body := io.TeeReader(errorBody, ringBuffer)
24636	decoder := json.NewDecoder(body)
24637	decoder.UseNumber()
24638	code, message, err := restjson.GetErrorInfo(decoder)
24639	if err != nil {
24640		var snapshot bytes.Buffer
24641		io.Copy(&snapshot, ringBuffer)
24642		err = &smithy.DeserializationError{
24643			Err:      fmt.Errorf("failed to decode response body, %w", err),
24644			Snapshot: snapshot.Bytes(),
24645		}
24646		return err
24647	}
24648
24649	errorBody.Seek(0, io.SeekStart)
24650	if len(code) != 0 {
24651		errorCode = restjson.SanitizeErrorCode(code)
24652	}
24653	if len(message) != 0 {
24654		errorMessage = message
24655	}
24656
24657	switch {
24658	case strings.EqualFold("AccessDeniedException", errorCode):
24659		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
24660
24661	case strings.EqualFold("BadRequestException", errorCode):
24662		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24663
24664	case strings.EqualFold("ForbiddenException", errorCode):
24665		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24666
24667	case strings.EqualFold("ServiceFailureException", errorCode):
24668		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24669
24670	case strings.EqualFold("ServiceUnavailableException", errorCode):
24671		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24672
24673	case strings.EqualFold("ThrottledClientException", errorCode):
24674		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24675
24676	case strings.EqualFold("UnauthorizedClientException", errorCode):
24677		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24678
24679	default:
24680		genericError := &smithy.GenericAPIError{
24681			Code:    errorCode,
24682			Message: errorMessage,
24683		}
24684		return genericError
24685
24686	}
24687}
24688
24689func awsRestjson1_deserializeOpDocumentSearchAvailablePhoneNumbersOutput(v **SearchAvailablePhoneNumbersOutput, value interface{}) error {
24690	if v == nil {
24691		return fmt.Errorf("unexpected nil of type %T", v)
24692	}
24693	if value == nil {
24694		return nil
24695	}
24696
24697	shape, ok := value.(map[string]interface{})
24698	if !ok {
24699		return fmt.Errorf("unexpected JSON type %v", value)
24700	}
24701
24702	var sv *SearchAvailablePhoneNumbersOutput
24703	if *v == nil {
24704		sv = &SearchAvailablePhoneNumbersOutput{}
24705	} else {
24706		sv = *v
24707	}
24708
24709	for key, value := range shape {
24710		switch key {
24711		case "E164PhoneNumbers":
24712			if err := awsRestjson1_deserializeDocumentE164PhoneNumberList(&sv.E164PhoneNumbers, value); err != nil {
24713				return err
24714			}
24715
24716		case "NextToken":
24717			if value != nil {
24718				jtv, ok := value.(string)
24719				if !ok {
24720					return fmt.Errorf("expected String to be of type string, got %T instead", value)
24721				}
24722				sv.NextToken = ptr.String(jtv)
24723			}
24724
24725		default:
24726			_, _ = key, value
24727
24728		}
24729	}
24730	*v = sv
24731	return nil
24732}
24733
24734type awsRestjson1_deserializeOpSendChannelMessage struct {
24735}
24736
24737func (*awsRestjson1_deserializeOpSendChannelMessage) ID() string {
24738	return "OperationDeserializer"
24739}
24740
24741func (m *awsRestjson1_deserializeOpSendChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24742	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24743) {
24744	out, metadata, err = next.HandleDeserialize(ctx, in)
24745	if err != nil {
24746		return out, metadata, err
24747	}
24748
24749	response, ok := out.RawResponse.(*smithyhttp.Response)
24750	if !ok {
24751		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24752	}
24753
24754	if response.StatusCode < 200 || response.StatusCode >= 300 {
24755		return out, metadata, awsRestjson1_deserializeOpErrorSendChannelMessage(response, &metadata)
24756	}
24757	output := &SendChannelMessageOutput{}
24758	out.Result = output
24759
24760	var buff [1024]byte
24761	ringBuffer := smithyio.NewRingBuffer(buff[:])
24762
24763	body := io.TeeReader(response.Body, ringBuffer)
24764
24765	decoder := json.NewDecoder(body)
24766	decoder.UseNumber()
24767	var shape interface{}
24768	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24769		var snapshot bytes.Buffer
24770		io.Copy(&snapshot, ringBuffer)
24771		err = &smithy.DeserializationError{
24772			Err:      fmt.Errorf("failed to decode response body, %w", err),
24773			Snapshot: snapshot.Bytes(),
24774		}
24775		return out, metadata, err
24776	}
24777
24778	err = awsRestjson1_deserializeOpDocumentSendChannelMessageOutput(&output, shape)
24779	if err != nil {
24780		var snapshot bytes.Buffer
24781		io.Copy(&snapshot, ringBuffer)
24782		return out, metadata, &smithy.DeserializationError{
24783			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24784			Snapshot: snapshot.Bytes(),
24785		}
24786	}
24787
24788	return out, metadata, err
24789}
24790
24791func awsRestjson1_deserializeOpErrorSendChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24792	var errorBuffer bytes.Buffer
24793	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24794		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24795	}
24796	errorBody := bytes.NewReader(errorBuffer.Bytes())
24797
24798	errorCode := "UnknownError"
24799	errorMessage := errorCode
24800
24801	code := response.Header.Get("X-Amzn-ErrorType")
24802	if len(code) != 0 {
24803		errorCode = restjson.SanitizeErrorCode(code)
24804	}
24805
24806	var buff [1024]byte
24807	ringBuffer := smithyio.NewRingBuffer(buff[:])
24808
24809	body := io.TeeReader(errorBody, ringBuffer)
24810	decoder := json.NewDecoder(body)
24811	decoder.UseNumber()
24812	code, message, err := restjson.GetErrorInfo(decoder)
24813	if err != nil {
24814		var snapshot bytes.Buffer
24815		io.Copy(&snapshot, ringBuffer)
24816		err = &smithy.DeserializationError{
24817			Err:      fmt.Errorf("failed to decode response body, %w", err),
24818			Snapshot: snapshot.Bytes(),
24819		}
24820		return err
24821	}
24822
24823	errorBody.Seek(0, io.SeekStart)
24824	if len(code) != 0 {
24825		errorCode = restjson.SanitizeErrorCode(code)
24826	}
24827	if len(message) != 0 {
24828		errorMessage = message
24829	}
24830
24831	switch {
24832	case strings.EqualFold("BadRequestException", errorCode):
24833		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24834
24835	case strings.EqualFold("ConflictException", errorCode):
24836		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
24837
24838	case strings.EqualFold("ForbiddenException", errorCode):
24839		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24840
24841	case strings.EqualFold("ServiceFailureException", errorCode):
24842		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24843
24844	case strings.EqualFold("ServiceUnavailableException", errorCode):
24845		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24846
24847	case strings.EqualFold("ThrottledClientException", errorCode):
24848		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24849
24850	case strings.EqualFold("UnauthorizedClientException", errorCode):
24851		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24852
24853	default:
24854		genericError := &smithy.GenericAPIError{
24855			Code:    errorCode,
24856			Message: errorMessage,
24857		}
24858		return genericError
24859
24860	}
24861}
24862
24863func awsRestjson1_deserializeOpDocumentSendChannelMessageOutput(v **SendChannelMessageOutput, value interface{}) error {
24864	if v == nil {
24865		return fmt.Errorf("unexpected nil of type %T", v)
24866	}
24867	if value == nil {
24868		return nil
24869	}
24870
24871	shape, ok := value.(map[string]interface{})
24872	if !ok {
24873		return fmt.Errorf("unexpected JSON type %v", value)
24874	}
24875
24876	var sv *SendChannelMessageOutput
24877	if *v == nil {
24878		sv = &SendChannelMessageOutput{}
24879	} else {
24880		sv = *v
24881	}
24882
24883	for key, value := range shape {
24884		switch key {
24885		case "ChannelArn":
24886			if value != nil {
24887				jtv, ok := value.(string)
24888				if !ok {
24889					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
24890				}
24891				sv.ChannelArn = ptr.String(jtv)
24892			}
24893
24894		case "MessageId":
24895			if value != nil {
24896				jtv, ok := value.(string)
24897				if !ok {
24898					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
24899				}
24900				sv.MessageId = ptr.String(jtv)
24901			}
24902
24903		default:
24904			_, _ = key, value
24905
24906		}
24907	}
24908	*v = sv
24909	return nil
24910}
24911
24912type awsRestjson1_deserializeOpStartMeetingTranscription struct {
24913}
24914
24915func (*awsRestjson1_deserializeOpStartMeetingTranscription) ID() string {
24916	return "OperationDeserializer"
24917}
24918
24919func (m *awsRestjson1_deserializeOpStartMeetingTranscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24920	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24921) {
24922	out, metadata, err = next.HandleDeserialize(ctx, in)
24923	if err != nil {
24924		return out, metadata, err
24925	}
24926
24927	response, ok := out.RawResponse.(*smithyhttp.Response)
24928	if !ok {
24929		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24930	}
24931
24932	if response.StatusCode < 200 || response.StatusCode >= 300 {
24933		return out, metadata, awsRestjson1_deserializeOpErrorStartMeetingTranscription(response, &metadata)
24934	}
24935	output := &StartMeetingTranscriptionOutput{}
24936	out.Result = output
24937
24938	return out, metadata, err
24939}
24940
24941func awsRestjson1_deserializeOpErrorStartMeetingTranscription(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24942	var errorBuffer bytes.Buffer
24943	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24944		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24945	}
24946	errorBody := bytes.NewReader(errorBuffer.Bytes())
24947
24948	errorCode := "UnknownError"
24949	errorMessage := errorCode
24950
24951	code := response.Header.Get("X-Amzn-ErrorType")
24952	if len(code) != 0 {
24953		errorCode = restjson.SanitizeErrorCode(code)
24954	}
24955
24956	var buff [1024]byte
24957	ringBuffer := smithyio.NewRingBuffer(buff[:])
24958
24959	body := io.TeeReader(errorBody, ringBuffer)
24960	decoder := json.NewDecoder(body)
24961	decoder.UseNumber()
24962	code, message, err := restjson.GetErrorInfo(decoder)
24963	if err != nil {
24964		var snapshot bytes.Buffer
24965		io.Copy(&snapshot, ringBuffer)
24966		err = &smithy.DeserializationError{
24967			Err:      fmt.Errorf("failed to decode response body, %w", err),
24968			Snapshot: snapshot.Bytes(),
24969		}
24970		return err
24971	}
24972
24973	errorBody.Seek(0, io.SeekStart)
24974	if len(code) != 0 {
24975		errorCode = restjson.SanitizeErrorCode(code)
24976	}
24977	if len(message) != 0 {
24978		errorMessage = message
24979	}
24980
24981	switch {
24982	case strings.EqualFold("BadRequestException", errorCode):
24983		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24984
24985	case strings.EqualFold("ForbiddenException", errorCode):
24986		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24987
24988	case strings.EqualFold("NotFoundException", errorCode):
24989		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24990
24991	case strings.EqualFold("ResourceLimitExceededException", errorCode):
24992		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
24993
24994	case strings.EqualFold("ServiceFailureException", errorCode):
24995		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24996
24997	case strings.EqualFold("ServiceUnavailableException", errorCode):
24998		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24999
25000	case strings.EqualFold("ThrottledClientException", errorCode):
25001		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25002
25003	case strings.EqualFold("UnauthorizedClientException", errorCode):
25004		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25005
25006	case strings.EqualFold("UnprocessableEntityException", errorCode):
25007		return awsRestjson1_deserializeErrorUnprocessableEntityException(response, errorBody)
25008
25009	default:
25010		genericError := &smithy.GenericAPIError{
25011			Code:    errorCode,
25012			Message: errorMessage,
25013		}
25014		return genericError
25015
25016	}
25017}
25018
25019type awsRestjson1_deserializeOpStopMeetingTranscription struct {
25020}
25021
25022func (*awsRestjson1_deserializeOpStopMeetingTranscription) ID() string {
25023	return "OperationDeserializer"
25024}
25025
25026func (m *awsRestjson1_deserializeOpStopMeetingTranscription) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25027	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25028) {
25029	out, metadata, err = next.HandleDeserialize(ctx, in)
25030	if err != nil {
25031		return out, metadata, err
25032	}
25033
25034	response, ok := out.RawResponse.(*smithyhttp.Response)
25035	if !ok {
25036		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25037	}
25038
25039	if response.StatusCode < 200 || response.StatusCode >= 300 {
25040		return out, metadata, awsRestjson1_deserializeOpErrorStopMeetingTranscription(response, &metadata)
25041	}
25042	output := &StopMeetingTranscriptionOutput{}
25043	out.Result = output
25044
25045	return out, metadata, err
25046}
25047
25048func awsRestjson1_deserializeOpErrorStopMeetingTranscription(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25049	var errorBuffer bytes.Buffer
25050	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25051		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25052	}
25053	errorBody := bytes.NewReader(errorBuffer.Bytes())
25054
25055	errorCode := "UnknownError"
25056	errorMessage := errorCode
25057
25058	code := response.Header.Get("X-Amzn-ErrorType")
25059	if len(code) != 0 {
25060		errorCode = restjson.SanitizeErrorCode(code)
25061	}
25062
25063	var buff [1024]byte
25064	ringBuffer := smithyio.NewRingBuffer(buff[:])
25065
25066	body := io.TeeReader(errorBody, ringBuffer)
25067	decoder := json.NewDecoder(body)
25068	decoder.UseNumber()
25069	code, message, err := restjson.GetErrorInfo(decoder)
25070	if err != nil {
25071		var snapshot bytes.Buffer
25072		io.Copy(&snapshot, ringBuffer)
25073		err = &smithy.DeserializationError{
25074			Err:      fmt.Errorf("failed to decode response body, %w", err),
25075			Snapshot: snapshot.Bytes(),
25076		}
25077		return err
25078	}
25079
25080	errorBody.Seek(0, io.SeekStart)
25081	if len(code) != 0 {
25082		errorCode = restjson.SanitizeErrorCode(code)
25083	}
25084	if len(message) != 0 {
25085		errorMessage = message
25086	}
25087
25088	switch {
25089	case strings.EqualFold("BadRequestException", errorCode):
25090		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25091
25092	case strings.EqualFold("ForbiddenException", errorCode):
25093		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25094
25095	case strings.EqualFold("NotFoundException", errorCode):
25096		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25097
25098	case strings.EqualFold("ServiceFailureException", errorCode):
25099		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25100
25101	case strings.EqualFold("ServiceUnavailableException", errorCode):
25102		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25103
25104	case strings.EqualFold("ThrottledClientException", errorCode):
25105		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25106
25107	case strings.EqualFold("UnauthorizedClientException", errorCode):
25108		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25109
25110	case strings.EqualFold("UnprocessableEntityException", errorCode):
25111		return awsRestjson1_deserializeErrorUnprocessableEntityException(response, errorBody)
25112
25113	default:
25114		genericError := &smithy.GenericAPIError{
25115			Code:    errorCode,
25116			Message: errorMessage,
25117		}
25118		return genericError
25119
25120	}
25121}
25122
25123type awsRestjson1_deserializeOpTagAttendee struct {
25124}
25125
25126func (*awsRestjson1_deserializeOpTagAttendee) ID() string {
25127	return "OperationDeserializer"
25128}
25129
25130func (m *awsRestjson1_deserializeOpTagAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25131	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25132) {
25133	out, metadata, err = next.HandleDeserialize(ctx, in)
25134	if err != nil {
25135		return out, metadata, err
25136	}
25137
25138	response, ok := out.RawResponse.(*smithyhttp.Response)
25139	if !ok {
25140		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25141	}
25142
25143	if response.StatusCode < 200 || response.StatusCode >= 300 {
25144		return out, metadata, awsRestjson1_deserializeOpErrorTagAttendee(response, &metadata)
25145	}
25146	output := &TagAttendeeOutput{}
25147	out.Result = output
25148
25149	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25150		return out, metadata, &smithy.DeserializationError{
25151			Err: fmt.Errorf("failed to discard response body, %w", err),
25152		}
25153	}
25154
25155	return out, metadata, err
25156}
25157
25158func awsRestjson1_deserializeOpErrorTagAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25159	var errorBuffer bytes.Buffer
25160	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25161		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25162	}
25163	errorBody := bytes.NewReader(errorBuffer.Bytes())
25164
25165	errorCode := "UnknownError"
25166	errorMessage := errorCode
25167
25168	code := response.Header.Get("X-Amzn-ErrorType")
25169	if len(code) != 0 {
25170		errorCode = restjson.SanitizeErrorCode(code)
25171	}
25172
25173	var buff [1024]byte
25174	ringBuffer := smithyio.NewRingBuffer(buff[:])
25175
25176	body := io.TeeReader(errorBody, ringBuffer)
25177	decoder := json.NewDecoder(body)
25178	decoder.UseNumber()
25179	code, message, err := restjson.GetErrorInfo(decoder)
25180	if err != nil {
25181		var snapshot bytes.Buffer
25182		io.Copy(&snapshot, ringBuffer)
25183		err = &smithy.DeserializationError{
25184			Err:      fmt.Errorf("failed to decode response body, %w", err),
25185			Snapshot: snapshot.Bytes(),
25186		}
25187		return err
25188	}
25189
25190	errorBody.Seek(0, io.SeekStart)
25191	if len(code) != 0 {
25192		errorCode = restjson.SanitizeErrorCode(code)
25193	}
25194	if len(message) != 0 {
25195		errorMessage = message
25196	}
25197
25198	switch {
25199	case strings.EqualFold("BadRequestException", errorCode):
25200		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25201
25202	case strings.EqualFold("ForbiddenException", errorCode):
25203		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25204
25205	case strings.EqualFold("NotFoundException", errorCode):
25206		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25207
25208	case strings.EqualFold("ResourceLimitExceededException", errorCode):
25209		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
25210
25211	case strings.EqualFold("ServiceFailureException", errorCode):
25212		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25213
25214	case strings.EqualFold("ServiceUnavailableException", errorCode):
25215		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25216
25217	case strings.EqualFold("ThrottledClientException", errorCode):
25218		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25219
25220	case strings.EqualFold("UnauthorizedClientException", errorCode):
25221		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25222
25223	default:
25224		genericError := &smithy.GenericAPIError{
25225			Code:    errorCode,
25226			Message: errorMessage,
25227		}
25228		return genericError
25229
25230	}
25231}
25232
25233type awsRestjson1_deserializeOpTagMeeting struct {
25234}
25235
25236func (*awsRestjson1_deserializeOpTagMeeting) ID() string {
25237	return "OperationDeserializer"
25238}
25239
25240func (m *awsRestjson1_deserializeOpTagMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25241	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25242) {
25243	out, metadata, err = next.HandleDeserialize(ctx, in)
25244	if err != nil {
25245		return out, metadata, err
25246	}
25247
25248	response, ok := out.RawResponse.(*smithyhttp.Response)
25249	if !ok {
25250		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25251	}
25252
25253	if response.StatusCode < 200 || response.StatusCode >= 300 {
25254		return out, metadata, awsRestjson1_deserializeOpErrorTagMeeting(response, &metadata)
25255	}
25256	output := &TagMeetingOutput{}
25257	out.Result = output
25258
25259	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25260		return out, metadata, &smithy.DeserializationError{
25261			Err: fmt.Errorf("failed to discard response body, %w", err),
25262		}
25263	}
25264
25265	return out, metadata, err
25266}
25267
25268func awsRestjson1_deserializeOpErrorTagMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25269	var errorBuffer bytes.Buffer
25270	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25271		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25272	}
25273	errorBody := bytes.NewReader(errorBuffer.Bytes())
25274
25275	errorCode := "UnknownError"
25276	errorMessage := errorCode
25277
25278	code := response.Header.Get("X-Amzn-ErrorType")
25279	if len(code) != 0 {
25280		errorCode = restjson.SanitizeErrorCode(code)
25281	}
25282
25283	var buff [1024]byte
25284	ringBuffer := smithyio.NewRingBuffer(buff[:])
25285
25286	body := io.TeeReader(errorBody, ringBuffer)
25287	decoder := json.NewDecoder(body)
25288	decoder.UseNumber()
25289	code, message, err := restjson.GetErrorInfo(decoder)
25290	if err != nil {
25291		var snapshot bytes.Buffer
25292		io.Copy(&snapshot, ringBuffer)
25293		err = &smithy.DeserializationError{
25294			Err:      fmt.Errorf("failed to decode response body, %w", err),
25295			Snapshot: snapshot.Bytes(),
25296		}
25297		return err
25298	}
25299
25300	errorBody.Seek(0, io.SeekStart)
25301	if len(code) != 0 {
25302		errorCode = restjson.SanitizeErrorCode(code)
25303	}
25304	if len(message) != 0 {
25305		errorMessage = message
25306	}
25307
25308	switch {
25309	case strings.EqualFold("BadRequestException", errorCode):
25310		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25311
25312	case strings.EqualFold("ForbiddenException", errorCode):
25313		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25314
25315	case strings.EqualFold("NotFoundException", errorCode):
25316		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25317
25318	case strings.EqualFold("ResourceLimitExceededException", errorCode):
25319		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
25320
25321	case strings.EqualFold("ServiceFailureException", errorCode):
25322		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25323
25324	case strings.EqualFold("ServiceUnavailableException", errorCode):
25325		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25326
25327	case strings.EqualFold("ThrottledClientException", errorCode):
25328		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25329
25330	case strings.EqualFold("UnauthorizedClientException", errorCode):
25331		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25332
25333	default:
25334		genericError := &smithy.GenericAPIError{
25335			Code:    errorCode,
25336			Message: errorMessage,
25337		}
25338		return genericError
25339
25340	}
25341}
25342
25343type awsRestjson1_deserializeOpTagResource struct {
25344}
25345
25346func (*awsRestjson1_deserializeOpTagResource) ID() string {
25347	return "OperationDeserializer"
25348}
25349
25350func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25351	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25352) {
25353	out, metadata, err = next.HandleDeserialize(ctx, in)
25354	if err != nil {
25355		return out, metadata, err
25356	}
25357
25358	response, ok := out.RawResponse.(*smithyhttp.Response)
25359	if !ok {
25360		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25361	}
25362
25363	if response.StatusCode < 200 || response.StatusCode >= 300 {
25364		return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata)
25365	}
25366	output := &TagResourceOutput{}
25367	out.Result = output
25368
25369	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25370		return out, metadata, &smithy.DeserializationError{
25371			Err: fmt.Errorf("failed to discard response body, %w", err),
25372		}
25373	}
25374
25375	return out, metadata, err
25376}
25377
25378func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25379	var errorBuffer bytes.Buffer
25380	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25381		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25382	}
25383	errorBody := bytes.NewReader(errorBuffer.Bytes())
25384
25385	errorCode := "UnknownError"
25386	errorMessage := errorCode
25387
25388	code := response.Header.Get("X-Amzn-ErrorType")
25389	if len(code) != 0 {
25390		errorCode = restjson.SanitizeErrorCode(code)
25391	}
25392
25393	var buff [1024]byte
25394	ringBuffer := smithyio.NewRingBuffer(buff[:])
25395
25396	body := io.TeeReader(errorBody, ringBuffer)
25397	decoder := json.NewDecoder(body)
25398	decoder.UseNumber()
25399	code, message, err := restjson.GetErrorInfo(decoder)
25400	if err != nil {
25401		var snapshot bytes.Buffer
25402		io.Copy(&snapshot, ringBuffer)
25403		err = &smithy.DeserializationError{
25404			Err:      fmt.Errorf("failed to decode response body, %w", err),
25405			Snapshot: snapshot.Bytes(),
25406		}
25407		return err
25408	}
25409
25410	errorBody.Seek(0, io.SeekStart)
25411	if len(code) != 0 {
25412		errorCode = restjson.SanitizeErrorCode(code)
25413	}
25414	if len(message) != 0 {
25415		errorMessage = message
25416	}
25417
25418	switch {
25419	case strings.EqualFold("BadRequestException", errorCode):
25420		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25421
25422	case strings.EqualFold("ForbiddenException", errorCode):
25423		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25424
25425	case strings.EqualFold("NotFoundException", errorCode):
25426		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25427
25428	case strings.EqualFold("ServiceFailureException", errorCode):
25429		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25430
25431	case strings.EqualFold("ServiceUnavailableException", errorCode):
25432		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25433
25434	case strings.EqualFold("UnauthorizedClientException", errorCode):
25435		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25436
25437	default:
25438		genericError := &smithy.GenericAPIError{
25439			Code:    errorCode,
25440			Message: errorMessage,
25441		}
25442		return genericError
25443
25444	}
25445}
25446
25447type awsRestjson1_deserializeOpUntagAttendee struct {
25448}
25449
25450func (*awsRestjson1_deserializeOpUntagAttendee) ID() string {
25451	return "OperationDeserializer"
25452}
25453
25454func (m *awsRestjson1_deserializeOpUntagAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25455	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25456) {
25457	out, metadata, err = next.HandleDeserialize(ctx, in)
25458	if err != nil {
25459		return out, metadata, err
25460	}
25461
25462	response, ok := out.RawResponse.(*smithyhttp.Response)
25463	if !ok {
25464		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25465	}
25466
25467	if response.StatusCode < 200 || response.StatusCode >= 300 {
25468		return out, metadata, awsRestjson1_deserializeOpErrorUntagAttendee(response, &metadata)
25469	}
25470	output := &UntagAttendeeOutput{}
25471	out.Result = output
25472
25473	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25474		return out, metadata, &smithy.DeserializationError{
25475			Err: fmt.Errorf("failed to discard response body, %w", err),
25476		}
25477	}
25478
25479	return out, metadata, err
25480}
25481
25482func awsRestjson1_deserializeOpErrorUntagAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25483	var errorBuffer bytes.Buffer
25484	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25485		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25486	}
25487	errorBody := bytes.NewReader(errorBuffer.Bytes())
25488
25489	errorCode := "UnknownError"
25490	errorMessage := errorCode
25491
25492	code := response.Header.Get("X-Amzn-ErrorType")
25493	if len(code) != 0 {
25494		errorCode = restjson.SanitizeErrorCode(code)
25495	}
25496
25497	var buff [1024]byte
25498	ringBuffer := smithyio.NewRingBuffer(buff[:])
25499
25500	body := io.TeeReader(errorBody, ringBuffer)
25501	decoder := json.NewDecoder(body)
25502	decoder.UseNumber()
25503	code, message, err := restjson.GetErrorInfo(decoder)
25504	if err != nil {
25505		var snapshot bytes.Buffer
25506		io.Copy(&snapshot, ringBuffer)
25507		err = &smithy.DeserializationError{
25508			Err:      fmt.Errorf("failed to decode response body, %w", err),
25509			Snapshot: snapshot.Bytes(),
25510		}
25511		return err
25512	}
25513
25514	errorBody.Seek(0, io.SeekStart)
25515	if len(code) != 0 {
25516		errorCode = restjson.SanitizeErrorCode(code)
25517	}
25518	if len(message) != 0 {
25519		errorMessage = message
25520	}
25521
25522	switch {
25523	case strings.EqualFold("BadRequestException", errorCode):
25524		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25525
25526	case strings.EqualFold("ForbiddenException", errorCode):
25527		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25528
25529	case strings.EqualFold("NotFoundException", errorCode):
25530		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25531
25532	case strings.EqualFold("ServiceFailureException", errorCode):
25533		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25534
25535	case strings.EqualFold("ServiceUnavailableException", errorCode):
25536		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25537
25538	case strings.EqualFold("ThrottledClientException", errorCode):
25539		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25540
25541	case strings.EqualFold("UnauthorizedClientException", errorCode):
25542		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25543
25544	default:
25545		genericError := &smithy.GenericAPIError{
25546			Code:    errorCode,
25547			Message: errorMessage,
25548		}
25549		return genericError
25550
25551	}
25552}
25553
25554type awsRestjson1_deserializeOpUntagMeeting struct {
25555}
25556
25557func (*awsRestjson1_deserializeOpUntagMeeting) ID() string {
25558	return "OperationDeserializer"
25559}
25560
25561func (m *awsRestjson1_deserializeOpUntagMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25562	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25563) {
25564	out, metadata, err = next.HandleDeserialize(ctx, in)
25565	if err != nil {
25566		return out, metadata, err
25567	}
25568
25569	response, ok := out.RawResponse.(*smithyhttp.Response)
25570	if !ok {
25571		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25572	}
25573
25574	if response.StatusCode < 200 || response.StatusCode >= 300 {
25575		return out, metadata, awsRestjson1_deserializeOpErrorUntagMeeting(response, &metadata)
25576	}
25577	output := &UntagMeetingOutput{}
25578	out.Result = output
25579
25580	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25581		return out, metadata, &smithy.DeserializationError{
25582			Err: fmt.Errorf("failed to discard response body, %w", err),
25583		}
25584	}
25585
25586	return out, metadata, err
25587}
25588
25589func awsRestjson1_deserializeOpErrorUntagMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25590	var errorBuffer bytes.Buffer
25591	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25592		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25593	}
25594	errorBody := bytes.NewReader(errorBuffer.Bytes())
25595
25596	errorCode := "UnknownError"
25597	errorMessage := errorCode
25598
25599	code := response.Header.Get("X-Amzn-ErrorType")
25600	if len(code) != 0 {
25601		errorCode = restjson.SanitizeErrorCode(code)
25602	}
25603
25604	var buff [1024]byte
25605	ringBuffer := smithyio.NewRingBuffer(buff[:])
25606
25607	body := io.TeeReader(errorBody, ringBuffer)
25608	decoder := json.NewDecoder(body)
25609	decoder.UseNumber()
25610	code, message, err := restjson.GetErrorInfo(decoder)
25611	if err != nil {
25612		var snapshot bytes.Buffer
25613		io.Copy(&snapshot, ringBuffer)
25614		err = &smithy.DeserializationError{
25615			Err:      fmt.Errorf("failed to decode response body, %w", err),
25616			Snapshot: snapshot.Bytes(),
25617		}
25618		return err
25619	}
25620
25621	errorBody.Seek(0, io.SeekStart)
25622	if len(code) != 0 {
25623		errorCode = restjson.SanitizeErrorCode(code)
25624	}
25625	if len(message) != 0 {
25626		errorMessage = message
25627	}
25628
25629	switch {
25630	case strings.EqualFold("BadRequestException", errorCode):
25631		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25632
25633	case strings.EqualFold("ForbiddenException", errorCode):
25634		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25635
25636	case strings.EqualFold("NotFoundException", errorCode):
25637		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25638
25639	case strings.EqualFold("ServiceFailureException", errorCode):
25640		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25641
25642	case strings.EqualFold("ServiceUnavailableException", errorCode):
25643		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25644
25645	case strings.EqualFold("ThrottledClientException", errorCode):
25646		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25647
25648	case strings.EqualFold("UnauthorizedClientException", errorCode):
25649		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25650
25651	default:
25652		genericError := &smithy.GenericAPIError{
25653			Code:    errorCode,
25654			Message: errorMessage,
25655		}
25656		return genericError
25657
25658	}
25659}
25660
25661type awsRestjson1_deserializeOpUntagResource struct {
25662}
25663
25664func (*awsRestjson1_deserializeOpUntagResource) ID() string {
25665	return "OperationDeserializer"
25666}
25667
25668func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25669	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25670) {
25671	out, metadata, err = next.HandleDeserialize(ctx, in)
25672	if err != nil {
25673		return out, metadata, err
25674	}
25675
25676	response, ok := out.RawResponse.(*smithyhttp.Response)
25677	if !ok {
25678		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25679	}
25680
25681	if response.StatusCode < 200 || response.StatusCode >= 300 {
25682		return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata)
25683	}
25684	output := &UntagResourceOutput{}
25685	out.Result = output
25686
25687	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25688		return out, metadata, &smithy.DeserializationError{
25689			Err: fmt.Errorf("failed to discard response body, %w", err),
25690		}
25691	}
25692
25693	return out, metadata, err
25694}
25695
25696func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25697	var errorBuffer bytes.Buffer
25698	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25699		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25700	}
25701	errorBody := bytes.NewReader(errorBuffer.Bytes())
25702
25703	errorCode := "UnknownError"
25704	errorMessage := errorCode
25705
25706	code := response.Header.Get("X-Amzn-ErrorType")
25707	if len(code) != 0 {
25708		errorCode = restjson.SanitizeErrorCode(code)
25709	}
25710
25711	var buff [1024]byte
25712	ringBuffer := smithyio.NewRingBuffer(buff[:])
25713
25714	body := io.TeeReader(errorBody, ringBuffer)
25715	decoder := json.NewDecoder(body)
25716	decoder.UseNumber()
25717	code, message, err := restjson.GetErrorInfo(decoder)
25718	if err != nil {
25719		var snapshot bytes.Buffer
25720		io.Copy(&snapshot, ringBuffer)
25721		err = &smithy.DeserializationError{
25722			Err:      fmt.Errorf("failed to decode response body, %w", err),
25723			Snapshot: snapshot.Bytes(),
25724		}
25725		return err
25726	}
25727
25728	errorBody.Seek(0, io.SeekStart)
25729	if len(code) != 0 {
25730		errorCode = restjson.SanitizeErrorCode(code)
25731	}
25732	if len(message) != 0 {
25733		errorMessage = message
25734	}
25735
25736	switch {
25737	case strings.EqualFold("BadRequestException", errorCode):
25738		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25739
25740	case strings.EqualFold("ForbiddenException", errorCode):
25741		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25742
25743	case strings.EqualFold("NotFoundException", errorCode):
25744		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25745
25746	case strings.EqualFold("ServiceFailureException", errorCode):
25747		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25748
25749	case strings.EqualFold("ServiceUnavailableException", errorCode):
25750		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25751
25752	case strings.EqualFold("UnauthorizedClientException", errorCode):
25753		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25754
25755	default:
25756		genericError := &smithy.GenericAPIError{
25757			Code:    errorCode,
25758			Message: errorMessage,
25759		}
25760		return genericError
25761
25762	}
25763}
25764
25765type awsRestjson1_deserializeOpUpdateAccount struct {
25766}
25767
25768func (*awsRestjson1_deserializeOpUpdateAccount) ID() string {
25769	return "OperationDeserializer"
25770}
25771
25772func (m *awsRestjson1_deserializeOpUpdateAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25773	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25774) {
25775	out, metadata, err = next.HandleDeserialize(ctx, in)
25776	if err != nil {
25777		return out, metadata, err
25778	}
25779
25780	response, ok := out.RawResponse.(*smithyhttp.Response)
25781	if !ok {
25782		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25783	}
25784
25785	if response.StatusCode < 200 || response.StatusCode >= 300 {
25786		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccount(response, &metadata)
25787	}
25788	output := &UpdateAccountOutput{}
25789	out.Result = output
25790
25791	var buff [1024]byte
25792	ringBuffer := smithyio.NewRingBuffer(buff[:])
25793
25794	body := io.TeeReader(response.Body, ringBuffer)
25795
25796	decoder := json.NewDecoder(body)
25797	decoder.UseNumber()
25798	var shape interface{}
25799	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
25800		var snapshot bytes.Buffer
25801		io.Copy(&snapshot, ringBuffer)
25802		err = &smithy.DeserializationError{
25803			Err:      fmt.Errorf("failed to decode response body, %w", err),
25804			Snapshot: snapshot.Bytes(),
25805		}
25806		return out, metadata, err
25807	}
25808
25809	err = awsRestjson1_deserializeOpDocumentUpdateAccountOutput(&output, shape)
25810	if err != nil {
25811		var snapshot bytes.Buffer
25812		io.Copy(&snapshot, ringBuffer)
25813		return out, metadata, &smithy.DeserializationError{
25814			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
25815			Snapshot: snapshot.Bytes(),
25816		}
25817	}
25818
25819	return out, metadata, err
25820}
25821
25822func awsRestjson1_deserializeOpErrorUpdateAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25823	var errorBuffer bytes.Buffer
25824	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25825		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25826	}
25827	errorBody := bytes.NewReader(errorBuffer.Bytes())
25828
25829	errorCode := "UnknownError"
25830	errorMessage := errorCode
25831
25832	code := response.Header.Get("X-Amzn-ErrorType")
25833	if len(code) != 0 {
25834		errorCode = restjson.SanitizeErrorCode(code)
25835	}
25836
25837	var buff [1024]byte
25838	ringBuffer := smithyio.NewRingBuffer(buff[:])
25839
25840	body := io.TeeReader(errorBody, ringBuffer)
25841	decoder := json.NewDecoder(body)
25842	decoder.UseNumber()
25843	code, message, err := restjson.GetErrorInfo(decoder)
25844	if err != nil {
25845		var snapshot bytes.Buffer
25846		io.Copy(&snapshot, ringBuffer)
25847		err = &smithy.DeserializationError{
25848			Err:      fmt.Errorf("failed to decode response body, %w", err),
25849			Snapshot: snapshot.Bytes(),
25850		}
25851		return err
25852	}
25853
25854	errorBody.Seek(0, io.SeekStart)
25855	if len(code) != 0 {
25856		errorCode = restjson.SanitizeErrorCode(code)
25857	}
25858	if len(message) != 0 {
25859		errorMessage = message
25860	}
25861
25862	switch {
25863	case strings.EqualFold("BadRequestException", errorCode):
25864		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25865
25866	case strings.EqualFold("ForbiddenException", errorCode):
25867		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25868
25869	case strings.EqualFold("NotFoundException", errorCode):
25870		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25871
25872	case strings.EqualFold("ServiceFailureException", errorCode):
25873		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25874
25875	case strings.EqualFold("ServiceUnavailableException", errorCode):
25876		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25877
25878	case strings.EqualFold("ThrottledClientException", errorCode):
25879		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25880
25881	case strings.EqualFold("UnauthorizedClientException", errorCode):
25882		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25883
25884	default:
25885		genericError := &smithy.GenericAPIError{
25886			Code:    errorCode,
25887			Message: errorMessage,
25888		}
25889		return genericError
25890
25891	}
25892}
25893
25894func awsRestjson1_deserializeOpDocumentUpdateAccountOutput(v **UpdateAccountOutput, value interface{}) error {
25895	if v == nil {
25896		return fmt.Errorf("unexpected nil of type %T", v)
25897	}
25898	if value == nil {
25899		return nil
25900	}
25901
25902	shape, ok := value.(map[string]interface{})
25903	if !ok {
25904		return fmt.Errorf("unexpected JSON type %v", value)
25905	}
25906
25907	var sv *UpdateAccountOutput
25908	if *v == nil {
25909		sv = &UpdateAccountOutput{}
25910	} else {
25911		sv = *v
25912	}
25913
25914	for key, value := range shape {
25915		switch key {
25916		case "Account":
25917			if err := awsRestjson1_deserializeDocumentAccount(&sv.Account, value); err != nil {
25918				return err
25919			}
25920
25921		default:
25922			_, _ = key, value
25923
25924		}
25925	}
25926	*v = sv
25927	return nil
25928}
25929
25930type awsRestjson1_deserializeOpUpdateAccountSettings struct {
25931}
25932
25933func (*awsRestjson1_deserializeOpUpdateAccountSettings) ID() string {
25934	return "OperationDeserializer"
25935}
25936
25937func (m *awsRestjson1_deserializeOpUpdateAccountSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25938	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25939) {
25940	out, metadata, err = next.HandleDeserialize(ctx, in)
25941	if err != nil {
25942		return out, metadata, err
25943	}
25944
25945	response, ok := out.RawResponse.(*smithyhttp.Response)
25946	if !ok {
25947		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25948	}
25949
25950	if response.StatusCode < 200 || response.StatusCode >= 300 {
25951		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccountSettings(response, &metadata)
25952	}
25953	output := &UpdateAccountSettingsOutput{}
25954	out.Result = output
25955
25956	return out, metadata, err
25957}
25958
25959func awsRestjson1_deserializeOpErrorUpdateAccountSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25960	var errorBuffer bytes.Buffer
25961	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25962		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25963	}
25964	errorBody := bytes.NewReader(errorBuffer.Bytes())
25965
25966	errorCode := "UnknownError"
25967	errorMessage := errorCode
25968
25969	code := response.Header.Get("X-Amzn-ErrorType")
25970	if len(code) != 0 {
25971		errorCode = restjson.SanitizeErrorCode(code)
25972	}
25973
25974	var buff [1024]byte
25975	ringBuffer := smithyio.NewRingBuffer(buff[:])
25976
25977	body := io.TeeReader(errorBody, ringBuffer)
25978	decoder := json.NewDecoder(body)
25979	decoder.UseNumber()
25980	code, message, err := restjson.GetErrorInfo(decoder)
25981	if err != nil {
25982		var snapshot bytes.Buffer
25983		io.Copy(&snapshot, ringBuffer)
25984		err = &smithy.DeserializationError{
25985			Err:      fmt.Errorf("failed to decode response body, %w", err),
25986			Snapshot: snapshot.Bytes(),
25987		}
25988		return err
25989	}
25990
25991	errorBody.Seek(0, io.SeekStart)
25992	if len(code) != 0 {
25993		errorCode = restjson.SanitizeErrorCode(code)
25994	}
25995	if len(message) != 0 {
25996		errorMessage = message
25997	}
25998
25999	switch {
26000	case strings.EqualFold("BadRequestException", errorCode):
26001		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26002
26003	case strings.EqualFold("ConflictException", errorCode):
26004		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26005
26006	case strings.EqualFold("ForbiddenException", errorCode):
26007		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26008
26009	case strings.EqualFold("NotFoundException", errorCode):
26010		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26011
26012	case strings.EqualFold("ServiceFailureException", errorCode):
26013		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26014
26015	case strings.EqualFold("ServiceUnavailableException", errorCode):
26016		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26017
26018	case strings.EqualFold("ThrottledClientException", errorCode):
26019		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26020
26021	case strings.EqualFold("UnauthorizedClientException", errorCode):
26022		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26023
26024	default:
26025		genericError := &smithy.GenericAPIError{
26026			Code:    errorCode,
26027			Message: errorMessage,
26028		}
26029		return genericError
26030
26031	}
26032}
26033
26034type awsRestjson1_deserializeOpUpdateAppInstance struct {
26035}
26036
26037func (*awsRestjson1_deserializeOpUpdateAppInstance) ID() string {
26038	return "OperationDeserializer"
26039}
26040
26041func (m *awsRestjson1_deserializeOpUpdateAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26042	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26043) {
26044	out, metadata, err = next.HandleDeserialize(ctx, in)
26045	if err != nil {
26046		return out, metadata, err
26047	}
26048
26049	response, ok := out.RawResponse.(*smithyhttp.Response)
26050	if !ok {
26051		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26052	}
26053
26054	if response.StatusCode < 200 || response.StatusCode >= 300 {
26055		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAppInstance(response, &metadata)
26056	}
26057	output := &UpdateAppInstanceOutput{}
26058	out.Result = output
26059
26060	var buff [1024]byte
26061	ringBuffer := smithyio.NewRingBuffer(buff[:])
26062
26063	body := io.TeeReader(response.Body, ringBuffer)
26064
26065	decoder := json.NewDecoder(body)
26066	decoder.UseNumber()
26067	var shape interface{}
26068	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26069		var snapshot bytes.Buffer
26070		io.Copy(&snapshot, ringBuffer)
26071		err = &smithy.DeserializationError{
26072			Err:      fmt.Errorf("failed to decode response body, %w", err),
26073			Snapshot: snapshot.Bytes(),
26074		}
26075		return out, metadata, err
26076	}
26077
26078	err = awsRestjson1_deserializeOpDocumentUpdateAppInstanceOutput(&output, shape)
26079	if err != nil {
26080		var snapshot bytes.Buffer
26081		io.Copy(&snapshot, ringBuffer)
26082		return out, metadata, &smithy.DeserializationError{
26083			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26084			Snapshot: snapshot.Bytes(),
26085		}
26086	}
26087
26088	return out, metadata, err
26089}
26090
26091func awsRestjson1_deserializeOpErrorUpdateAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26092	var errorBuffer bytes.Buffer
26093	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26094		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26095	}
26096	errorBody := bytes.NewReader(errorBuffer.Bytes())
26097
26098	errorCode := "UnknownError"
26099	errorMessage := errorCode
26100
26101	code := response.Header.Get("X-Amzn-ErrorType")
26102	if len(code) != 0 {
26103		errorCode = restjson.SanitizeErrorCode(code)
26104	}
26105
26106	var buff [1024]byte
26107	ringBuffer := smithyio.NewRingBuffer(buff[:])
26108
26109	body := io.TeeReader(errorBody, ringBuffer)
26110	decoder := json.NewDecoder(body)
26111	decoder.UseNumber()
26112	code, message, err := restjson.GetErrorInfo(decoder)
26113	if err != nil {
26114		var snapshot bytes.Buffer
26115		io.Copy(&snapshot, ringBuffer)
26116		err = &smithy.DeserializationError{
26117			Err:      fmt.Errorf("failed to decode response body, %w", err),
26118			Snapshot: snapshot.Bytes(),
26119		}
26120		return err
26121	}
26122
26123	errorBody.Seek(0, io.SeekStart)
26124	if len(code) != 0 {
26125		errorCode = restjson.SanitizeErrorCode(code)
26126	}
26127	if len(message) != 0 {
26128		errorMessage = message
26129	}
26130
26131	switch {
26132	case strings.EqualFold("BadRequestException", errorCode):
26133		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26134
26135	case strings.EqualFold("ConflictException", errorCode):
26136		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26137
26138	case strings.EqualFold("ForbiddenException", errorCode):
26139		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26140
26141	case strings.EqualFold("ServiceFailureException", errorCode):
26142		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26143
26144	case strings.EqualFold("ServiceUnavailableException", errorCode):
26145		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26146
26147	case strings.EqualFold("ThrottledClientException", errorCode):
26148		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26149
26150	case strings.EqualFold("UnauthorizedClientException", errorCode):
26151		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26152
26153	default:
26154		genericError := &smithy.GenericAPIError{
26155			Code:    errorCode,
26156			Message: errorMessage,
26157		}
26158		return genericError
26159
26160	}
26161}
26162
26163func awsRestjson1_deserializeOpDocumentUpdateAppInstanceOutput(v **UpdateAppInstanceOutput, value interface{}) error {
26164	if v == nil {
26165		return fmt.Errorf("unexpected nil of type %T", v)
26166	}
26167	if value == nil {
26168		return nil
26169	}
26170
26171	shape, ok := value.(map[string]interface{})
26172	if !ok {
26173		return fmt.Errorf("unexpected JSON type %v", value)
26174	}
26175
26176	var sv *UpdateAppInstanceOutput
26177	if *v == nil {
26178		sv = &UpdateAppInstanceOutput{}
26179	} else {
26180		sv = *v
26181	}
26182
26183	for key, value := range shape {
26184		switch key {
26185		case "AppInstanceArn":
26186			if value != nil {
26187				jtv, ok := value.(string)
26188				if !ok {
26189					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
26190				}
26191				sv.AppInstanceArn = ptr.String(jtv)
26192			}
26193
26194		default:
26195			_, _ = key, value
26196
26197		}
26198	}
26199	*v = sv
26200	return nil
26201}
26202
26203type awsRestjson1_deserializeOpUpdateAppInstanceUser struct {
26204}
26205
26206func (*awsRestjson1_deserializeOpUpdateAppInstanceUser) ID() string {
26207	return "OperationDeserializer"
26208}
26209
26210func (m *awsRestjson1_deserializeOpUpdateAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26211	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26212) {
26213	out, metadata, err = next.HandleDeserialize(ctx, in)
26214	if err != nil {
26215		return out, metadata, err
26216	}
26217
26218	response, ok := out.RawResponse.(*smithyhttp.Response)
26219	if !ok {
26220		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26221	}
26222
26223	if response.StatusCode < 200 || response.StatusCode >= 300 {
26224		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAppInstanceUser(response, &metadata)
26225	}
26226	output := &UpdateAppInstanceUserOutput{}
26227	out.Result = output
26228
26229	var buff [1024]byte
26230	ringBuffer := smithyio.NewRingBuffer(buff[:])
26231
26232	body := io.TeeReader(response.Body, ringBuffer)
26233
26234	decoder := json.NewDecoder(body)
26235	decoder.UseNumber()
26236	var shape interface{}
26237	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26238		var snapshot bytes.Buffer
26239		io.Copy(&snapshot, ringBuffer)
26240		err = &smithy.DeserializationError{
26241			Err:      fmt.Errorf("failed to decode response body, %w", err),
26242			Snapshot: snapshot.Bytes(),
26243		}
26244		return out, metadata, err
26245	}
26246
26247	err = awsRestjson1_deserializeOpDocumentUpdateAppInstanceUserOutput(&output, shape)
26248	if err != nil {
26249		var snapshot bytes.Buffer
26250		io.Copy(&snapshot, ringBuffer)
26251		return out, metadata, &smithy.DeserializationError{
26252			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26253			Snapshot: snapshot.Bytes(),
26254		}
26255	}
26256
26257	return out, metadata, err
26258}
26259
26260func awsRestjson1_deserializeOpErrorUpdateAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26261	var errorBuffer bytes.Buffer
26262	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26263		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26264	}
26265	errorBody := bytes.NewReader(errorBuffer.Bytes())
26266
26267	errorCode := "UnknownError"
26268	errorMessage := errorCode
26269
26270	code := response.Header.Get("X-Amzn-ErrorType")
26271	if len(code) != 0 {
26272		errorCode = restjson.SanitizeErrorCode(code)
26273	}
26274
26275	var buff [1024]byte
26276	ringBuffer := smithyio.NewRingBuffer(buff[:])
26277
26278	body := io.TeeReader(errorBody, ringBuffer)
26279	decoder := json.NewDecoder(body)
26280	decoder.UseNumber()
26281	code, message, err := restjson.GetErrorInfo(decoder)
26282	if err != nil {
26283		var snapshot bytes.Buffer
26284		io.Copy(&snapshot, ringBuffer)
26285		err = &smithy.DeserializationError{
26286			Err:      fmt.Errorf("failed to decode response body, %w", err),
26287			Snapshot: snapshot.Bytes(),
26288		}
26289		return err
26290	}
26291
26292	errorBody.Seek(0, io.SeekStart)
26293	if len(code) != 0 {
26294		errorCode = restjson.SanitizeErrorCode(code)
26295	}
26296	if len(message) != 0 {
26297		errorMessage = message
26298	}
26299
26300	switch {
26301	case strings.EqualFold("BadRequestException", errorCode):
26302		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26303
26304	case strings.EqualFold("ConflictException", errorCode):
26305		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26306
26307	case strings.EqualFold("ForbiddenException", errorCode):
26308		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26309
26310	case strings.EqualFold("ServiceFailureException", errorCode):
26311		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26312
26313	case strings.EqualFold("ServiceUnavailableException", errorCode):
26314		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26315
26316	case strings.EqualFold("ThrottledClientException", errorCode):
26317		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26318
26319	case strings.EqualFold("UnauthorizedClientException", errorCode):
26320		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26321
26322	default:
26323		genericError := &smithy.GenericAPIError{
26324			Code:    errorCode,
26325			Message: errorMessage,
26326		}
26327		return genericError
26328
26329	}
26330}
26331
26332func awsRestjson1_deserializeOpDocumentUpdateAppInstanceUserOutput(v **UpdateAppInstanceUserOutput, value interface{}) error {
26333	if v == nil {
26334		return fmt.Errorf("unexpected nil of type %T", v)
26335	}
26336	if value == nil {
26337		return nil
26338	}
26339
26340	shape, ok := value.(map[string]interface{})
26341	if !ok {
26342		return fmt.Errorf("unexpected JSON type %v", value)
26343	}
26344
26345	var sv *UpdateAppInstanceUserOutput
26346	if *v == nil {
26347		sv = &UpdateAppInstanceUserOutput{}
26348	} else {
26349		sv = *v
26350	}
26351
26352	for key, value := range shape {
26353		switch key {
26354		case "AppInstanceUserArn":
26355			if value != nil {
26356				jtv, ok := value.(string)
26357				if !ok {
26358					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
26359				}
26360				sv.AppInstanceUserArn = ptr.String(jtv)
26361			}
26362
26363		default:
26364			_, _ = key, value
26365
26366		}
26367	}
26368	*v = sv
26369	return nil
26370}
26371
26372type awsRestjson1_deserializeOpUpdateBot struct {
26373}
26374
26375func (*awsRestjson1_deserializeOpUpdateBot) ID() string {
26376	return "OperationDeserializer"
26377}
26378
26379func (m *awsRestjson1_deserializeOpUpdateBot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26380	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26381) {
26382	out, metadata, err = next.HandleDeserialize(ctx, in)
26383	if err != nil {
26384		return out, metadata, err
26385	}
26386
26387	response, ok := out.RawResponse.(*smithyhttp.Response)
26388	if !ok {
26389		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26390	}
26391
26392	if response.StatusCode < 200 || response.StatusCode >= 300 {
26393		return out, metadata, awsRestjson1_deserializeOpErrorUpdateBot(response, &metadata)
26394	}
26395	output := &UpdateBotOutput{}
26396	out.Result = output
26397
26398	var buff [1024]byte
26399	ringBuffer := smithyio.NewRingBuffer(buff[:])
26400
26401	body := io.TeeReader(response.Body, ringBuffer)
26402
26403	decoder := json.NewDecoder(body)
26404	decoder.UseNumber()
26405	var shape interface{}
26406	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26407		var snapshot bytes.Buffer
26408		io.Copy(&snapshot, ringBuffer)
26409		err = &smithy.DeserializationError{
26410			Err:      fmt.Errorf("failed to decode response body, %w", err),
26411			Snapshot: snapshot.Bytes(),
26412		}
26413		return out, metadata, err
26414	}
26415
26416	err = awsRestjson1_deserializeOpDocumentUpdateBotOutput(&output, shape)
26417	if err != nil {
26418		var snapshot bytes.Buffer
26419		io.Copy(&snapshot, ringBuffer)
26420		return out, metadata, &smithy.DeserializationError{
26421			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26422			Snapshot: snapshot.Bytes(),
26423		}
26424	}
26425
26426	return out, metadata, err
26427}
26428
26429func awsRestjson1_deserializeOpErrorUpdateBot(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26430	var errorBuffer bytes.Buffer
26431	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26432		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26433	}
26434	errorBody := bytes.NewReader(errorBuffer.Bytes())
26435
26436	errorCode := "UnknownError"
26437	errorMessage := errorCode
26438
26439	code := response.Header.Get("X-Amzn-ErrorType")
26440	if len(code) != 0 {
26441		errorCode = restjson.SanitizeErrorCode(code)
26442	}
26443
26444	var buff [1024]byte
26445	ringBuffer := smithyio.NewRingBuffer(buff[:])
26446
26447	body := io.TeeReader(errorBody, ringBuffer)
26448	decoder := json.NewDecoder(body)
26449	decoder.UseNumber()
26450	code, message, err := restjson.GetErrorInfo(decoder)
26451	if err != nil {
26452		var snapshot bytes.Buffer
26453		io.Copy(&snapshot, ringBuffer)
26454		err = &smithy.DeserializationError{
26455			Err:      fmt.Errorf("failed to decode response body, %w", err),
26456			Snapshot: snapshot.Bytes(),
26457		}
26458		return err
26459	}
26460
26461	errorBody.Seek(0, io.SeekStart)
26462	if len(code) != 0 {
26463		errorCode = restjson.SanitizeErrorCode(code)
26464	}
26465	if len(message) != 0 {
26466		errorMessage = message
26467	}
26468
26469	switch {
26470	case strings.EqualFold("BadRequestException", errorCode):
26471		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26472
26473	case strings.EqualFold("ForbiddenException", errorCode):
26474		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26475
26476	case strings.EqualFold("NotFoundException", errorCode):
26477		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26478
26479	case strings.EqualFold("ServiceFailureException", errorCode):
26480		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26481
26482	case strings.EqualFold("ServiceUnavailableException", errorCode):
26483		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26484
26485	case strings.EqualFold("ThrottledClientException", errorCode):
26486		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26487
26488	case strings.EqualFold("UnauthorizedClientException", errorCode):
26489		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26490
26491	default:
26492		genericError := &smithy.GenericAPIError{
26493			Code:    errorCode,
26494			Message: errorMessage,
26495		}
26496		return genericError
26497
26498	}
26499}
26500
26501func awsRestjson1_deserializeOpDocumentUpdateBotOutput(v **UpdateBotOutput, value interface{}) error {
26502	if v == nil {
26503		return fmt.Errorf("unexpected nil of type %T", v)
26504	}
26505	if value == nil {
26506		return nil
26507	}
26508
26509	shape, ok := value.(map[string]interface{})
26510	if !ok {
26511		return fmt.Errorf("unexpected JSON type %v", value)
26512	}
26513
26514	var sv *UpdateBotOutput
26515	if *v == nil {
26516		sv = &UpdateBotOutput{}
26517	} else {
26518		sv = *v
26519	}
26520
26521	for key, value := range shape {
26522		switch key {
26523		case "Bot":
26524			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
26525				return err
26526			}
26527
26528		default:
26529			_, _ = key, value
26530
26531		}
26532	}
26533	*v = sv
26534	return nil
26535}
26536
26537type awsRestjson1_deserializeOpUpdateChannel struct {
26538}
26539
26540func (*awsRestjson1_deserializeOpUpdateChannel) ID() string {
26541	return "OperationDeserializer"
26542}
26543
26544func (m *awsRestjson1_deserializeOpUpdateChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26545	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26546) {
26547	out, metadata, err = next.HandleDeserialize(ctx, in)
26548	if err != nil {
26549		return out, metadata, err
26550	}
26551
26552	response, ok := out.RawResponse.(*smithyhttp.Response)
26553	if !ok {
26554		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26555	}
26556
26557	if response.StatusCode < 200 || response.StatusCode >= 300 {
26558		return out, metadata, awsRestjson1_deserializeOpErrorUpdateChannel(response, &metadata)
26559	}
26560	output := &UpdateChannelOutput{}
26561	out.Result = output
26562
26563	var buff [1024]byte
26564	ringBuffer := smithyio.NewRingBuffer(buff[:])
26565
26566	body := io.TeeReader(response.Body, ringBuffer)
26567
26568	decoder := json.NewDecoder(body)
26569	decoder.UseNumber()
26570	var shape interface{}
26571	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26572		var snapshot bytes.Buffer
26573		io.Copy(&snapshot, ringBuffer)
26574		err = &smithy.DeserializationError{
26575			Err:      fmt.Errorf("failed to decode response body, %w", err),
26576			Snapshot: snapshot.Bytes(),
26577		}
26578		return out, metadata, err
26579	}
26580
26581	err = awsRestjson1_deserializeOpDocumentUpdateChannelOutput(&output, shape)
26582	if err != nil {
26583		var snapshot bytes.Buffer
26584		io.Copy(&snapshot, ringBuffer)
26585		return out, metadata, &smithy.DeserializationError{
26586			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26587			Snapshot: snapshot.Bytes(),
26588		}
26589	}
26590
26591	return out, metadata, err
26592}
26593
26594func awsRestjson1_deserializeOpErrorUpdateChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26595	var errorBuffer bytes.Buffer
26596	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26597		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26598	}
26599	errorBody := bytes.NewReader(errorBuffer.Bytes())
26600
26601	errorCode := "UnknownError"
26602	errorMessage := errorCode
26603
26604	code := response.Header.Get("X-Amzn-ErrorType")
26605	if len(code) != 0 {
26606		errorCode = restjson.SanitizeErrorCode(code)
26607	}
26608
26609	var buff [1024]byte
26610	ringBuffer := smithyio.NewRingBuffer(buff[:])
26611
26612	body := io.TeeReader(errorBody, ringBuffer)
26613	decoder := json.NewDecoder(body)
26614	decoder.UseNumber()
26615	code, message, err := restjson.GetErrorInfo(decoder)
26616	if err != nil {
26617		var snapshot bytes.Buffer
26618		io.Copy(&snapshot, ringBuffer)
26619		err = &smithy.DeserializationError{
26620			Err:      fmt.Errorf("failed to decode response body, %w", err),
26621			Snapshot: snapshot.Bytes(),
26622		}
26623		return err
26624	}
26625
26626	errorBody.Seek(0, io.SeekStart)
26627	if len(code) != 0 {
26628		errorCode = restjson.SanitizeErrorCode(code)
26629	}
26630	if len(message) != 0 {
26631		errorMessage = message
26632	}
26633
26634	switch {
26635	case strings.EqualFold("BadRequestException", errorCode):
26636		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26637
26638	case strings.EqualFold("ConflictException", errorCode):
26639		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26640
26641	case strings.EqualFold("ForbiddenException", errorCode):
26642		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26643
26644	case strings.EqualFold("ServiceFailureException", errorCode):
26645		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26646
26647	case strings.EqualFold("ServiceUnavailableException", errorCode):
26648		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26649
26650	case strings.EqualFold("ThrottledClientException", errorCode):
26651		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26652
26653	case strings.EqualFold("UnauthorizedClientException", errorCode):
26654		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26655
26656	default:
26657		genericError := &smithy.GenericAPIError{
26658			Code:    errorCode,
26659			Message: errorMessage,
26660		}
26661		return genericError
26662
26663	}
26664}
26665
26666func awsRestjson1_deserializeOpDocumentUpdateChannelOutput(v **UpdateChannelOutput, value interface{}) error {
26667	if v == nil {
26668		return fmt.Errorf("unexpected nil of type %T", v)
26669	}
26670	if value == nil {
26671		return nil
26672	}
26673
26674	shape, ok := value.(map[string]interface{})
26675	if !ok {
26676		return fmt.Errorf("unexpected JSON type %v", value)
26677	}
26678
26679	var sv *UpdateChannelOutput
26680	if *v == nil {
26681		sv = &UpdateChannelOutput{}
26682	} else {
26683		sv = *v
26684	}
26685
26686	for key, value := range shape {
26687		switch key {
26688		case "ChannelArn":
26689			if value != nil {
26690				jtv, ok := value.(string)
26691				if !ok {
26692					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
26693				}
26694				sv.ChannelArn = ptr.String(jtv)
26695			}
26696
26697		default:
26698			_, _ = key, value
26699
26700		}
26701	}
26702	*v = sv
26703	return nil
26704}
26705
26706type awsRestjson1_deserializeOpUpdateChannelMessage struct {
26707}
26708
26709func (*awsRestjson1_deserializeOpUpdateChannelMessage) ID() string {
26710	return "OperationDeserializer"
26711}
26712
26713func (m *awsRestjson1_deserializeOpUpdateChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26714	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26715) {
26716	out, metadata, err = next.HandleDeserialize(ctx, in)
26717	if err != nil {
26718		return out, metadata, err
26719	}
26720
26721	response, ok := out.RawResponse.(*smithyhttp.Response)
26722	if !ok {
26723		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26724	}
26725
26726	if response.StatusCode < 200 || response.StatusCode >= 300 {
26727		return out, metadata, awsRestjson1_deserializeOpErrorUpdateChannelMessage(response, &metadata)
26728	}
26729	output := &UpdateChannelMessageOutput{}
26730	out.Result = output
26731
26732	var buff [1024]byte
26733	ringBuffer := smithyio.NewRingBuffer(buff[:])
26734
26735	body := io.TeeReader(response.Body, ringBuffer)
26736
26737	decoder := json.NewDecoder(body)
26738	decoder.UseNumber()
26739	var shape interface{}
26740	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26741		var snapshot bytes.Buffer
26742		io.Copy(&snapshot, ringBuffer)
26743		err = &smithy.DeserializationError{
26744			Err:      fmt.Errorf("failed to decode response body, %w", err),
26745			Snapshot: snapshot.Bytes(),
26746		}
26747		return out, metadata, err
26748	}
26749
26750	err = awsRestjson1_deserializeOpDocumentUpdateChannelMessageOutput(&output, shape)
26751	if err != nil {
26752		var snapshot bytes.Buffer
26753		io.Copy(&snapshot, ringBuffer)
26754		return out, metadata, &smithy.DeserializationError{
26755			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26756			Snapshot: snapshot.Bytes(),
26757		}
26758	}
26759
26760	return out, metadata, err
26761}
26762
26763func awsRestjson1_deserializeOpErrorUpdateChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26764	var errorBuffer bytes.Buffer
26765	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26766		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26767	}
26768	errorBody := bytes.NewReader(errorBuffer.Bytes())
26769
26770	errorCode := "UnknownError"
26771	errorMessage := errorCode
26772
26773	code := response.Header.Get("X-Amzn-ErrorType")
26774	if len(code) != 0 {
26775		errorCode = restjson.SanitizeErrorCode(code)
26776	}
26777
26778	var buff [1024]byte
26779	ringBuffer := smithyio.NewRingBuffer(buff[:])
26780
26781	body := io.TeeReader(errorBody, ringBuffer)
26782	decoder := json.NewDecoder(body)
26783	decoder.UseNumber()
26784	code, message, err := restjson.GetErrorInfo(decoder)
26785	if err != nil {
26786		var snapshot bytes.Buffer
26787		io.Copy(&snapshot, ringBuffer)
26788		err = &smithy.DeserializationError{
26789			Err:      fmt.Errorf("failed to decode response body, %w", err),
26790			Snapshot: snapshot.Bytes(),
26791		}
26792		return err
26793	}
26794
26795	errorBody.Seek(0, io.SeekStart)
26796	if len(code) != 0 {
26797		errorCode = restjson.SanitizeErrorCode(code)
26798	}
26799	if len(message) != 0 {
26800		errorMessage = message
26801	}
26802
26803	switch {
26804	case strings.EqualFold("BadRequestException", errorCode):
26805		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26806
26807	case strings.EqualFold("ConflictException", errorCode):
26808		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26809
26810	case strings.EqualFold("ForbiddenException", errorCode):
26811		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26812
26813	case strings.EqualFold("ServiceFailureException", errorCode):
26814		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26815
26816	case strings.EqualFold("ServiceUnavailableException", errorCode):
26817		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26818
26819	case strings.EqualFold("ThrottledClientException", errorCode):
26820		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26821
26822	case strings.EqualFold("UnauthorizedClientException", errorCode):
26823		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26824
26825	default:
26826		genericError := &smithy.GenericAPIError{
26827			Code:    errorCode,
26828			Message: errorMessage,
26829		}
26830		return genericError
26831
26832	}
26833}
26834
26835func awsRestjson1_deserializeOpDocumentUpdateChannelMessageOutput(v **UpdateChannelMessageOutput, value interface{}) error {
26836	if v == nil {
26837		return fmt.Errorf("unexpected nil of type %T", v)
26838	}
26839	if value == nil {
26840		return nil
26841	}
26842
26843	shape, ok := value.(map[string]interface{})
26844	if !ok {
26845		return fmt.Errorf("unexpected JSON type %v", value)
26846	}
26847
26848	var sv *UpdateChannelMessageOutput
26849	if *v == nil {
26850		sv = &UpdateChannelMessageOutput{}
26851	} else {
26852		sv = *v
26853	}
26854
26855	for key, value := range shape {
26856		switch key {
26857		case "ChannelArn":
26858			if value != nil {
26859				jtv, ok := value.(string)
26860				if !ok {
26861					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
26862				}
26863				sv.ChannelArn = ptr.String(jtv)
26864			}
26865
26866		case "MessageId":
26867			if value != nil {
26868				jtv, ok := value.(string)
26869				if !ok {
26870					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
26871				}
26872				sv.MessageId = ptr.String(jtv)
26873			}
26874
26875		default:
26876			_, _ = key, value
26877
26878		}
26879	}
26880	*v = sv
26881	return nil
26882}
26883
26884type awsRestjson1_deserializeOpUpdateChannelReadMarker struct {
26885}
26886
26887func (*awsRestjson1_deserializeOpUpdateChannelReadMarker) ID() string {
26888	return "OperationDeserializer"
26889}
26890
26891func (m *awsRestjson1_deserializeOpUpdateChannelReadMarker) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26892	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26893) {
26894	out, metadata, err = next.HandleDeserialize(ctx, in)
26895	if err != nil {
26896		return out, metadata, err
26897	}
26898
26899	response, ok := out.RawResponse.(*smithyhttp.Response)
26900	if !ok {
26901		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26902	}
26903
26904	if response.StatusCode < 200 || response.StatusCode >= 300 {
26905		return out, metadata, awsRestjson1_deserializeOpErrorUpdateChannelReadMarker(response, &metadata)
26906	}
26907	output := &UpdateChannelReadMarkerOutput{}
26908	out.Result = output
26909
26910	var buff [1024]byte
26911	ringBuffer := smithyio.NewRingBuffer(buff[:])
26912
26913	body := io.TeeReader(response.Body, ringBuffer)
26914
26915	decoder := json.NewDecoder(body)
26916	decoder.UseNumber()
26917	var shape interface{}
26918	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26919		var snapshot bytes.Buffer
26920		io.Copy(&snapshot, ringBuffer)
26921		err = &smithy.DeserializationError{
26922			Err:      fmt.Errorf("failed to decode response body, %w", err),
26923			Snapshot: snapshot.Bytes(),
26924		}
26925		return out, metadata, err
26926	}
26927
26928	err = awsRestjson1_deserializeOpDocumentUpdateChannelReadMarkerOutput(&output, shape)
26929	if err != nil {
26930		var snapshot bytes.Buffer
26931		io.Copy(&snapshot, ringBuffer)
26932		return out, metadata, &smithy.DeserializationError{
26933			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26934			Snapshot: snapshot.Bytes(),
26935		}
26936	}
26937
26938	return out, metadata, err
26939}
26940
26941func awsRestjson1_deserializeOpErrorUpdateChannelReadMarker(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26942	var errorBuffer bytes.Buffer
26943	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26944		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26945	}
26946	errorBody := bytes.NewReader(errorBuffer.Bytes())
26947
26948	errorCode := "UnknownError"
26949	errorMessage := errorCode
26950
26951	code := response.Header.Get("X-Amzn-ErrorType")
26952	if len(code) != 0 {
26953		errorCode = restjson.SanitizeErrorCode(code)
26954	}
26955
26956	var buff [1024]byte
26957	ringBuffer := smithyio.NewRingBuffer(buff[:])
26958
26959	body := io.TeeReader(errorBody, ringBuffer)
26960	decoder := json.NewDecoder(body)
26961	decoder.UseNumber()
26962	code, message, err := restjson.GetErrorInfo(decoder)
26963	if err != nil {
26964		var snapshot bytes.Buffer
26965		io.Copy(&snapshot, ringBuffer)
26966		err = &smithy.DeserializationError{
26967			Err:      fmt.Errorf("failed to decode response body, %w", err),
26968			Snapshot: snapshot.Bytes(),
26969		}
26970		return err
26971	}
26972
26973	errorBody.Seek(0, io.SeekStart)
26974	if len(code) != 0 {
26975		errorCode = restjson.SanitizeErrorCode(code)
26976	}
26977	if len(message) != 0 {
26978		errorMessage = message
26979	}
26980
26981	switch {
26982	case strings.EqualFold("BadRequestException", errorCode):
26983		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26984
26985	case strings.EqualFold("ConflictException", errorCode):
26986		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26987
26988	case strings.EqualFold("ForbiddenException", errorCode):
26989		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26990
26991	case strings.EqualFold("ServiceFailureException", errorCode):
26992		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26993
26994	case strings.EqualFold("ServiceUnavailableException", errorCode):
26995		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26996
26997	case strings.EqualFold("ThrottledClientException", errorCode):
26998		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26999
27000	case strings.EqualFold("UnauthorizedClientException", errorCode):
27001		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27002
27003	default:
27004		genericError := &smithy.GenericAPIError{
27005			Code:    errorCode,
27006			Message: errorMessage,
27007		}
27008		return genericError
27009
27010	}
27011}
27012
27013func awsRestjson1_deserializeOpDocumentUpdateChannelReadMarkerOutput(v **UpdateChannelReadMarkerOutput, value interface{}) error {
27014	if v == nil {
27015		return fmt.Errorf("unexpected nil of type %T", v)
27016	}
27017	if value == nil {
27018		return nil
27019	}
27020
27021	shape, ok := value.(map[string]interface{})
27022	if !ok {
27023		return fmt.Errorf("unexpected JSON type %v", value)
27024	}
27025
27026	var sv *UpdateChannelReadMarkerOutput
27027	if *v == nil {
27028		sv = &UpdateChannelReadMarkerOutput{}
27029	} else {
27030		sv = *v
27031	}
27032
27033	for key, value := range shape {
27034		switch key {
27035		case "ChannelArn":
27036			if value != nil {
27037				jtv, ok := value.(string)
27038				if !ok {
27039					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
27040				}
27041				sv.ChannelArn = ptr.String(jtv)
27042			}
27043
27044		default:
27045			_, _ = key, value
27046
27047		}
27048	}
27049	*v = sv
27050	return nil
27051}
27052
27053type awsRestjson1_deserializeOpUpdateGlobalSettings struct {
27054}
27055
27056func (*awsRestjson1_deserializeOpUpdateGlobalSettings) ID() string {
27057	return "OperationDeserializer"
27058}
27059
27060func (m *awsRestjson1_deserializeOpUpdateGlobalSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27061	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27062) {
27063	out, metadata, err = next.HandleDeserialize(ctx, in)
27064	if err != nil {
27065		return out, metadata, err
27066	}
27067
27068	response, ok := out.RawResponse.(*smithyhttp.Response)
27069	if !ok {
27070		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27071	}
27072
27073	if response.StatusCode < 200 || response.StatusCode >= 300 {
27074		return out, metadata, awsRestjson1_deserializeOpErrorUpdateGlobalSettings(response, &metadata)
27075	}
27076	output := &UpdateGlobalSettingsOutput{}
27077	out.Result = output
27078
27079	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
27080		return out, metadata, &smithy.DeserializationError{
27081			Err: fmt.Errorf("failed to discard response body, %w", err),
27082		}
27083	}
27084
27085	return out, metadata, err
27086}
27087
27088func awsRestjson1_deserializeOpErrorUpdateGlobalSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27089	var errorBuffer bytes.Buffer
27090	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27091		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27092	}
27093	errorBody := bytes.NewReader(errorBuffer.Bytes())
27094
27095	errorCode := "UnknownError"
27096	errorMessage := errorCode
27097
27098	code := response.Header.Get("X-Amzn-ErrorType")
27099	if len(code) != 0 {
27100		errorCode = restjson.SanitizeErrorCode(code)
27101	}
27102
27103	var buff [1024]byte
27104	ringBuffer := smithyio.NewRingBuffer(buff[:])
27105
27106	body := io.TeeReader(errorBody, ringBuffer)
27107	decoder := json.NewDecoder(body)
27108	decoder.UseNumber()
27109	code, message, err := restjson.GetErrorInfo(decoder)
27110	if err != nil {
27111		var snapshot bytes.Buffer
27112		io.Copy(&snapshot, ringBuffer)
27113		err = &smithy.DeserializationError{
27114			Err:      fmt.Errorf("failed to decode response body, %w", err),
27115			Snapshot: snapshot.Bytes(),
27116		}
27117		return err
27118	}
27119
27120	errorBody.Seek(0, io.SeekStart)
27121	if len(code) != 0 {
27122		errorCode = restjson.SanitizeErrorCode(code)
27123	}
27124	if len(message) != 0 {
27125		errorMessage = message
27126	}
27127
27128	switch {
27129	case strings.EqualFold("BadRequestException", errorCode):
27130		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27131
27132	case strings.EqualFold("ForbiddenException", errorCode):
27133		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27134
27135	case strings.EqualFold("ServiceFailureException", errorCode):
27136		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27137
27138	case strings.EqualFold("ServiceUnavailableException", errorCode):
27139		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27140
27141	case strings.EqualFold("ThrottledClientException", errorCode):
27142		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27143
27144	case strings.EqualFold("UnauthorizedClientException", errorCode):
27145		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27146
27147	default:
27148		genericError := &smithy.GenericAPIError{
27149			Code:    errorCode,
27150			Message: errorMessage,
27151		}
27152		return genericError
27153
27154	}
27155}
27156
27157type awsRestjson1_deserializeOpUpdatePhoneNumber struct {
27158}
27159
27160func (*awsRestjson1_deserializeOpUpdatePhoneNumber) ID() string {
27161	return "OperationDeserializer"
27162}
27163
27164func (m *awsRestjson1_deserializeOpUpdatePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27165	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27166) {
27167	out, metadata, err = next.HandleDeserialize(ctx, in)
27168	if err != nil {
27169		return out, metadata, err
27170	}
27171
27172	response, ok := out.RawResponse.(*smithyhttp.Response)
27173	if !ok {
27174		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27175	}
27176
27177	if response.StatusCode < 200 || response.StatusCode >= 300 {
27178		return out, metadata, awsRestjson1_deserializeOpErrorUpdatePhoneNumber(response, &metadata)
27179	}
27180	output := &UpdatePhoneNumberOutput{}
27181	out.Result = output
27182
27183	var buff [1024]byte
27184	ringBuffer := smithyio.NewRingBuffer(buff[:])
27185
27186	body := io.TeeReader(response.Body, ringBuffer)
27187
27188	decoder := json.NewDecoder(body)
27189	decoder.UseNumber()
27190	var shape interface{}
27191	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27192		var snapshot bytes.Buffer
27193		io.Copy(&snapshot, ringBuffer)
27194		err = &smithy.DeserializationError{
27195			Err:      fmt.Errorf("failed to decode response body, %w", err),
27196			Snapshot: snapshot.Bytes(),
27197		}
27198		return out, metadata, err
27199	}
27200
27201	err = awsRestjson1_deserializeOpDocumentUpdatePhoneNumberOutput(&output, shape)
27202	if err != nil {
27203		var snapshot bytes.Buffer
27204		io.Copy(&snapshot, ringBuffer)
27205		return out, metadata, &smithy.DeserializationError{
27206			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27207			Snapshot: snapshot.Bytes(),
27208		}
27209	}
27210
27211	return out, metadata, err
27212}
27213
27214func awsRestjson1_deserializeOpErrorUpdatePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27215	var errorBuffer bytes.Buffer
27216	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27217		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27218	}
27219	errorBody := bytes.NewReader(errorBuffer.Bytes())
27220
27221	errorCode := "UnknownError"
27222	errorMessage := errorCode
27223
27224	code := response.Header.Get("X-Amzn-ErrorType")
27225	if len(code) != 0 {
27226		errorCode = restjson.SanitizeErrorCode(code)
27227	}
27228
27229	var buff [1024]byte
27230	ringBuffer := smithyio.NewRingBuffer(buff[:])
27231
27232	body := io.TeeReader(errorBody, ringBuffer)
27233	decoder := json.NewDecoder(body)
27234	decoder.UseNumber()
27235	code, message, err := restjson.GetErrorInfo(decoder)
27236	if err != nil {
27237		var snapshot bytes.Buffer
27238		io.Copy(&snapshot, ringBuffer)
27239		err = &smithy.DeserializationError{
27240			Err:      fmt.Errorf("failed to decode response body, %w", err),
27241			Snapshot: snapshot.Bytes(),
27242		}
27243		return err
27244	}
27245
27246	errorBody.Seek(0, io.SeekStart)
27247	if len(code) != 0 {
27248		errorCode = restjson.SanitizeErrorCode(code)
27249	}
27250	if len(message) != 0 {
27251		errorMessage = message
27252	}
27253
27254	switch {
27255	case strings.EqualFold("BadRequestException", errorCode):
27256		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27257
27258	case strings.EqualFold("ForbiddenException", errorCode):
27259		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27260
27261	case strings.EqualFold("NotFoundException", errorCode):
27262		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27263
27264	case strings.EqualFold("ServiceFailureException", errorCode):
27265		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27266
27267	case strings.EqualFold("ServiceUnavailableException", errorCode):
27268		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27269
27270	case strings.EqualFold("ThrottledClientException", errorCode):
27271		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27272
27273	case strings.EqualFold("UnauthorizedClientException", errorCode):
27274		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27275
27276	default:
27277		genericError := &smithy.GenericAPIError{
27278			Code:    errorCode,
27279			Message: errorMessage,
27280		}
27281		return genericError
27282
27283	}
27284}
27285
27286func awsRestjson1_deserializeOpDocumentUpdatePhoneNumberOutput(v **UpdatePhoneNumberOutput, value interface{}) error {
27287	if v == nil {
27288		return fmt.Errorf("unexpected nil of type %T", v)
27289	}
27290	if value == nil {
27291		return nil
27292	}
27293
27294	shape, ok := value.(map[string]interface{})
27295	if !ok {
27296		return fmt.Errorf("unexpected JSON type %v", value)
27297	}
27298
27299	var sv *UpdatePhoneNumberOutput
27300	if *v == nil {
27301		sv = &UpdatePhoneNumberOutput{}
27302	} else {
27303		sv = *v
27304	}
27305
27306	for key, value := range shape {
27307		switch key {
27308		case "PhoneNumber":
27309			if err := awsRestjson1_deserializeDocumentPhoneNumber(&sv.PhoneNumber, value); err != nil {
27310				return err
27311			}
27312
27313		default:
27314			_, _ = key, value
27315
27316		}
27317	}
27318	*v = sv
27319	return nil
27320}
27321
27322type awsRestjson1_deserializeOpUpdatePhoneNumberSettings struct {
27323}
27324
27325func (*awsRestjson1_deserializeOpUpdatePhoneNumberSettings) ID() string {
27326	return "OperationDeserializer"
27327}
27328
27329func (m *awsRestjson1_deserializeOpUpdatePhoneNumberSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27330	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27331) {
27332	out, metadata, err = next.HandleDeserialize(ctx, in)
27333	if err != nil {
27334		return out, metadata, err
27335	}
27336
27337	response, ok := out.RawResponse.(*smithyhttp.Response)
27338	if !ok {
27339		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27340	}
27341
27342	if response.StatusCode < 200 || response.StatusCode >= 300 {
27343		return out, metadata, awsRestjson1_deserializeOpErrorUpdatePhoneNumberSettings(response, &metadata)
27344	}
27345	output := &UpdatePhoneNumberSettingsOutput{}
27346	out.Result = output
27347
27348	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
27349		return out, metadata, &smithy.DeserializationError{
27350			Err: fmt.Errorf("failed to discard response body, %w", err),
27351		}
27352	}
27353
27354	return out, metadata, err
27355}
27356
27357func awsRestjson1_deserializeOpErrorUpdatePhoneNumberSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27358	var errorBuffer bytes.Buffer
27359	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27360		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27361	}
27362	errorBody := bytes.NewReader(errorBuffer.Bytes())
27363
27364	errorCode := "UnknownError"
27365	errorMessage := errorCode
27366
27367	code := response.Header.Get("X-Amzn-ErrorType")
27368	if len(code) != 0 {
27369		errorCode = restjson.SanitizeErrorCode(code)
27370	}
27371
27372	var buff [1024]byte
27373	ringBuffer := smithyio.NewRingBuffer(buff[:])
27374
27375	body := io.TeeReader(errorBody, ringBuffer)
27376	decoder := json.NewDecoder(body)
27377	decoder.UseNumber()
27378	code, message, err := restjson.GetErrorInfo(decoder)
27379	if err != nil {
27380		var snapshot bytes.Buffer
27381		io.Copy(&snapshot, ringBuffer)
27382		err = &smithy.DeserializationError{
27383			Err:      fmt.Errorf("failed to decode response body, %w", err),
27384			Snapshot: snapshot.Bytes(),
27385		}
27386		return err
27387	}
27388
27389	errorBody.Seek(0, io.SeekStart)
27390	if len(code) != 0 {
27391		errorCode = restjson.SanitizeErrorCode(code)
27392	}
27393	if len(message) != 0 {
27394		errorMessage = message
27395	}
27396
27397	switch {
27398	case strings.EqualFold("BadRequestException", errorCode):
27399		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27400
27401	case strings.EqualFold("ForbiddenException", errorCode):
27402		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27403
27404	case strings.EqualFold("ServiceFailureException", errorCode):
27405		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27406
27407	case strings.EqualFold("ServiceUnavailableException", errorCode):
27408		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27409
27410	case strings.EqualFold("ThrottledClientException", errorCode):
27411		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27412
27413	case strings.EqualFold("UnauthorizedClientException", errorCode):
27414		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27415
27416	default:
27417		genericError := &smithy.GenericAPIError{
27418			Code:    errorCode,
27419			Message: errorMessage,
27420		}
27421		return genericError
27422
27423	}
27424}
27425
27426type awsRestjson1_deserializeOpUpdateProxySession struct {
27427}
27428
27429func (*awsRestjson1_deserializeOpUpdateProxySession) ID() string {
27430	return "OperationDeserializer"
27431}
27432
27433func (m *awsRestjson1_deserializeOpUpdateProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27434	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27435) {
27436	out, metadata, err = next.HandleDeserialize(ctx, in)
27437	if err != nil {
27438		return out, metadata, err
27439	}
27440
27441	response, ok := out.RawResponse.(*smithyhttp.Response)
27442	if !ok {
27443		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27444	}
27445
27446	if response.StatusCode < 200 || response.StatusCode >= 300 {
27447		return out, metadata, awsRestjson1_deserializeOpErrorUpdateProxySession(response, &metadata)
27448	}
27449	output := &UpdateProxySessionOutput{}
27450	out.Result = output
27451
27452	var buff [1024]byte
27453	ringBuffer := smithyio.NewRingBuffer(buff[:])
27454
27455	body := io.TeeReader(response.Body, ringBuffer)
27456
27457	decoder := json.NewDecoder(body)
27458	decoder.UseNumber()
27459	var shape interface{}
27460	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27461		var snapshot bytes.Buffer
27462		io.Copy(&snapshot, ringBuffer)
27463		err = &smithy.DeserializationError{
27464			Err:      fmt.Errorf("failed to decode response body, %w", err),
27465			Snapshot: snapshot.Bytes(),
27466		}
27467		return out, metadata, err
27468	}
27469
27470	err = awsRestjson1_deserializeOpDocumentUpdateProxySessionOutput(&output, shape)
27471	if err != nil {
27472		var snapshot bytes.Buffer
27473		io.Copy(&snapshot, ringBuffer)
27474		return out, metadata, &smithy.DeserializationError{
27475			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27476			Snapshot: snapshot.Bytes(),
27477		}
27478	}
27479
27480	return out, metadata, err
27481}
27482
27483func awsRestjson1_deserializeOpErrorUpdateProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27484	var errorBuffer bytes.Buffer
27485	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27486		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27487	}
27488	errorBody := bytes.NewReader(errorBuffer.Bytes())
27489
27490	errorCode := "UnknownError"
27491	errorMessage := errorCode
27492
27493	code := response.Header.Get("X-Amzn-ErrorType")
27494	if len(code) != 0 {
27495		errorCode = restjson.SanitizeErrorCode(code)
27496	}
27497
27498	var buff [1024]byte
27499	ringBuffer := smithyio.NewRingBuffer(buff[:])
27500
27501	body := io.TeeReader(errorBody, ringBuffer)
27502	decoder := json.NewDecoder(body)
27503	decoder.UseNumber()
27504	code, message, err := restjson.GetErrorInfo(decoder)
27505	if err != nil {
27506		var snapshot bytes.Buffer
27507		io.Copy(&snapshot, ringBuffer)
27508		err = &smithy.DeserializationError{
27509			Err:      fmt.Errorf("failed to decode response body, %w", err),
27510			Snapshot: snapshot.Bytes(),
27511		}
27512		return err
27513	}
27514
27515	errorBody.Seek(0, io.SeekStart)
27516	if len(code) != 0 {
27517		errorCode = restjson.SanitizeErrorCode(code)
27518	}
27519	if len(message) != 0 {
27520		errorMessage = message
27521	}
27522
27523	switch {
27524	case strings.EqualFold("BadRequestException", errorCode):
27525		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27526
27527	case strings.EqualFold("ForbiddenException", errorCode):
27528		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27529
27530	case strings.EqualFold("NotFoundException", errorCode):
27531		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27532
27533	case strings.EqualFold("ServiceFailureException", errorCode):
27534		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27535
27536	case strings.EqualFold("ServiceUnavailableException", errorCode):
27537		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27538
27539	case strings.EqualFold("ThrottledClientException", errorCode):
27540		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27541
27542	case strings.EqualFold("UnauthorizedClientException", errorCode):
27543		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27544
27545	default:
27546		genericError := &smithy.GenericAPIError{
27547			Code:    errorCode,
27548			Message: errorMessage,
27549		}
27550		return genericError
27551
27552	}
27553}
27554
27555func awsRestjson1_deserializeOpDocumentUpdateProxySessionOutput(v **UpdateProxySessionOutput, value interface{}) error {
27556	if v == nil {
27557		return fmt.Errorf("unexpected nil of type %T", v)
27558	}
27559	if value == nil {
27560		return nil
27561	}
27562
27563	shape, ok := value.(map[string]interface{})
27564	if !ok {
27565		return fmt.Errorf("unexpected JSON type %v", value)
27566	}
27567
27568	var sv *UpdateProxySessionOutput
27569	if *v == nil {
27570		sv = &UpdateProxySessionOutput{}
27571	} else {
27572		sv = *v
27573	}
27574
27575	for key, value := range shape {
27576		switch key {
27577		case "ProxySession":
27578			if err := awsRestjson1_deserializeDocumentProxySession(&sv.ProxySession, value); err != nil {
27579				return err
27580			}
27581
27582		default:
27583			_, _ = key, value
27584
27585		}
27586	}
27587	*v = sv
27588	return nil
27589}
27590
27591type awsRestjson1_deserializeOpUpdateRoom struct {
27592}
27593
27594func (*awsRestjson1_deserializeOpUpdateRoom) ID() string {
27595	return "OperationDeserializer"
27596}
27597
27598func (m *awsRestjson1_deserializeOpUpdateRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27599	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27600) {
27601	out, metadata, err = next.HandleDeserialize(ctx, in)
27602	if err != nil {
27603		return out, metadata, err
27604	}
27605
27606	response, ok := out.RawResponse.(*smithyhttp.Response)
27607	if !ok {
27608		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27609	}
27610
27611	if response.StatusCode < 200 || response.StatusCode >= 300 {
27612		return out, metadata, awsRestjson1_deserializeOpErrorUpdateRoom(response, &metadata)
27613	}
27614	output := &UpdateRoomOutput{}
27615	out.Result = output
27616
27617	var buff [1024]byte
27618	ringBuffer := smithyio.NewRingBuffer(buff[:])
27619
27620	body := io.TeeReader(response.Body, ringBuffer)
27621
27622	decoder := json.NewDecoder(body)
27623	decoder.UseNumber()
27624	var shape interface{}
27625	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27626		var snapshot bytes.Buffer
27627		io.Copy(&snapshot, ringBuffer)
27628		err = &smithy.DeserializationError{
27629			Err:      fmt.Errorf("failed to decode response body, %w", err),
27630			Snapshot: snapshot.Bytes(),
27631		}
27632		return out, metadata, err
27633	}
27634
27635	err = awsRestjson1_deserializeOpDocumentUpdateRoomOutput(&output, shape)
27636	if err != nil {
27637		var snapshot bytes.Buffer
27638		io.Copy(&snapshot, ringBuffer)
27639		return out, metadata, &smithy.DeserializationError{
27640			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27641			Snapshot: snapshot.Bytes(),
27642		}
27643	}
27644
27645	return out, metadata, err
27646}
27647
27648func awsRestjson1_deserializeOpErrorUpdateRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27649	var errorBuffer bytes.Buffer
27650	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27651		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27652	}
27653	errorBody := bytes.NewReader(errorBuffer.Bytes())
27654
27655	errorCode := "UnknownError"
27656	errorMessage := errorCode
27657
27658	code := response.Header.Get("X-Amzn-ErrorType")
27659	if len(code) != 0 {
27660		errorCode = restjson.SanitizeErrorCode(code)
27661	}
27662
27663	var buff [1024]byte
27664	ringBuffer := smithyio.NewRingBuffer(buff[:])
27665
27666	body := io.TeeReader(errorBody, ringBuffer)
27667	decoder := json.NewDecoder(body)
27668	decoder.UseNumber()
27669	code, message, err := restjson.GetErrorInfo(decoder)
27670	if err != nil {
27671		var snapshot bytes.Buffer
27672		io.Copy(&snapshot, ringBuffer)
27673		err = &smithy.DeserializationError{
27674			Err:      fmt.Errorf("failed to decode response body, %w", err),
27675			Snapshot: snapshot.Bytes(),
27676		}
27677		return err
27678	}
27679
27680	errorBody.Seek(0, io.SeekStart)
27681	if len(code) != 0 {
27682		errorCode = restjson.SanitizeErrorCode(code)
27683	}
27684	if len(message) != 0 {
27685		errorMessage = message
27686	}
27687
27688	switch {
27689	case strings.EqualFold("BadRequestException", errorCode):
27690		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27691
27692	case strings.EqualFold("ForbiddenException", errorCode):
27693		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27694
27695	case strings.EqualFold("NotFoundException", errorCode):
27696		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27697
27698	case strings.EqualFold("ServiceFailureException", errorCode):
27699		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27700
27701	case strings.EqualFold("ServiceUnavailableException", errorCode):
27702		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27703
27704	case strings.EqualFold("ThrottledClientException", errorCode):
27705		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27706
27707	case strings.EqualFold("UnauthorizedClientException", errorCode):
27708		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27709
27710	default:
27711		genericError := &smithy.GenericAPIError{
27712			Code:    errorCode,
27713			Message: errorMessage,
27714		}
27715		return genericError
27716
27717	}
27718}
27719
27720func awsRestjson1_deserializeOpDocumentUpdateRoomOutput(v **UpdateRoomOutput, value interface{}) error {
27721	if v == nil {
27722		return fmt.Errorf("unexpected nil of type %T", v)
27723	}
27724	if value == nil {
27725		return nil
27726	}
27727
27728	shape, ok := value.(map[string]interface{})
27729	if !ok {
27730		return fmt.Errorf("unexpected JSON type %v", value)
27731	}
27732
27733	var sv *UpdateRoomOutput
27734	if *v == nil {
27735		sv = &UpdateRoomOutput{}
27736	} else {
27737		sv = *v
27738	}
27739
27740	for key, value := range shape {
27741		switch key {
27742		case "Room":
27743			if err := awsRestjson1_deserializeDocumentRoom(&sv.Room, value); err != nil {
27744				return err
27745			}
27746
27747		default:
27748			_, _ = key, value
27749
27750		}
27751	}
27752	*v = sv
27753	return nil
27754}
27755
27756type awsRestjson1_deserializeOpUpdateRoomMembership struct {
27757}
27758
27759func (*awsRestjson1_deserializeOpUpdateRoomMembership) ID() string {
27760	return "OperationDeserializer"
27761}
27762
27763func (m *awsRestjson1_deserializeOpUpdateRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27764	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27765) {
27766	out, metadata, err = next.HandleDeserialize(ctx, in)
27767	if err != nil {
27768		return out, metadata, err
27769	}
27770
27771	response, ok := out.RawResponse.(*smithyhttp.Response)
27772	if !ok {
27773		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27774	}
27775
27776	if response.StatusCode < 200 || response.StatusCode >= 300 {
27777		return out, metadata, awsRestjson1_deserializeOpErrorUpdateRoomMembership(response, &metadata)
27778	}
27779	output := &UpdateRoomMembershipOutput{}
27780	out.Result = output
27781
27782	var buff [1024]byte
27783	ringBuffer := smithyio.NewRingBuffer(buff[:])
27784
27785	body := io.TeeReader(response.Body, ringBuffer)
27786
27787	decoder := json.NewDecoder(body)
27788	decoder.UseNumber()
27789	var shape interface{}
27790	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27791		var snapshot bytes.Buffer
27792		io.Copy(&snapshot, ringBuffer)
27793		err = &smithy.DeserializationError{
27794			Err:      fmt.Errorf("failed to decode response body, %w", err),
27795			Snapshot: snapshot.Bytes(),
27796		}
27797		return out, metadata, err
27798	}
27799
27800	err = awsRestjson1_deserializeOpDocumentUpdateRoomMembershipOutput(&output, shape)
27801	if err != nil {
27802		var snapshot bytes.Buffer
27803		io.Copy(&snapshot, ringBuffer)
27804		return out, metadata, &smithy.DeserializationError{
27805			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27806			Snapshot: snapshot.Bytes(),
27807		}
27808	}
27809
27810	return out, metadata, err
27811}
27812
27813func awsRestjson1_deserializeOpErrorUpdateRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27814	var errorBuffer bytes.Buffer
27815	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27816		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27817	}
27818	errorBody := bytes.NewReader(errorBuffer.Bytes())
27819
27820	errorCode := "UnknownError"
27821	errorMessage := errorCode
27822
27823	code := response.Header.Get("X-Amzn-ErrorType")
27824	if len(code) != 0 {
27825		errorCode = restjson.SanitizeErrorCode(code)
27826	}
27827
27828	var buff [1024]byte
27829	ringBuffer := smithyio.NewRingBuffer(buff[:])
27830
27831	body := io.TeeReader(errorBody, ringBuffer)
27832	decoder := json.NewDecoder(body)
27833	decoder.UseNumber()
27834	code, message, err := restjson.GetErrorInfo(decoder)
27835	if err != nil {
27836		var snapshot bytes.Buffer
27837		io.Copy(&snapshot, ringBuffer)
27838		err = &smithy.DeserializationError{
27839			Err:      fmt.Errorf("failed to decode response body, %w", err),
27840			Snapshot: snapshot.Bytes(),
27841		}
27842		return err
27843	}
27844
27845	errorBody.Seek(0, io.SeekStart)
27846	if len(code) != 0 {
27847		errorCode = restjson.SanitizeErrorCode(code)
27848	}
27849	if len(message) != 0 {
27850		errorMessage = message
27851	}
27852
27853	switch {
27854	case strings.EqualFold("BadRequestException", errorCode):
27855		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27856
27857	case strings.EqualFold("ForbiddenException", errorCode):
27858		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27859
27860	case strings.EqualFold("NotFoundException", errorCode):
27861		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27862
27863	case strings.EqualFold("ServiceFailureException", errorCode):
27864		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27865
27866	case strings.EqualFold("ServiceUnavailableException", errorCode):
27867		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27868
27869	case strings.EqualFold("ThrottledClientException", errorCode):
27870		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27871
27872	case strings.EqualFold("UnauthorizedClientException", errorCode):
27873		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27874
27875	default:
27876		genericError := &smithy.GenericAPIError{
27877			Code:    errorCode,
27878			Message: errorMessage,
27879		}
27880		return genericError
27881
27882	}
27883}
27884
27885func awsRestjson1_deserializeOpDocumentUpdateRoomMembershipOutput(v **UpdateRoomMembershipOutput, value interface{}) error {
27886	if v == nil {
27887		return fmt.Errorf("unexpected nil of type %T", v)
27888	}
27889	if value == nil {
27890		return nil
27891	}
27892
27893	shape, ok := value.(map[string]interface{})
27894	if !ok {
27895		return fmt.Errorf("unexpected JSON type %v", value)
27896	}
27897
27898	var sv *UpdateRoomMembershipOutput
27899	if *v == nil {
27900		sv = &UpdateRoomMembershipOutput{}
27901	} else {
27902		sv = *v
27903	}
27904
27905	for key, value := range shape {
27906		switch key {
27907		case "RoomMembership":
27908			if err := awsRestjson1_deserializeDocumentRoomMembership(&sv.RoomMembership, value); err != nil {
27909				return err
27910			}
27911
27912		default:
27913			_, _ = key, value
27914
27915		}
27916	}
27917	*v = sv
27918	return nil
27919}
27920
27921type awsRestjson1_deserializeOpUpdateSipMediaApplication struct {
27922}
27923
27924func (*awsRestjson1_deserializeOpUpdateSipMediaApplication) ID() string {
27925	return "OperationDeserializer"
27926}
27927
27928func (m *awsRestjson1_deserializeOpUpdateSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27929	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27930) {
27931	out, metadata, err = next.HandleDeserialize(ctx, in)
27932	if err != nil {
27933		return out, metadata, err
27934	}
27935
27936	response, ok := out.RawResponse.(*smithyhttp.Response)
27937	if !ok {
27938		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27939	}
27940
27941	if response.StatusCode < 200 || response.StatusCode >= 300 {
27942		return out, metadata, awsRestjson1_deserializeOpErrorUpdateSipMediaApplication(response, &metadata)
27943	}
27944	output := &UpdateSipMediaApplicationOutput{}
27945	out.Result = output
27946
27947	var buff [1024]byte
27948	ringBuffer := smithyio.NewRingBuffer(buff[:])
27949
27950	body := io.TeeReader(response.Body, ringBuffer)
27951
27952	decoder := json.NewDecoder(body)
27953	decoder.UseNumber()
27954	var shape interface{}
27955	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27956		var snapshot bytes.Buffer
27957		io.Copy(&snapshot, ringBuffer)
27958		err = &smithy.DeserializationError{
27959			Err:      fmt.Errorf("failed to decode response body, %w", err),
27960			Snapshot: snapshot.Bytes(),
27961		}
27962		return out, metadata, err
27963	}
27964
27965	err = awsRestjson1_deserializeOpDocumentUpdateSipMediaApplicationOutput(&output, shape)
27966	if err != nil {
27967		var snapshot bytes.Buffer
27968		io.Copy(&snapshot, ringBuffer)
27969		return out, metadata, &smithy.DeserializationError{
27970			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27971			Snapshot: snapshot.Bytes(),
27972		}
27973	}
27974
27975	return out, metadata, err
27976}
27977
27978func awsRestjson1_deserializeOpErrorUpdateSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27979	var errorBuffer bytes.Buffer
27980	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27981		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27982	}
27983	errorBody := bytes.NewReader(errorBuffer.Bytes())
27984
27985	errorCode := "UnknownError"
27986	errorMessage := errorCode
27987
27988	code := response.Header.Get("X-Amzn-ErrorType")
27989	if len(code) != 0 {
27990		errorCode = restjson.SanitizeErrorCode(code)
27991	}
27992
27993	var buff [1024]byte
27994	ringBuffer := smithyio.NewRingBuffer(buff[:])
27995
27996	body := io.TeeReader(errorBody, ringBuffer)
27997	decoder := json.NewDecoder(body)
27998	decoder.UseNumber()
27999	code, message, err := restjson.GetErrorInfo(decoder)
28000	if err != nil {
28001		var snapshot bytes.Buffer
28002		io.Copy(&snapshot, ringBuffer)
28003		err = &smithy.DeserializationError{
28004			Err:      fmt.Errorf("failed to decode response body, %w", err),
28005			Snapshot: snapshot.Bytes(),
28006		}
28007		return err
28008	}
28009
28010	errorBody.Seek(0, io.SeekStart)
28011	if len(code) != 0 {
28012		errorCode = restjson.SanitizeErrorCode(code)
28013	}
28014	if len(message) != 0 {
28015		errorMessage = message
28016	}
28017
28018	switch {
28019	case strings.EqualFold("BadRequestException", errorCode):
28020		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28021
28022	case strings.EqualFold("ConflictException", errorCode):
28023		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
28024
28025	case strings.EqualFold("ForbiddenException", errorCode):
28026		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28027
28028	case strings.EqualFold("NotFoundException", errorCode):
28029		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28030
28031	case strings.EqualFold("ServiceFailureException", errorCode):
28032		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28033
28034	case strings.EqualFold("ServiceUnavailableException", errorCode):
28035		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28036
28037	case strings.EqualFold("ThrottledClientException", errorCode):
28038		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28039
28040	case strings.EqualFold("UnauthorizedClientException", errorCode):
28041		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28042
28043	default:
28044		genericError := &smithy.GenericAPIError{
28045			Code:    errorCode,
28046			Message: errorMessage,
28047		}
28048		return genericError
28049
28050	}
28051}
28052
28053func awsRestjson1_deserializeOpDocumentUpdateSipMediaApplicationOutput(v **UpdateSipMediaApplicationOutput, value interface{}) error {
28054	if v == nil {
28055		return fmt.Errorf("unexpected nil of type %T", v)
28056	}
28057	if value == nil {
28058		return nil
28059	}
28060
28061	shape, ok := value.(map[string]interface{})
28062	if !ok {
28063		return fmt.Errorf("unexpected JSON type %v", value)
28064	}
28065
28066	var sv *UpdateSipMediaApplicationOutput
28067	if *v == nil {
28068		sv = &UpdateSipMediaApplicationOutput{}
28069	} else {
28070		sv = *v
28071	}
28072
28073	for key, value := range shape {
28074		switch key {
28075		case "SipMediaApplication":
28076			if err := awsRestjson1_deserializeDocumentSipMediaApplication(&sv.SipMediaApplication, value); err != nil {
28077				return err
28078			}
28079
28080		default:
28081			_, _ = key, value
28082
28083		}
28084	}
28085	*v = sv
28086	return nil
28087}
28088
28089type awsRestjson1_deserializeOpUpdateSipMediaApplicationCall struct {
28090}
28091
28092func (*awsRestjson1_deserializeOpUpdateSipMediaApplicationCall) ID() string {
28093	return "OperationDeserializer"
28094}
28095
28096func (m *awsRestjson1_deserializeOpUpdateSipMediaApplicationCall) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
28097	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
28098) {
28099	out, metadata, err = next.HandleDeserialize(ctx, in)
28100	if err != nil {
28101		return out, metadata, err
28102	}
28103
28104	response, ok := out.RawResponse.(*smithyhttp.Response)
28105	if !ok {
28106		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
28107	}
28108
28109	if response.StatusCode < 200 || response.StatusCode >= 300 {
28110		return out, metadata, awsRestjson1_deserializeOpErrorUpdateSipMediaApplicationCall(response, &metadata)
28111	}
28112	output := &UpdateSipMediaApplicationCallOutput{}
28113	out.Result = output
28114
28115	var buff [1024]byte
28116	ringBuffer := smithyio.NewRingBuffer(buff[:])
28117
28118	body := io.TeeReader(response.Body, ringBuffer)
28119
28120	decoder := json.NewDecoder(body)
28121	decoder.UseNumber()
28122	var shape interface{}
28123	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28124		var snapshot bytes.Buffer
28125		io.Copy(&snapshot, ringBuffer)
28126		err = &smithy.DeserializationError{
28127			Err:      fmt.Errorf("failed to decode response body, %w", err),
28128			Snapshot: snapshot.Bytes(),
28129		}
28130		return out, metadata, err
28131	}
28132
28133	err = awsRestjson1_deserializeOpDocumentUpdateSipMediaApplicationCallOutput(&output, shape)
28134	if err != nil {
28135		var snapshot bytes.Buffer
28136		io.Copy(&snapshot, ringBuffer)
28137		return out, metadata, &smithy.DeserializationError{
28138			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
28139			Snapshot: snapshot.Bytes(),
28140		}
28141	}
28142
28143	return out, metadata, err
28144}
28145
28146func awsRestjson1_deserializeOpErrorUpdateSipMediaApplicationCall(response *smithyhttp.Response, metadata *middleware.Metadata) error {
28147	var errorBuffer bytes.Buffer
28148	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
28149		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
28150	}
28151	errorBody := bytes.NewReader(errorBuffer.Bytes())
28152
28153	errorCode := "UnknownError"
28154	errorMessage := errorCode
28155
28156	code := response.Header.Get("X-Amzn-ErrorType")
28157	if len(code) != 0 {
28158		errorCode = restjson.SanitizeErrorCode(code)
28159	}
28160
28161	var buff [1024]byte
28162	ringBuffer := smithyio.NewRingBuffer(buff[:])
28163
28164	body := io.TeeReader(errorBody, ringBuffer)
28165	decoder := json.NewDecoder(body)
28166	decoder.UseNumber()
28167	code, message, err := restjson.GetErrorInfo(decoder)
28168	if err != nil {
28169		var snapshot bytes.Buffer
28170		io.Copy(&snapshot, ringBuffer)
28171		err = &smithy.DeserializationError{
28172			Err:      fmt.Errorf("failed to decode response body, %w", err),
28173			Snapshot: snapshot.Bytes(),
28174		}
28175		return err
28176	}
28177
28178	errorBody.Seek(0, io.SeekStart)
28179	if len(code) != 0 {
28180		errorCode = restjson.SanitizeErrorCode(code)
28181	}
28182	if len(message) != 0 {
28183		errorMessage = message
28184	}
28185
28186	switch {
28187	case strings.EqualFold("BadRequestException", errorCode):
28188		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28189
28190	case strings.EqualFold("ForbiddenException", errorCode):
28191		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28192
28193	case strings.EqualFold("NotFoundException", errorCode):
28194		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28195
28196	case strings.EqualFold("ResourceLimitExceededException", errorCode):
28197		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
28198
28199	case strings.EqualFold("ServiceFailureException", errorCode):
28200		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28201
28202	case strings.EqualFold("ServiceUnavailableException", errorCode):
28203		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28204
28205	case strings.EqualFold("ThrottledClientException", errorCode):
28206		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28207
28208	case strings.EqualFold("UnauthorizedClientException", errorCode):
28209		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28210
28211	default:
28212		genericError := &smithy.GenericAPIError{
28213			Code:    errorCode,
28214			Message: errorMessage,
28215		}
28216		return genericError
28217
28218	}
28219}
28220
28221func awsRestjson1_deserializeOpDocumentUpdateSipMediaApplicationCallOutput(v **UpdateSipMediaApplicationCallOutput, value interface{}) error {
28222	if v == nil {
28223		return fmt.Errorf("unexpected nil of type %T", v)
28224	}
28225	if value == nil {
28226		return nil
28227	}
28228
28229	shape, ok := value.(map[string]interface{})
28230	if !ok {
28231		return fmt.Errorf("unexpected JSON type %v", value)
28232	}
28233
28234	var sv *UpdateSipMediaApplicationCallOutput
28235	if *v == nil {
28236		sv = &UpdateSipMediaApplicationCallOutput{}
28237	} else {
28238		sv = *v
28239	}
28240
28241	for key, value := range shape {
28242		switch key {
28243		case "SipMediaApplicationCall":
28244			if err := awsRestjson1_deserializeDocumentSipMediaApplicationCall(&sv.SipMediaApplicationCall, value); err != nil {
28245				return err
28246			}
28247
28248		default:
28249			_, _ = key, value
28250
28251		}
28252	}
28253	*v = sv
28254	return nil
28255}
28256
28257type awsRestjson1_deserializeOpUpdateSipRule struct {
28258}
28259
28260func (*awsRestjson1_deserializeOpUpdateSipRule) ID() string {
28261	return "OperationDeserializer"
28262}
28263
28264func (m *awsRestjson1_deserializeOpUpdateSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
28265	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
28266) {
28267	out, metadata, err = next.HandleDeserialize(ctx, in)
28268	if err != nil {
28269		return out, metadata, err
28270	}
28271
28272	response, ok := out.RawResponse.(*smithyhttp.Response)
28273	if !ok {
28274		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
28275	}
28276
28277	if response.StatusCode < 200 || response.StatusCode >= 300 {
28278		return out, metadata, awsRestjson1_deserializeOpErrorUpdateSipRule(response, &metadata)
28279	}
28280	output := &UpdateSipRuleOutput{}
28281	out.Result = output
28282
28283	var buff [1024]byte
28284	ringBuffer := smithyio.NewRingBuffer(buff[:])
28285
28286	body := io.TeeReader(response.Body, ringBuffer)
28287
28288	decoder := json.NewDecoder(body)
28289	decoder.UseNumber()
28290	var shape interface{}
28291	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28292		var snapshot bytes.Buffer
28293		io.Copy(&snapshot, ringBuffer)
28294		err = &smithy.DeserializationError{
28295			Err:      fmt.Errorf("failed to decode response body, %w", err),
28296			Snapshot: snapshot.Bytes(),
28297		}
28298		return out, metadata, err
28299	}
28300
28301	err = awsRestjson1_deserializeOpDocumentUpdateSipRuleOutput(&output, shape)
28302	if err != nil {
28303		var snapshot bytes.Buffer
28304		io.Copy(&snapshot, ringBuffer)
28305		return out, metadata, &smithy.DeserializationError{
28306			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
28307			Snapshot: snapshot.Bytes(),
28308		}
28309	}
28310
28311	return out, metadata, err
28312}
28313
28314func awsRestjson1_deserializeOpErrorUpdateSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
28315	var errorBuffer bytes.Buffer
28316	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
28317		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
28318	}
28319	errorBody := bytes.NewReader(errorBuffer.Bytes())
28320
28321	errorCode := "UnknownError"
28322	errorMessage := errorCode
28323
28324	code := response.Header.Get("X-Amzn-ErrorType")
28325	if len(code) != 0 {
28326		errorCode = restjson.SanitizeErrorCode(code)
28327	}
28328
28329	var buff [1024]byte
28330	ringBuffer := smithyio.NewRingBuffer(buff[:])
28331
28332	body := io.TeeReader(errorBody, ringBuffer)
28333	decoder := json.NewDecoder(body)
28334	decoder.UseNumber()
28335	code, message, err := restjson.GetErrorInfo(decoder)
28336	if err != nil {
28337		var snapshot bytes.Buffer
28338		io.Copy(&snapshot, ringBuffer)
28339		err = &smithy.DeserializationError{
28340			Err:      fmt.Errorf("failed to decode response body, %w", err),
28341			Snapshot: snapshot.Bytes(),
28342		}
28343		return err
28344	}
28345
28346	errorBody.Seek(0, io.SeekStart)
28347	if len(code) != 0 {
28348		errorCode = restjson.SanitizeErrorCode(code)
28349	}
28350	if len(message) != 0 {
28351		errorMessage = message
28352	}
28353
28354	switch {
28355	case strings.EqualFold("BadRequestException", errorCode):
28356		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28357
28358	case strings.EqualFold("ConflictException", errorCode):
28359		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
28360
28361	case strings.EqualFold("ForbiddenException", errorCode):
28362		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28363
28364	case strings.EqualFold("NotFoundException", errorCode):
28365		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28366
28367	case strings.EqualFold("ResourceLimitExceededException", errorCode):
28368		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
28369
28370	case strings.EqualFold("ServiceFailureException", errorCode):
28371		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28372
28373	case strings.EqualFold("ServiceUnavailableException", errorCode):
28374		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28375
28376	case strings.EqualFold("ThrottledClientException", errorCode):
28377		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28378
28379	case strings.EqualFold("UnauthorizedClientException", errorCode):
28380		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28381
28382	default:
28383		genericError := &smithy.GenericAPIError{
28384			Code:    errorCode,
28385			Message: errorMessage,
28386		}
28387		return genericError
28388
28389	}
28390}
28391
28392func awsRestjson1_deserializeOpDocumentUpdateSipRuleOutput(v **UpdateSipRuleOutput, value interface{}) error {
28393	if v == nil {
28394		return fmt.Errorf("unexpected nil of type %T", v)
28395	}
28396	if value == nil {
28397		return nil
28398	}
28399
28400	shape, ok := value.(map[string]interface{})
28401	if !ok {
28402		return fmt.Errorf("unexpected JSON type %v", value)
28403	}
28404
28405	var sv *UpdateSipRuleOutput
28406	if *v == nil {
28407		sv = &UpdateSipRuleOutput{}
28408	} else {
28409		sv = *v
28410	}
28411
28412	for key, value := range shape {
28413		switch key {
28414		case "SipRule":
28415			if err := awsRestjson1_deserializeDocumentSipRule(&sv.SipRule, value); err != nil {
28416				return err
28417			}
28418
28419		default:
28420			_, _ = key, value
28421
28422		}
28423	}
28424	*v = sv
28425	return nil
28426}
28427
28428type awsRestjson1_deserializeOpUpdateUser struct {
28429}
28430
28431func (*awsRestjson1_deserializeOpUpdateUser) ID() string {
28432	return "OperationDeserializer"
28433}
28434
28435func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
28436	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
28437) {
28438	out, metadata, err = next.HandleDeserialize(ctx, in)
28439	if err != nil {
28440		return out, metadata, err
28441	}
28442
28443	response, ok := out.RawResponse.(*smithyhttp.Response)
28444	if !ok {
28445		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
28446	}
28447
28448	if response.StatusCode < 200 || response.StatusCode >= 300 {
28449		return out, metadata, awsRestjson1_deserializeOpErrorUpdateUser(response, &metadata)
28450	}
28451	output := &UpdateUserOutput{}
28452	out.Result = output
28453
28454	var buff [1024]byte
28455	ringBuffer := smithyio.NewRingBuffer(buff[:])
28456
28457	body := io.TeeReader(response.Body, ringBuffer)
28458
28459	decoder := json.NewDecoder(body)
28460	decoder.UseNumber()
28461	var shape interface{}
28462	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28463		var snapshot bytes.Buffer
28464		io.Copy(&snapshot, ringBuffer)
28465		err = &smithy.DeserializationError{
28466			Err:      fmt.Errorf("failed to decode response body, %w", err),
28467			Snapshot: snapshot.Bytes(),
28468		}
28469		return out, metadata, err
28470	}
28471
28472	err = awsRestjson1_deserializeOpDocumentUpdateUserOutput(&output, shape)
28473	if err != nil {
28474		var snapshot bytes.Buffer
28475		io.Copy(&snapshot, ringBuffer)
28476		return out, metadata, &smithy.DeserializationError{
28477			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
28478			Snapshot: snapshot.Bytes(),
28479		}
28480	}
28481
28482	return out, metadata, err
28483}
28484
28485func awsRestjson1_deserializeOpErrorUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
28486	var errorBuffer bytes.Buffer
28487	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
28488		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
28489	}
28490	errorBody := bytes.NewReader(errorBuffer.Bytes())
28491
28492	errorCode := "UnknownError"
28493	errorMessage := errorCode
28494
28495	code := response.Header.Get("X-Amzn-ErrorType")
28496	if len(code) != 0 {
28497		errorCode = restjson.SanitizeErrorCode(code)
28498	}
28499
28500	var buff [1024]byte
28501	ringBuffer := smithyio.NewRingBuffer(buff[:])
28502
28503	body := io.TeeReader(errorBody, ringBuffer)
28504	decoder := json.NewDecoder(body)
28505	decoder.UseNumber()
28506	code, message, err := restjson.GetErrorInfo(decoder)
28507	if err != nil {
28508		var snapshot bytes.Buffer
28509		io.Copy(&snapshot, ringBuffer)
28510		err = &smithy.DeserializationError{
28511			Err:      fmt.Errorf("failed to decode response body, %w", err),
28512			Snapshot: snapshot.Bytes(),
28513		}
28514		return err
28515	}
28516
28517	errorBody.Seek(0, io.SeekStart)
28518	if len(code) != 0 {
28519		errorCode = restjson.SanitizeErrorCode(code)
28520	}
28521	if len(message) != 0 {
28522		errorMessage = message
28523	}
28524
28525	switch {
28526	case strings.EqualFold("BadRequestException", errorCode):
28527		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28528
28529	case strings.EqualFold("ForbiddenException", errorCode):
28530		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28531
28532	case strings.EqualFold("NotFoundException", errorCode):
28533		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28534
28535	case strings.EqualFold("ServiceFailureException", errorCode):
28536		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28537
28538	case strings.EqualFold("ServiceUnavailableException", errorCode):
28539		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28540
28541	case strings.EqualFold("ThrottledClientException", errorCode):
28542		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28543
28544	case strings.EqualFold("UnauthorizedClientException", errorCode):
28545		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28546
28547	default:
28548		genericError := &smithy.GenericAPIError{
28549			Code:    errorCode,
28550			Message: errorMessage,
28551		}
28552		return genericError
28553
28554	}
28555}
28556
28557func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, value interface{}) error {
28558	if v == nil {
28559		return fmt.Errorf("unexpected nil of type %T", v)
28560	}
28561	if value == nil {
28562		return nil
28563	}
28564
28565	shape, ok := value.(map[string]interface{})
28566	if !ok {
28567		return fmt.Errorf("unexpected JSON type %v", value)
28568	}
28569
28570	var sv *UpdateUserOutput
28571	if *v == nil {
28572		sv = &UpdateUserOutput{}
28573	} else {
28574		sv = *v
28575	}
28576
28577	for key, value := range shape {
28578		switch key {
28579		case "User":
28580			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
28581				return err
28582			}
28583
28584		default:
28585			_, _ = key, value
28586
28587		}
28588	}
28589	*v = sv
28590	return nil
28591}
28592
28593type awsRestjson1_deserializeOpUpdateUserSettings struct {
28594}
28595
28596func (*awsRestjson1_deserializeOpUpdateUserSettings) ID() string {
28597	return "OperationDeserializer"
28598}
28599
28600func (m *awsRestjson1_deserializeOpUpdateUserSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
28601	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
28602) {
28603	out, metadata, err = next.HandleDeserialize(ctx, in)
28604	if err != nil {
28605		return out, metadata, err
28606	}
28607
28608	response, ok := out.RawResponse.(*smithyhttp.Response)
28609	if !ok {
28610		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
28611	}
28612
28613	if response.StatusCode < 200 || response.StatusCode >= 300 {
28614		return out, metadata, awsRestjson1_deserializeOpErrorUpdateUserSettings(response, &metadata)
28615	}
28616	output := &UpdateUserSettingsOutput{}
28617	out.Result = output
28618
28619	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
28620		return out, metadata, &smithy.DeserializationError{
28621			Err: fmt.Errorf("failed to discard response body, %w", err),
28622		}
28623	}
28624
28625	return out, metadata, err
28626}
28627
28628func awsRestjson1_deserializeOpErrorUpdateUserSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
28629	var errorBuffer bytes.Buffer
28630	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
28631		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
28632	}
28633	errorBody := bytes.NewReader(errorBuffer.Bytes())
28634
28635	errorCode := "UnknownError"
28636	errorMessage := errorCode
28637
28638	code := response.Header.Get("X-Amzn-ErrorType")
28639	if len(code) != 0 {
28640		errorCode = restjson.SanitizeErrorCode(code)
28641	}
28642
28643	var buff [1024]byte
28644	ringBuffer := smithyio.NewRingBuffer(buff[:])
28645
28646	body := io.TeeReader(errorBody, ringBuffer)
28647	decoder := json.NewDecoder(body)
28648	decoder.UseNumber()
28649	code, message, err := restjson.GetErrorInfo(decoder)
28650	if err != nil {
28651		var snapshot bytes.Buffer
28652		io.Copy(&snapshot, ringBuffer)
28653		err = &smithy.DeserializationError{
28654			Err:      fmt.Errorf("failed to decode response body, %w", err),
28655			Snapshot: snapshot.Bytes(),
28656		}
28657		return err
28658	}
28659
28660	errorBody.Seek(0, io.SeekStart)
28661	if len(code) != 0 {
28662		errorCode = restjson.SanitizeErrorCode(code)
28663	}
28664	if len(message) != 0 {
28665		errorMessage = message
28666	}
28667
28668	switch {
28669	case strings.EqualFold("BadRequestException", errorCode):
28670		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28671
28672	case strings.EqualFold("ForbiddenException", errorCode):
28673		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28674
28675	case strings.EqualFold("NotFoundException", errorCode):
28676		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28677
28678	case strings.EqualFold("ServiceFailureException", errorCode):
28679		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28680
28681	case strings.EqualFold("ServiceUnavailableException", errorCode):
28682		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28683
28684	case strings.EqualFold("ThrottledClientException", errorCode):
28685		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28686
28687	case strings.EqualFold("UnauthorizedClientException", errorCode):
28688		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28689
28690	default:
28691		genericError := &smithy.GenericAPIError{
28692			Code:    errorCode,
28693			Message: errorMessage,
28694		}
28695		return genericError
28696
28697	}
28698}
28699
28700type awsRestjson1_deserializeOpUpdateVoiceConnector struct {
28701}
28702
28703func (*awsRestjson1_deserializeOpUpdateVoiceConnector) ID() string {
28704	return "OperationDeserializer"
28705}
28706
28707func (m *awsRestjson1_deserializeOpUpdateVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
28708	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
28709) {
28710	out, metadata, err = next.HandleDeserialize(ctx, in)
28711	if err != nil {
28712		return out, metadata, err
28713	}
28714
28715	response, ok := out.RawResponse.(*smithyhttp.Response)
28716	if !ok {
28717		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
28718	}
28719
28720	if response.StatusCode < 200 || response.StatusCode >= 300 {
28721		return out, metadata, awsRestjson1_deserializeOpErrorUpdateVoiceConnector(response, &metadata)
28722	}
28723	output := &UpdateVoiceConnectorOutput{}
28724	out.Result = output
28725
28726	var buff [1024]byte
28727	ringBuffer := smithyio.NewRingBuffer(buff[:])
28728
28729	body := io.TeeReader(response.Body, ringBuffer)
28730
28731	decoder := json.NewDecoder(body)
28732	decoder.UseNumber()
28733	var shape interface{}
28734	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28735		var snapshot bytes.Buffer
28736		io.Copy(&snapshot, ringBuffer)
28737		err = &smithy.DeserializationError{
28738			Err:      fmt.Errorf("failed to decode response body, %w", err),
28739			Snapshot: snapshot.Bytes(),
28740		}
28741		return out, metadata, err
28742	}
28743
28744	err = awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorOutput(&output, shape)
28745	if err != nil {
28746		var snapshot bytes.Buffer
28747		io.Copy(&snapshot, ringBuffer)
28748		return out, metadata, &smithy.DeserializationError{
28749			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
28750			Snapshot: snapshot.Bytes(),
28751		}
28752	}
28753
28754	return out, metadata, err
28755}
28756
28757func awsRestjson1_deserializeOpErrorUpdateVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
28758	var errorBuffer bytes.Buffer
28759	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
28760		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
28761	}
28762	errorBody := bytes.NewReader(errorBuffer.Bytes())
28763
28764	errorCode := "UnknownError"
28765	errorMessage := errorCode
28766
28767	code := response.Header.Get("X-Amzn-ErrorType")
28768	if len(code) != 0 {
28769		errorCode = restjson.SanitizeErrorCode(code)
28770	}
28771
28772	var buff [1024]byte
28773	ringBuffer := smithyio.NewRingBuffer(buff[:])
28774
28775	body := io.TeeReader(errorBody, ringBuffer)
28776	decoder := json.NewDecoder(body)
28777	decoder.UseNumber()
28778	code, message, err := restjson.GetErrorInfo(decoder)
28779	if err != nil {
28780		var snapshot bytes.Buffer
28781		io.Copy(&snapshot, ringBuffer)
28782		err = &smithy.DeserializationError{
28783			Err:      fmt.Errorf("failed to decode response body, %w", err),
28784			Snapshot: snapshot.Bytes(),
28785		}
28786		return err
28787	}
28788
28789	errorBody.Seek(0, io.SeekStart)
28790	if len(code) != 0 {
28791		errorCode = restjson.SanitizeErrorCode(code)
28792	}
28793	if len(message) != 0 {
28794		errorMessage = message
28795	}
28796
28797	switch {
28798	case strings.EqualFold("BadRequestException", errorCode):
28799		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28800
28801	case strings.EqualFold("ForbiddenException", errorCode):
28802		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28803
28804	case strings.EqualFold("NotFoundException", errorCode):
28805		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28806
28807	case strings.EqualFold("ServiceFailureException", errorCode):
28808		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28809
28810	case strings.EqualFold("ServiceUnavailableException", errorCode):
28811		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28812
28813	case strings.EqualFold("ThrottledClientException", errorCode):
28814		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28815
28816	case strings.EqualFold("UnauthorizedClientException", errorCode):
28817		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28818
28819	default:
28820		genericError := &smithy.GenericAPIError{
28821			Code:    errorCode,
28822			Message: errorMessage,
28823		}
28824		return genericError
28825
28826	}
28827}
28828
28829func awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorOutput(v **UpdateVoiceConnectorOutput, value interface{}) error {
28830	if v == nil {
28831		return fmt.Errorf("unexpected nil of type %T", v)
28832	}
28833	if value == nil {
28834		return nil
28835	}
28836
28837	shape, ok := value.(map[string]interface{})
28838	if !ok {
28839		return fmt.Errorf("unexpected JSON type %v", value)
28840	}
28841
28842	var sv *UpdateVoiceConnectorOutput
28843	if *v == nil {
28844		sv = &UpdateVoiceConnectorOutput{}
28845	} else {
28846		sv = *v
28847	}
28848
28849	for key, value := range shape {
28850		switch key {
28851		case "VoiceConnector":
28852			if err := awsRestjson1_deserializeDocumentVoiceConnector(&sv.VoiceConnector, value); err != nil {
28853				return err
28854			}
28855
28856		default:
28857			_, _ = key, value
28858
28859		}
28860	}
28861	*v = sv
28862	return nil
28863}
28864
28865type awsRestjson1_deserializeOpUpdateVoiceConnectorGroup struct {
28866}
28867
28868func (*awsRestjson1_deserializeOpUpdateVoiceConnectorGroup) ID() string {
28869	return "OperationDeserializer"
28870}
28871
28872func (m *awsRestjson1_deserializeOpUpdateVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
28873	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
28874) {
28875	out, metadata, err = next.HandleDeserialize(ctx, in)
28876	if err != nil {
28877		return out, metadata, err
28878	}
28879
28880	response, ok := out.RawResponse.(*smithyhttp.Response)
28881	if !ok {
28882		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
28883	}
28884
28885	if response.StatusCode < 200 || response.StatusCode >= 300 {
28886		return out, metadata, awsRestjson1_deserializeOpErrorUpdateVoiceConnectorGroup(response, &metadata)
28887	}
28888	output := &UpdateVoiceConnectorGroupOutput{}
28889	out.Result = output
28890
28891	var buff [1024]byte
28892	ringBuffer := smithyio.NewRingBuffer(buff[:])
28893
28894	body := io.TeeReader(response.Body, ringBuffer)
28895
28896	decoder := json.NewDecoder(body)
28897	decoder.UseNumber()
28898	var shape interface{}
28899	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28900		var snapshot bytes.Buffer
28901		io.Copy(&snapshot, ringBuffer)
28902		err = &smithy.DeserializationError{
28903			Err:      fmt.Errorf("failed to decode response body, %w", err),
28904			Snapshot: snapshot.Bytes(),
28905		}
28906		return out, metadata, err
28907	}
28908
28909	err = awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorGroupOutput(&output, shape)
28910	if err != nil {
28911		var snapshot bytes.Buffer
28912		io.Copy(&snapshot, ringBuffer)
28913		return out, metadata, &smithy.DeserializationError{
28914			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
28915			Snapshot: snapshot.Bytes(),
28916		}
28917	}
28918
28919	return out, metadata, err
28920}
28921
28922func awsRestjson1_deserializeOpErrorUpdateVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
28923	var errorBuffer bytes.Buffer
28924	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
28925		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
28926	}
28927	errorBody := bytes.NewReader(errorBuffer.Bytes())
28928
28929	errorCode := "UnknownError"
28930	errorMessage := errorCode
28931
28932	code := response.Header.Get("X-Amzn-ErrorType")
28933	if len(code) != 0 {
28934		errorCode = restjson.SanitizeErrorCode(code)
28935	}
28936
28937	var buff [1024]byte
28938	ringBuffer := smithyio.NewRingBuffer(buff[:])
28939
28940	body := io.TeeReader(errorBody, ringBuffer)
28941	decoder := json.NewDecoder(body)
28942	decoder.UseNumber()
28943	code, message, err := restjson.GetErrorInfo(decoder)
28944	if err != nil {
28945		var snapshot bytes.Buffer
28946		io.Copy(&snapshot, ringBuffer)
28947		err = &smithy.DeserializationError{
28948			Err:      fmt.Errorf("failed to decode response body, %w", err),
28949			Snapshot: snapshot.Bytes(),
28950		}
28951		return err
28952	}
28953
28954	errorBody.Seek(0, io.SeekStart)
28955	if len(code) != 0 {
28956		errorCode = restjson.SanitizeErrorCode(code)
28957	}
28958	if len(message) != 0 {
28959		errorMessage = message
28960	}
28961
28962	switch {
28963	case strings.EqualFold("BadRequestException", errorCode):
28964		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
28965
28966	case strings.EqualFold("ConflictException", errorCode):
28967		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
28968
28969	case strings.EqualFold("ForbiddenException", errorCode):
28970		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
28971
28972	case strings.EqualFold("NotFoundException", errorCode):
28973		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
28974
28975	case strings.EqualFold("ServiceFailureException", errorCode):
28976		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
28977
28978	case strings.EqualFold("ServiceUnavailableException", errorCode):
28979		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
28980
28981	case strings.EqualFold("ThrottledClientException", errorCode):
28982		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
28983
28984	case strings.EqualFold("UnauthorizedClientException", errorCode):
28985		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
28986
28987	default:
28988		genericError := &smithy.GenericAPIError{
28989			Code:    errorCode,
28990			Message: errorMessage,
28991		}
28992		return genericError
28993
28994	}
28995}
28996
28997func awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorGroupOutput(v **UpdateVoiceConnectorGroupOutput, value interface{}) error {
28998	if v == nil {
28999		return fmt.Errorf("unexpected nil of type %T", v)
29000	}
29001	if value == nil {
29002		return nil
29003	}
29004
29005	shape, ok := value.(map[string]interface{})
29006	if !ok {
29007		return fmt.Errorf("unexpected JSON type %v", value)
29008	}
29009
29010	var sv *UpdateVoiceConnectorGroupOutput
29011	if *v == nil {
29012		sv = &UpdateVoiceConnectorGroupOutput{}
29013	} else {
29014		sv = *v
29015	}
29016
29017	for key, value := range shape {
29018		switch key {
29019		case "VoiceConnectorGroup":
29020			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&sv.VoiceConnectorGroup, value); err != nil {
29021				return err
29022			}
29023
29024		default:
29025			_, _ = key, value
29026
29027		}
29028	}
29029	*v = sv
29030	return nil
29031}
29032
29033func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29034	output := &types.AccessDeniedException{}
29035	var buff [1024]byte
29036	ringBuffer := smithyio.NewRingBuffer(buff[:])
29037
29038	body := io.TeeReader(errorBody, ringBuffer)
29039	decoder := json.NewDecoder(body)
29040	decoder.UseNumber()
29041	var shape interface{}
29042	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29043		var snapshot bytes.Buffer
29044		io.Copy(&snapshot, ringBuffer)
29045		err = &smithy.DeserializationError{
29046			Err:      fmt.Errorf("failed to decode response body, %w", err),
29047			Snapshot: snapshot.Bytes(),
29048		}
29049		return err
29050	}
29051
29052	err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape)
29053
29054	if err != nil {
29055		var snapshot bytes.Buffer
29056		io.Copy(&snapshot, ringBuffer)
29057		err = &smithy.DeserializationError{
29058			Err:      fmt.Errorf("failed to decode response body, %w", err),
29059			Snapshot: snapshot.Bytes(),
29060		}
29061		return err
29062	}
29063
29064	errorBody.Seek(0, io.SeekStart)
29065
29066	return output
29067}
29068
29069func awsRestjson1_deserializeErrorBadRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29070	output := &types.BadRequestException{}
29071	var buff [1024]byte
29072	ringBuffer := smithyio.NewRingBuffer(buff[:])
29073
29074	body := io.TeeReader(errorBody, ringBuffer)
29075	decoder := json.NewDecoder(body)
29076	decoder.UseNumber()
29077	var shape interface{}
29078	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29079		var snapshot bytes.Buffer
29080		io.Copy(&snapshot, ringBuffer)
29081		err = &smithy.DeserializationError{
29082			Err:      fmt.Errorf("failed to decode response body, %w", err),
29083			Snapshot: snapshot.Bytes(),
29084		}
29085		return err
29086	}
29087
29088	err := awsRestjson1_deserializeDocumentBadRequestException(&output, shape)
29089
29090	if err != nil {
29091		var snapshot bytes.Buffer
29092		io.Copy(&snapshot, ringBuffer)
29093		err = &smithy.DeserializationError{
29094			Err:      fmt.Errorf("failed to decode response body, %w", err),
29095			Snapshot: snapshot.Bytes(),
29096		}
29097		return err
29098	}
29099
29100	errorBody.Seek(0, io.SeekStart)
29101
29102	return output
29103}
29104
29105func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29106	output := &types.ConflictException{}
29107	var buff [1024]byte
29108	ringBuffer := smithyio.NewRingBuffer(buff[:])
29109
29110	body := io.TeeReader(errorBody, ringBuffer)
29111	decoder := json.NewDecoder(body)
29112	decoder.UseNumber()
29113	var shape interface{}
29114	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29115		var snapshot bytes.Buffer
29116		io.Copy(&snapshot, ringBuffer)
29117		err = &smithy.DeserializationError{
29118			Err:      fmt.Errorf("failed to decode response body, %w", err),
29119			Snapshot: snapshot.Bytes(),
29120		}
29121		return err
29122	}
29123
29124	err := awsRestjson1_deserializeDocumentConflictException(&output, shape)
29125
29126	if err != nil {
29127		var snapshot bytes.Buffer
29128		io.Copy(&snapshot, ringBuffer)
29129		err = &smithy.DeserializationError{
29130			Err:      fmt.Errorf("failed to decode response body, %w", err),
29131			Snapshot: snapshot.Bytes(),
29132		}
29133		return err
29134	}
29135
29136	errorBody.Seek(0, io.SeekStart)
29137
29138	return output
29139}
29140
29141func awsRestjson1_deserializeErrorForbiddenException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29142	output := &types.ForbiddenException{}
29143	var buff [1024]byte
29144	ringBuffer := smithyio.NewRingBuffer(buff[:])
29145
29146	body := io.TeeReader(errorBody, ringBuffer)
29147	decoder := json.NewDecoder(body)
29148	decoder.UseNumber()
29149	var shape interface{}
29150	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29151		var snapshot bytes.Buffer
29152		io.Copy(&snapshot, ringBuffer)
29153		err = &smithy.DeserializationError{
29154			Err:      fmt.Errorf("failed to decode response body, %w", err),
29155			Snapshot: snapshot.Bytes(),
29156		}
29157		return err
29158	}
29159
29160	err := awsRestjson1_deserializeDocumentForbiddenException(&output, shape)
29161
29162	if err != nil {
29163		var snapshot bytes.Buffer
29164		io.Copy(&snapshot, ringBuffer)
29165		err = &smithy.DeserializationError{
29166			Err:      fmt.Errorf("failed to decode response body, %w", err),
29167			Snapshot: snapshot.Bytes(),
29168		}
29169		return err
29170	}
29171
29172	errorBody.Seek(0, io.SeekStart)
29173
29174	return output
29175}
29176
29177func awsRestjson1_deserializeErrorNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29178	output := &types.NotFoundException{}
29179	var buff [1024]byte
29180	ringBuffer := smithyio.NewRingBuffer(buff[:])
29181
29182	body := io.TeeReader(errorBody, ringBuffer)
29183	decoder := json.NewDecoder(body)
29184	decoder.UseNumber()
29185	var shape interface{}
29186	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29187		var snapshot bytes.Buffer
29188		io.Copy(&snapshot, ringBuffer)
29189		err = &smithy.DeserializationError{
29190			Err:      fmt.Errorf("failed to decode response body, %w", err),
29191			Snapshot: snapshot.Bytes(),
29192		}
29193		return err
29194	}
29195
29196	err := awsRestjson1_deserializeDocumentNotFoundException(&output, shape)
29197
29198	if err != nil {
29199		var snapshot bytes.Buffer
29200		io.Copy(&snapshot, ringBuffer)
29201		err = &smithy.DeserializationError{
29202			Err:      fmt.Errorf("failed to decode response body, %w", err),
29203			Snapshot: snapshot.Bytes(),
29204		}
29205		return err
29206	}
29207
29208	errorBody.Seek(0, io.SeekStart)
29209
29210	return output
29211}
29212
29213func awsRestjson1_deserializeErrorResourceLimitExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29214	output := &types.ResourceLimitExceededException{}
29215	var buff [1024]byte
29216	ringBuffer := smithyio.NewRingBuffer(buff[:])
29217
29218	body := io.TeeReader(errorBody, ringBuffer)
29219	decoder := json.NewDecoder(body)
29220	decoder.UseNumber()
29221	var shape interface{}
29222	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29223		var snapshot bytes.Buffer
29224		io.Copy(&snapshot, ringBuffer)
29225		err = &smithy.DeserializationError{
29226			Err:      fmt.Errorf("failed to decode response body, %w", err),
29227			Snapshot: snapshot.Bytes(),
29228		}
29229		return err
29230	}
29231
29232	err := awsRestjson1_deserializeDocumentResourceLimitExceededException(&output, shape)
29233
29234	if err != nil {
29235		var snapshot bytes.Buffer
29236		io.Copy(&snapshot, ringBuffer)
29237		err = &smithy.DeserializationError{
29238			Err:      fmt.Errorf("failed to decode response body, %w", err),
29239			Snapshot: snapshot.Bytes(),
29240		}
29241		return err
29242	}
29243
29244	errorBody.Seek(0, io.SeekStart)
29245
29246	return output
29247}
29248
29249func awsRestjson1_deserializeErrorServiceFailureException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29250	output := &types.ServiceFailureException{}
29251	var buff [1024]byte
29252	ringBuffer := smithyio.NewRingBuffer(buff[:])
29253
29254	body := io.TeeReader(errorBody, ringBuffer)
29255	decoder := json.NewDecoder(body)
29256	decoder.UseNumber()
29257	var shape interface{}
29258	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29259		var snapshot bytes.Buffer
29260		io.Copy(&snapshot, ringBuffer)
29261		err = &smithy.DeserializationError{
29262			Err:      fmt.Errorf("failed to decode response body, %w", err),
29263			Snapshot: snapshot.Bytes(),
29264		}
29265		return err
29266	}
29267
29268	err := awsRestjson1_deserializeDocumentServiceFailureException(&output, shape)
29269
29270	if err != nil {
29271		var snapshot bytes.Buffer
29272		io.Copy(&snapshot, ringBuffer)
29273		err = &smithy.DeserializationError{
29274			Err:      fmt.Errorf("failed to decode response body, %w", err),
29275			Snapshot: snapshot.Bytes(),
29276		}
29277		return err
29278	}
29279
29280	errorBody.Seek(0, io.SeekStart)
29281
29282	return output
29283}
29284
29285func awsRestjson1_deserializeErrorServiceUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29286	output := &types.ServiceUnavailableException{}
29287	var buff [1024]byte
29288	ringBuffer := smithyio.NewRingBuffer(buff[:])
29289
29290	body := io.TeeReader(errorBody, ringBuffer)
29291	decoder := json.NewDecoder(body)
29292	decoder.UseNumber()
29293	var shape interface{}
29294	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29295		var snapshot bytes.Buffer
29296		io.Copy(&snapshot, ringBuffer)
29297		err = &smithy.DeserializationError{
29298			Err:      fmt.Errorf("failed to decode response body, %w", err),
29299			Snapshot: snapshot.Bytes(),
29300		}
29301		return err
29302	}
29303
29304	err := awsRestjson1_deserializeDocumentServiceUnavailableException(&output, shape)
29305
29306	if err != nil {
29307		var snapshot bytes.Buffer
29308		io.Copy(&snapshot, ringBuffer)
29309		err = &smithy.DeserializationError{
29310			Err:      fmt.Errorf("failed to decode response body, %w", err),
29311			Snapshot: snapshot.Bytes(),
29312		}
29313		return err
29314	}
29315
29316	errorBody.Seek(0, io.SeekStart)
29317
29318	return output
29319}
29320
29321func awsRestjson1_deserializeErrorThrottledClientException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29322	output := &types.ThrottledClientException{}
29323	var buff [1024]byte
29324	ringBuffer := smithyio.NewRingBuffer(buff[:])
29325
29326	body := io.TeeReader(errorBody, ringBuffer)
29327	decoder := json.NewDecoder(body)
29328	decoder.UseNumber()
29329	var shape interface{}
29330	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29331		var snapshot bytes.Buffer
29332		io.Copy(&snapshot, ringBuffer)
29333		err = &smithy.DeserializationError{
29334			Err:      fmt.Errorf("failed to decode response body, %w", err),
29335			Snapshot: snapshot.Bytes(),
29336		}
29337		return err
29338	}
29339
29340	err := awsRestjson1_deserializeDocumentThrottledClientException(&output, shape)
29341
29342	if err != nil {
29343		var snapshot bytes.Buffer
29344		io.Copy(&snapshot, ringBuffer)
29345		err = &smithy.DeserializationError{
29346			Err:      fmt.Errorf("failed to decode response body, %w", err),
29347			Snapshot: snapshot.Bytes(),
29348		}
29349		return err
29350	}
29351
29352	errorBody.Seek(0, io.SeekStart)
29353
29354	return output
29355}
29356
29357func awsRestjson1_deserializeErrorUnauthorizedClientException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29358	output := &types.UnauthorizedClientException{}
29359	var buff [1024]byte
29360	ringBuffer := smithyio.NewRingBuffer(buff[:])
29361
29362	body := io.TeeReader(errorBody, ringBuffer)
29363	decoder := json.NewDecoder(body)
29364	decoder.UseNumber()
29365	var shape interface{}
29366	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29367		var snapshot bytes.Buffer
29368		io.Copy(&snapshot, ringBuffer)
29369		err = &smithy.DeserializationError{
29370			Err:      fmt.Errorf("failed to decode response body, %w", err),
29371			Snapshot: snapshot.Bytes(),
29372		}
29373		return err
29374	}
29375
29376	err := awsRestjson1_deserializeDocumentUnauthorizedClientException(&output, shape)
29377
29378	if err != nil {
29379		var snapshot bytes.Buffer
29380		io.Copy(&snapshot, ringBuffer)
29381		err = &smithy.DeserializationError{
29382			Err:      fmt.Errorf("failed to decode response body, %w", err),
29383			Snapshot: snapshot.Bytes(),
29384		}
29385		return err
29386	}
29387
29388	errorBody.Seek(0, io.SeekStart)
29389
29390	return output
29391}
29392
29393func awsRestjson1_deserializeErrorUnprocessableEntityException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
29394	output := &types.UnprocessableEntityException{}
29395	var buff [1024]byte
29396	ringBuffer := smithyio.NewRingBuffer(buff[:])
29397
29398	body := io.TeeReader(errorBody, ringBuffer)
29399	decoder := json.NewDecoder(body)
29400	decoder.UseNumber()
29401	var shape interface{}
29402	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
29403		var snapshot bytes.Buffer
29404		io.Copy(&snapshot, ringBuffer)
29405		err = &smithy.DeserializationError{
29406			Err:      fmt.Errorf("failed to decode response body, %w", err),
29407			Snapshot: snapshot.Bytes(),
29408		}
29409		return err
29410	}
29411
29412	err := awsRestjson1_deserializeDocumentUnprocessableEntityException(&output, shape)
29413
29414	if err != nil {
29415		var snapshot bytes.Buffer
29416		io.Copy(&snapshot, ringBuffer)
29417		err = &smithy.DeserializationError{
29418			Err:      fmt.Errorf("failed to decode response body, %w", err),
29419			Snapshot: snapshot.Bytes(),
29420		}
29421		return err
29422	}
29423
29424	errorBody.Seek(0, io.SeekStart)
29425
29426	return output
29427}
29428
29429func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error {
29430	if v == nil {
29431		return fmt.Errorf("unexpected nil of type %T", v)
29432	}
29433	if value == nil {
29434		return nil
29435	}
29436
29437	shape, ok := value.(map[string]interface{})
29438	if !ok {
29439		return fmt.Errorf("unexpected JSON type %v", value)
29440	}
29441
29442	var sv *types.AccessDeniedException
29443	if *v == nil {
29444		sv = &types.AccessDeniedException{}
29445	} else {
29446		sv = *v
29447	}
29448
29449	for key, value := range shape {
29450		switch key {
29451		case "Code":
29452			if value != nil {
29453				jtv, ok := value.(string)
29454				if !ok {
29455					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
29456				}
29457				sv.Code = types.ErrorCode(jtv)
29458			}
29459
29460		case "Message":
29461			if value != nil {
29462				jtv, ok := value.(string)
29463				if !ok {
29464					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29465				}
29466				sv.Message = ptr.String(jtv)
29467			}
29468
29469		default:
29470			_, _ = key, value
29471
29472		}
29473	}
29474	*v = sv
29475	return nil
29476}
29477
29478func awsRestjson1_deserializeDocumentAccount(v **types.Account, value interface{}) error {
29479	if v == nil {
29480		return fmt.Errorf("unexpected nil of type %T", v)
29481	}
29482	if value == nil {
29483		return nil
29484	}
29485
29486	shape, ok := value.(map[string]interface{})
29487	if !ok {
29488		return fmt.Errorf("unexpected JSON type %v", value)
29489	}
29490
29491	var sv *types.Account
29492	if *v == nil {
29493		sv = &types.Account{}
29494	} else {
29495		sv = *v
29496	}
29497
29498	for key, value := range shape {
29499		switch key {
29500		case "AccountId":
29501			if value != nil {
29502				jtv, ok := value.(string)
29503				if !ok {
29504					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29505				}
29506				sv.AccountId = ptr.String(jtv)
29507			}
29508
29509		case "AccountStatus":
29510			if value != nil {
29511				jtv, ok := value.(string)
29512				if !ok {
29513					return fmt.Errorf("expected AccountStatus to be of type string, got %T instead", value)
29514				}
29515				sv.AccountStatus = types.AccountStatus(jtv)
29516			}
29517
29518		case "AccountType":
29519			if value != nil {
29520				jtv, ok := value.(string)
29521				if !ok {
29522					return fmt.Errorf("expected AccountType to be of type string, got %T instead", value)
29523				}
29524				sv.AccountType = types.AccountType(jtv)
29525			}
29526
29527		case "AwsAccountId":
29528			if value != nil {
29529				jtv, ok := value.(string)
29530				if !ok {
29531					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29532				}
29533				sv.AwsAccountId = ptr.String(jtv)
29534			}
29535
29536		case "CreatedTimestamp":
29537			if value != nil {
29538				jtv, ok := value.(string)
29539				if !ok {
29540					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
29541				}
29542				t, err := smithytime.ParseDateTime(jtv)
29543				if err != nil {
29544					return err
29545				}
29546				sv.CreatedTimestamp = ptr.Time(t)
29547			}
29548
29549		case "DefaultLicense":
29550			if value != nil {
29551				jtv, ok := value.(string)
29552				if !ok {
29553					return fmt.Errorf("expected License to be of type string, got %T instead", value)
29554				}
29555				sv.DefaultLicense = types.License(jtv)
29556			}
29557
29558		case "Name":
29559			if value != nil {
29560				jtv, ok := value.(string)
29561				if !ok {
29562					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29563				}
29564				sv.Name = ptr.String(jtv)
29565			}
29566
29567		case "SigninDelegateGroups":
29568			if err := awsRestjson1_deserializeDocumentSigninDelegateGroupList(&sv.SigninDelegateGroups, value); err != nil {
29569				return err
29570			}
29571
29572		case "SupportedLicenses":
29573			if err := awsRestjson1_deserializeDocumentLicenseList(&sv.SupportedLicenses, value); err != nil {
29574				return err
29575			}
29576
29577		default:
29578			_, _ = key, value
29579
29580		}
29581	}
29582	*v = sv
29583	return nil
29584}
29585
29586func awsRestjson1_deserializeDocumentAccountList(v *[]types.Account, value interface{}) error {
29587	if v == nil {
29588		return fmt.Errorf("unexpected nil of type %T", v)
29589	}
29590	if value == nil {
29591		return nil
29592	}
29593
29594	shape, ok := value.([]interface{})
29595	if !ok {
29596		return fmt.Errorf("unexpected JSON type %v", value)
29597	}
29598
29599	var cv []types.Account
29600	if *v == nil {
29601		cv = []types.Account{}
29602	} else {
29603		cv = *v
29604	}
29605
29606	for _, value := range shape {
29607		var col types.Account
29608		destAddr := &col
29609		if err := awsRestjson1_deserializeDocumentAccount(&destAddr, value); err != nil {
29610			return err
29611		}
29612		col = *destAddr
29613		cv = append(cv, col)
29614
29615	}
29616	*v = cv
29617	return nil
29618}
29619
29620func awsRestjson1_deserializeDocumentAccountSettings(v **types.AccountSettings, value interface{}) error {
29621	if v == nil {
29622		return fmt.Errorf("unexpected nil of type %T", v)
29623	}
29624	if value == nil {
29625		return nil
29626	}
29627
29628	shape, ok := value.(map[string]interface{})
29629	if !ok {
29630		return fmt.Errorf("unexpected JSON type %v", value)
29631	}
29632
29633	var sv *types.AccountSettings
29634	if *v == nil {
29635		sv = &types.AccountSettings{}
29636	} else {
29637		sv = *v
29638	}
29639
29640	for key, value := range shape {
29641		switch key {
29642		case "DisableRemoteControl":
29643			if value != nil {
29644				jtv, ok := value.(bool)
29645				if !ok {
29646					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
29647				}
29648				sv.DisableRemoteControl = ptr.Bool(jtv)
29649			}
29650
29651		case "EnableDialOut":
29652			if value != nil {
29653				jtv, ok := value.(bool)
29654				if !ok {
29655					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
29656				}
29657				sv.EnableDialOut = ptr.Bool(jtv)
29658			}
29659
29660		default:
29661			_, _ = key, value
29662
29663		}
29664	}
29665	*v = sv
29666	return nil
29667}
29668
29669func awsRestjson1_deserializeDocumentAlexaForBusinessMetadata(v **types.AlexaForBusinessMetadata, value interface{}) error {
29670	if v == nil {
29671		return fmt.Errorf("unexpected nil of type %T", v)
29672	}
29673	if value == nil {
29674		return nil
29675	}
29676
29677	shape, ok := value.(map[string]interface{})
29678	if !ok {
29679		return fmt.Errorf("unexpected JSON type %v", value)
29680	}
29681
29682	var sv *types.AlexaForBusinessMetadata
29683	if *v == nil {
29684		sv = &types.AlexaForBusinessMetadata{}
29685	} else {
29686		sv = *v
29687	}
29688
29689	for key, value := range shape {
29690		switch key {
29691		case "AlexaForBusinessRoomArn":
29692			if value != nil {
29693				jtv, ok := value.(string)
29694				if !ok {
29695					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
29696				}
29697				sv.AlexaForBusinessRoomArn = ptr.String(jtv)
29698			}
29699
29700		case "IsAlexaForBusinessEnabled":
29701			if value != nil {
29702				jtv, ok := value.(bool)
29703				if !ok {
29704					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
29705				}
29706				sv.IsAlexaForBusinessEnabled = ptr.Bool(jtv)
29707			}
29708
29709		default:
29710			_, _ = key, value
29711
29712		}
29713	}
29714	*v = sv
29715	return nil
29716}
29717
29718func awsRestjson1_deserializeDocumentAppInstance(v **types.AppInstance, value interface{}) error {
29719	if v == nil {
29720		return fmt.Errorf("unexpected nil of type %T", v)
29721	}
29722	if value == nil {
29723		return nil
29724	}
29725
29726	shape, ok := value.(map[string]interface{})
29727	if !ok {
29728		return fmt.Errorf("unexpected JSON type %v", value)
29729	}
29730
29731	var sv *types.AppInstance
29732	if *v == nil {
29733		sv = &types.AppInstance{}
29734	} else {
29735		sv = *v
29736	}
29737
29738	for key, value := range shape {
29739		switch key {
29740		case "AppInstanceArn":
29741			if value != nil {
29742				jtv, ok := value.(string)
29743				if !ok {
29744					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
29745				}
29746				sv.AppInstanceArn = ptr.String(jtv)
29747			}
29748
29749		case "CreatedTimestamp":
29750			if value != nil {
29751				switch jtv := value.(type) {
29752				case json.Number:
29753					f64, err := jtv.Float64()
29754					if err != nil {
29755						return err
29756					}
29757					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29758
29759				default:
29760					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
29761
29762				}
29763			}
29764
29765		case "LastUpdatedTimestamp":
29766			if value != nil {
29767				switch jtv := value.(type) {
29768				case json.Number:
29769					f64, err := jtv.Float64()
29770					if err != nil {
29771						return err
29772					}
29773					sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29774
29775				default:
29776					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
29777
29778				}
29779			}
29780
29781		case "Metadata":
29782			if value != nil {
29783				jtv, ok := value.(string)
29784				if !ok {
29785					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
29786				}
29787				sv.Metadata = ptr.String(jtv)
29788			}
29789
29790		case "Name":
29791			if value != nil {
29792				jtv, ok := value.(string)
29793				if !ok {
29794					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
29795				}
29796				sv.Name = ptr.String(jtv)
29797			}
29798
29799		default:
29800			_, _ = key, value
29801
29802		}
29803	}
29804	*v = sv
29805	return nil
29806}
29807
29808func awsRestjson1_deserializeDocumentAppInstanceAdmin(v **types.AppInstanceAdmin, value interface{}) error {
29809	if v == nil {
29810		return fmt.Errorf("unexpected nil of type %T", v)
29811	}
29812	if value == nil {
29813		return nil
29814	}
29815
29816	shape, ok := value.(map[string]interface{})
29817	if !ok {
29818		return fmt.Errorf("unexpected JSON type %v", value)
29819	}
29820
29821	var sv *types.AppInstanceAdmin
29822	if *v == nil {
29823		sv = &types.AppInstanceAdmin{}
29824	} else {
29825		sv = *v
29826	}
29827
29828	for key, value := range shape {
29829		switch key {
29830		case "Admin":
29831			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Admin, value); err != nil {
29832				return err
29833			}
29834
29835		case "AppInstanceArn":
29836			if value != nil {
29837				jtv, ok := value.(string)
29838				if !ok {
29839					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
29840				}
29841				sv.AppInstanceArn = ptr.String(jtv)
29842			}
29843
29844		case "CreatedTimestamp":
29845			if value != nil {
29846				switch jtv := value.(type) {
29847				case json.Number:
29848					f64, err := jtv.Float64()
29849					if err != nil {
29850						return err
29851					}
29852					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29853
29854				default:
29855					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
29856
29857				}
29858			}
29859
29860		default:
29861			_, _ = key, value
29862
29863		}
29864	}
29865	*v = sv
29866	return nil
29867}
29868
29869func awsRestjson1_deserializeDocumentAppInstanceAdminList(v *[]types.AppInstanceAdminSummary, value interface{}) error {
29870	if v == nil {
29871		return fmt.Errorf("unexpected nil of type %T", v)
29872	}
29873	if value == nil {
29874		return nil
29875	}
29876
29877	shape, ok := value.([]interface{})
29878	if !ok {
29879		return fmt.Errorf("unexpected JSON type %v", value)
29880	}
29881
29882	var cv []types.AppInstanceAdminSummary
29883	if *v == nil {
29884		cv = []types.AppInstanceAdminSummary{}
29885	} else {
29886		cv = *v
29887	}
29888
29889	for _, value := range shape {
29890		var col types.AppInstanceAdminSummary
29891		destAddr := &col
29892		if err := awsRestjson1_deserializeDocumentAppInstanceAdminSummary(&destAddr, value); err != nil {
29893			return err
29894		}
29895		col = *destAddr
29896		cv = append(cv, col)
29897
29898	}
29899	*v = cv
29900	return nil
29901}
29902
29903func awsRestjson1_deserializeDocumentAppInstanceAdminSummary(v **types.AppInstanceAdminSummary, value interface{}) error {
29904	if v == nil {
29905		return fmt.Errorf("unexpected nil of type %T", v)
29906	}
29907	if value == nil {
29908		return nil
29909	}
29910
29911	shape, ok := value.(map[string]interface{})
29912	if !ok {
29913		return fmt.Errorf("unexpected JSON type %v", value)
29914	}
29915
29916	var sv *types.AppInstanceAdminSummary
29917	if *v == nil {
29918		sv = &types.AppInstanceAdminSummary{}
29919	} else {
29920		sv = *v
29921	}
29922
29923	for key, value := range shape {
29924		switch key {
29925		case "Admin":
29926			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Admin, value); err != nil {
29927				return err
29928			}
29929
29930		default:
29931			_, _ = key, value
29932
29933		}
29934	}
29935	*v = sv
29936	return nil
29937}
29938
29939func awsRestjson1_deserializeDocumentAppInstanceList(v *[]types.AppInstanceSummary, value interface{}) error {
29940	if v == nil {
29941		return fmt.Errorf("unexpected nil of type %T", v)
29942	}
29943	if value == nil {
29944		return nil
29945	}
29946
29947	shape, ok := value.([]interface{})
29948	if !ok {
29949		return fmt.Errorf("unexpected JSON type %v", value)
29950	}
29951
29952	var cv []types.AppInstanceSummary
29953	if *v == nil {
29954		cv = []types.AppInstanceSummary{}
29955	} else {
29956		cv = *v
29957	}
29958
29959	for _, value := range shape {
29960		var col types.AppInstanceSummary
29961		destAddr := &col
29962		if err := awsRestjson1_deserializeDocumentAppInstanceSummary(&destAddr, value); err != nil {
29963			return err
29964		}
29965		col = *destAddr
29966		cv = append(cv, col)
29967
29968	}
29969	*v = cv
29970	return nil
29971}
29972
29973func awsRestjson1_deserializeDocumentAppInstanceRetentionSettings(v **types.AppInstanceRetentionSettings, value interface{}) error {
29974	if v == nil {
29975		return fmt.Errorf("unexpected nil of type %T", v)
29976	}
29977	if value == nil {
29978		return nil
29979	}
29980
29981	shape, ok := value.(map[string]interface{})
29982	if !ok {
29983		return fmt.Errorf("unexpected JSON type %v", value)
29984	}
29985
29986	var sv *types.AppInstanceRetentionSettings
29987	if *v == nil {
29988		sv = &types.AppInstanceRetentionSettings{}
29989	} else {
29990		sv = *v
29991	}
29992
29993	for key, value := range shape {
29994		switch key {
29995		case "ChannelRetentionSettings":
29996			if err := awsRestjson1_deserializeDocumentChannelRetentionSettings(&sv.ChannelRetentionSettings, value); err != nil {
29997				return err
29998			}
29999
30000		default:
30001			_, _ = key, value
30002
30003		}
30004	}
30005	*v = sv
30006	return nil
30007}
30008
30009func awsRestjson1_deserializeDocumentAppInstanceStreamingConfiguration(v **types.AppInstanceStreamingConfiguration, value interface{}) error {
30010	if v == nil {
30011		return fmt.Errorf("unexpected nil of type %T", v)
30012	}
30013	if value == nil {
30014		return nil
30015	}
30016
30017	shape, ok := value.(map[string]interface{})
30018	if !ok {
30019		return fmt.Errorf("unexpected JSON type %v", value)
30020	}
30021
30022	var sv *types.AppInstanceStreamingConfiguration
30023	if *v == nil {
30024		sv = &types.AppInstanceStreamingConfiguration{}
30025	} else {
30026		sv = *v
30027	}
30028
30029	for key, value := range shape {
30030		switch key {
30031		case "AppInstanceDataType":
30032			if value != nil {
30033				jtv, ok := value.(string)
30034				if !ok {
30035					return fmt.Errorf("expected AppInstanceDataType to be of type string, got %T instead", value)
30036				}
30037				sv.AppInstanceDataType = types.AppInstanceDataType(jtv)
30038			}
30039
30040		case "ResourceArn":
30041			if value != nil {
30042				jtv, ok := value.(string)
30043				if !ok {
30044					return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
30045				}
30046				sv.ResourceArn = ptr.String(jtv)
30047			}
30048
30049		default:
30050			_, _ = key, value
30051
30052		}
30053	}
30054	*v = sv
30055	return nil
30056}
30057
30058func awsRestjson1_deserializeDocumentAppInstanceStreamingConfigurationList(v *[]types.AppInstanceStreamingConfiguration, value interface{}) error {
30059	if v == nil {
30060		return fmt.Errorf("unexpected nil of type %T", v)
30061	}
30062	if value == nil {
30063		return nil
30064	}
30065
30066	shape, ok := value.([]interface{})
30067	if !ok {
30068		return fmt.Errorf("unexpected JSON type %v", value)
30069	}
30070
30071	var cv []types.AppInstanceStreamingConfiguration
30072	if *v == nil {
30073		cv = []types.AppInstanceStreamingConfiguration{}
30074	} else {
30075		cv = *v
30076	}
30077
30078	for _, value := range shape {
30079		var col types.AppInstanceStreamingConfiguration
30080		destAddr := &col
30081		if err := awsRestjson1_deserializeDocumentAppInstanceStreamingConfiguration(&destAddr, value); err != nil {
30082			return err
30083		}
30084		col = *destAddr
30085		cv = append(cv, col)
30086
30087	}
30088	*v = cv
30089	return nil
30090}
30091
30092func awsRestjson1_deserializeDocumentAppInstanceSummary(v **types.AppInstanceSummary, value interface{}) error {
30093	if v == nil {
30094		return fmt.Errorf("unexpected nil of type %T", v)
30095	}
30096	if value == nil {
30097		return nil
30098	}
30099
30100	shape, ok := value.(map[string]interface{})
30101	if !ok {
30102		return fmt.Errorf("unexpected JSON type %v", value)
30103	}
30104
30105	var sv *types.AppInstanceSummary
30106	if *v == nil {
30107		sv = &types.AppInstanceSummary{}
30108	} else {
30109		sv = *v
30110	}
30111
30112	for key, value := range shape {
30113		switch key {
30114		case "AppInstanceArn":
30115			if value != nil {
30116				jtv, ok := value.(string)
30117				if !ok {
30118					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30119				}
30120				sv.AppInstanceArn = ptr.String(jtv)
30121			}
30122
30123		case "Metadata":
30124			if value != nil {
30125				jtv, ok := value.(string)
30126				if !ok {
30127					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
30128				}
30129				sv.Metadata = ptr.String(jtv)
30130			}
30131
30132		case "Name":
30133			if value != nil {
30134				jtv, ok := value.(string)
30135				if !ok {
30136					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
30137				}
30138				sv.Name = ptr.String(jtv)
30139			}
30140
30141		default:
30142			_, _ = key, value
30143
30144		}
30145	}
30146	*v = sv
30147	return nil
30148}
30149
30150func awsRestjson1_deserializeDocumentAppInstanceUser(v **types.AppInstanceUser, value interface{}) error {
30151	if v == nil {
30152		return fmt.Errorf("unexpected nil of type %T", v)
30153	}
30154	if value == nil {
30155		return nil
30156	}
30157
30158	shape, ok := value.(map[string]interface{})
30159	if !ok {
30160		return fmt.Errorf("unexpected JSON type %v", value)
30161	}
30162
30163	var sv *types.AppInstanceUser
30164	if *v == nil {
30165		sv = &types.AppInstanceUser{}
30166	} else {
30167		sv = *v
30168	}
30169
30170	for key, value := range shape {
30171		switch key {
30172		case "AppInstanceUserArn":
30173			if value != nil {
30174				jtv, ok := value.(string)
30175				if !ok {
30176					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30177				}
30178				sv.AppInstanceUserArn = ptr.String(jtv)
30179			}
30180
30181		case "CreatedTimestamp":
30182			if value != nil {
30183				switch jtv := value.(type) {
30184				case json.Number:
30185					f64, err := jtv.Float64()
30186					if err != nil {
30187						return err
30188					}
30189					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30190
30191				default:
30192					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
30193
30194				}
30195			}
30196
30197		case "LastUpdatedTimestamp":
30198			if value != nil {
30199				switch jtv := value.(type) {
30200				case json.Number:
30201					f64, err := jtv.Float64()
30202					if err != nil {
30203						return err
30204					}
30205					sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30206
30207				default:
30208					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
30209
30210				}
30211			}
30212
30213		case "Metadata":
30214			if value != nil {
30215				jtv, ok := value.(string)
30216				if !ok {
30217					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
30218				}
30219				sv.Metadata = ptr.String(jtv)
30220			}
30221
30222		case "Name":
30223			if value != nil {
30224				jtv, ok := value.(string)
30225				if !ok {
30226					return fmt.Errorf("expected UserName to be of type string, got %T instead", value)
30227				}
30228				sv.Name = ptr.String(jtv)
30229			}
30230
30231		default:
30232			_, _ = key, value
30233
30234		}
30235	}
30236	*v = sv
30237	return nil
30238}
30239
30240func awsRestjson1_deserializeDocumentAppInstanceUserList(v *[]types.AppInstanceUserSummary, value interface{}) error {
30241	if v == nil {
30242		return fmt.Errorf("unexpected nil of type %T", v)
30243	}
30244	if value == nil {
30245		return nil
30246	}
30247
30248	shape, ok := value.([]interface{})
30249	if !ok {
30250		return fmt.Errorf("unexpected JSON type %v", value)
30251	}
30252
30253	var cv []types.AppInstanceUserSummary
30254	if *v == nil {
30255		cv = []types.AppInstanceUserSummary{}
30256	} else {
30257		cv = *v
30258	}
30259
30260	for _, value := range shape {
30261		var col types.AppInstanceUserSummary
30262		destAddr := &col
30263		if err := awsRestjson1_deserializeDocumentAppInstanceUserSummary(&destAddr, value); err != nil {
30264			return err
30265		}
30266		col = *destAddr
30267		cv = append(cv, col)
30268
30269	}
30270	*v = cv
30271	return nil
30272}
30273
30274func awsRestjson1_deserializeDocumentAppInstanceUserMembershipSummary(v **types.AppInstanceUserMembershipSummary, value interface{}) error {
30275	if v == nil {
30276		return fmt.Errorf("unexpected nil of type %T", v)
30277	}
30278	if value == nil {
30279		return nil
30280	}
30281
30282	shape, ok := value.(map[string]interface{})
30283	if !ok {
30284		return fmt.Errorf("unexpected JSON type %v", value)
30285	}
30286
30287	var sv *types.AppInstanceUserMembershipSummary
30288	if *v == nil {
30289		sv = &types.AppInstanceUserMembershipSummary{}
30290	} else {
30291		sv = *v
30292	}
30293
30294	for key, value := range shape {
30295		switch key {
30296		case "ReadMarkerTimestamp":
30297			if value != nil {
30298				switch jtv := value.(type) {
30299				case json.Number:
30300					f64, err := jtv.Float64()
30301					if err != nil {
30302						return err
30303					}
30304					sv.ReadMarkerTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30305
30306				default:
30307					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
30308
30309				}
30310			}
30311
30312		case "Type":
30313			if value != nil {
30314				jtv, ok := value.(string)
30315				if !ok {
30316					return fmt.Errorf("expected ChannelMembershipType to be of type string, got %T instead", value)
30317				}
30318				sv.Type = types.ChannelMembershipType(jtv)
30319			}
30320
30321		default:
30322			_, _ = key, value
30323
30324		}
30325	}
30326	*v = sv
30327	return nil
30328}
30329
30330func awsRestjson1_deserializeDocumentAppInstanceUserSummary(v **types.AppInstanceUserSummary, value interface{}) error {
30331	if v == nil {
30332		return fmt.Errorf("unexpected nil of type %T", v)
30333	}
30334	if value == nil {
30335		return nil
30336	}
30337
30338	shape, ok := value.(map[string]interface{})
30339	if !ok {
30340		return fmt.Errorf("unexpected JSON type %v", value)
30341	}
30342
30343	var sv *types.AppInstanceUserSummary
30344	if *v == nil {
30345		sv = &types.AppInstanceUserSummary{}
30346	} else {
30347		sv = *v
30348	}
30349
30350	for key, value := range shape {
30351		switch key {
30352		case "AppInstanceUserArn":
30353			if value != nil {
30354				jtv, ok := value.(string)
30355				if !ok {
30356					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30357				}
30358				sv.AppInstanceUserArn = ptr.String(jtv)
30359			}
30360
30361		case "Metadata":
30362			if value != nil {
30363				jtv, ok := value.(string)
30364				if !ok {
30365					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
30366				}
30367				sv.Metadata = ptr.String(jtv)
30368			}
30369
30370		case "Name":
30371			if value != nil {
30372				jtv, ok := value.(string)
30373				if !ok {
30374					return fmt.Errorf("expected UserName to be of type string, got %T instead", value)
30375				}
30376				sv.Name = ptr.String(jtv)
30377			}
30378
30379		default:
30380			_, _ = key, value
30381
30382		}
30383	}
30384	*v = sv
30385	return nil
30386}
30387
30388func awsRestjson1_deserializeDocumentAttendee(v **types.Attendee, value interface{}) error {
30389	if v == nil {
30390		return fmt.Errorf("unexpected nil of type %T", v)
30391	}
30392	if value == nil {
30393		return nil
30394	}
30395
30396	shape, ok := value.(map[string]interface{})
30397	if !ok {
30398		return fmt.Errorf("unexpected JSON type %v", value)
30399	}
30400
30401	var sv *types.Attendee
30402	if *v == nil {
30403		sv = &types.Attendee{}
30404	} else {
30405		sv = *v
30406	}
30407
30408	for key, value := range shape {
30409		switch key {
30410		case "AttendeeId":
30411			if value != nil {
30412				jtv, ok := value.(string)
30413				if !ok {
30414					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
30415				}
30416				sv.AttendeeId = ptr.String(jtv)
30417			}
30418
30419		case "ExternalUserId":
30420			if value != nil {
30421				jtv, ok := value.(string)
30422				if !ok {
30423					return fmt.Errorf("expected ExternalUserIdType to be of type string, got %T instead", value)
30424				}
30425				sv.ExternalUserId = ptr.String(jtv)
30426			}
30427
30428		case "JoinToken":
30429			if value != nil {
30430				jtv, ok := value.(string)
30431				if !ok {
30432					return fmt.Errorf("expected JoinTokenString to be of type string, got %T instead", value)
30433				}
30434				sv.JoinToken = ptr.String(jtv)
30435			}
30436
30437		default:
30438			_, _ = key, value
30439
30440		}
30441	}
30442	*v = sv
30443	return nil
30444}
30445
30446func awsRestjson1_deserializeDocumentAttendeeList(v *[]types.Attendee, value interface{}) error {
30447	if v == nil {
30448		return fmt.Errorf("unexpected nil of type %T", v)
30449	}
30450	if value == nil {
30451		return nil
30452	}
30453
30454	shape, ok := value.([]interface{})
30455	if !ok {
30456		return fmt.Errorf("unexpected JSON type %v", value)
30457	}
30458
30459	var cv []types.Attendee
30460	if *v == nil {
30461		cv = []types.Attendee{}
30462	} else {
30463		cv = *v
30464	}
30465
30466	for _, value := range shape {
30467		var col types.Attendee
30468		destAddr := &col
30469		if err := awsRestjson1_deserializeDocumentAttendee(&destAddr, value); err != nil {
30470			return err
30471		}
30472		col = *destAddr
30473		cv = append(cv, col)
30474
30475	}
30476	*v = cv
30477	return nil
30478}
30479
30480func awsRestjson1_deserializeDocumentBadRequestException(v **types.BadRequestException, value interface{}) error {
30481	if v == nil {
30482		return fmt.Errorf("unexpected nil of type %T", v)
30483	}
30484	if value == nil {
30485		return nil
30486	}
30487
30488	shape, ok := value.(map[string]interface{})
30489	if !ok {
30490		return fmt.Errorf("unexpected JSON type %v", value)
30491	}
30492
30493	var sv *types.BadRequestException
30494	if *v == nil {
30495		sv = &types.BadRequestException{}
30496	} else {
30497		sv = *v
30498	}
30499
30500	for key, value := range shape {
30501		switch key {
30502		case "Code":
30503			if value != nil {
30504				jtv, ok := value.(string)
30505				if !ok {
30506					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
30507				}
30508				sv.Code = types.ErrorCode(jtv)
30509			}
30510
30511		case "Message":
30512			if value != nil {
30513				jtv, ok := value.(string)
30514				if !ok {
30515					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30516				}
30517				sv.Message = ptr.String(jtv)
30518			}
30519
30520		default:
30521			_, _ = key, value
30522
30523		}
30524	}
30525	*v = sv
30526	return nil
30527}
30528
30529func awsRestjson1_deserializeDocumentBatchChannelMemberships(v **types.BatchChannelMemberships, value interface{}) error {
30530	if v == nil {
30531		return fmt.Errorf("unexpected nil of type %T", v)
30532	}
30533	if value == nil {
30534		return nil
30535	}
30536
30537	shape, ok := value.(map[string]interface{})
30538	if !ok {
30539		return fmt.Errorf("unexpected JSON type %v", value)
30540	}
30541
30542	var sv *types.BatchChannelMemberships
30543	if *v == nil {
30544		sv = &types.BatchChannelMemberships{}
30545	} else {
30546		sv = *v
30547	}
30548
30549	for key, value := range shape {
30550		switch key {
30551		case "ChannelArn":
30552			if value != nil {
30553				jtv, ok := value.(string)
30554				if !ok {
30555					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30556				}
30557				sv.ChannelArn = ptr.String(jtv)
30558			}
30559
30560		case "InvitedBy":
30561			if err := awsRestjson1_deserializeDocumentIdentity(&sv.InvitedBy, value); err != nil {
30562				return err
30563			}
30564
30565		case "Members":
30566			if err := awsRestjson1_deserializeDocumentMembers(&sv.Members, value); err != nil {
30567				return err
30568			}
30569
30570		case "Type":
30571			if value != nil {
30572				jtv, ok := value.(string)
30573				if !ok {
30574					return fmt.Errorf("expected ChannelMembershipType to be of type string, got %T instead", value)
30575				}
30576				sv.Type = types.ChannelMembershipType(jtv)
30577			}
30578
30579		default:
30580			_, _ = key, value
30581
30582		}
30583	}
30584	*v = sv
30585	return nil
30586}
30587
30588func awsRestjson1_deserializeDocumentBatchCreateAttendeeErrorList(v *[]types.CreateAttendeeError, value interface{}) error {
30589	if v == nil {
30590		return fmt.Errorf("unexpected nil of type %T", v)
30591	}
30592	if value == nil {
30593		return nil
30594	}
30595
30596	shape, ok := value.([]interface{})
30597	if !ok {
30598		return fmt.Errorf("unexpected JSON type %v", value)
30599	}
30600
30601	var cv []types.CreateAttendeeError
30602	if *v == nil {
30603		cv = []types.CreateAttendeeError{}
30604	} else {
30605		cv = *v
30606	}
30607
30608	for _, value := range shape {
30609		var col types.CreateAttendeeError
30610		destAddr := &col
30611		if err := awsRestjson1_deserializeDocumentCreateAttendeeError(&destAddr, value); err != nil {
30612			return err
30613		}
30614		col = *destAddr
30615		cv = append(cv, col)
30616
30617	}
30618	*v = cv
30619	return nil
30620}
30621
30622func awsRestjson1_deserializeDocumentBatchCreateChannelMembershipError(v **types.BatchCreateChannelMembershipError, value interface{}) error {
30623	if v == nil {
30624		return fmt.Errorf("unexpected nil of type %T", v)
30625	}
30626	if value == nil {
30627		return nil
30628	}
30629
30630	shape, ok := value.(map[string]interface{})
30631	if !ok {
30632		return fmt.Errorf("unexpected JSON type %v", value)
30633	}
30634
30635	var sv *types.BatchCreateChannelMembershipError
30636	if *v == nil {
30637		sv = &types.BatchCreateChannelMembershipError{}
30638	} else {
30639		sv = *v
30640	}
30641
30642	for key, value := range shape {
30643		switch key {
30644		case "ErrorCode":
30645			if value != nil {
30646				jtv, ok := value.(string)
30647				if !ok {
30648					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
30649				}
30650				sv.ErrorCode = types.ErrorCode(jtv)
30651			}
30652
30653		case "ErrorMessage":
30654			if value != nil {
30655				jtv, ok := value.(string)
30656				if !ok {
30657					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30658				}
30659				sv.ErrorMessage = ptr.String(jtv)
30660			}
30661
30662		case "MemberArn":
30663			if value != nil {
30664				jtv, ok := value.(string)
30665				if !ok {
30666					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30667				}
30668				sv.MemberArn = ptr.String(jtv)
30669			}
30670
30671		default:
30672			_, _ = key, value
30673
30674		}
30675	}
30676	*v = sv
30677	return nil
30678}
30679
30680func awsRestjson1_deserializeDocumentBatchCreateChannelMembershipErrors(v *[]types.BatchCreateChannelMembershipError, value interface{}) error {
30681	if v == nil {
30682		return fmt.Errorf("unexpected nil of type %T", v)
30683	}
30684	if value == nil {
30685		return nil
30686	}
30687
30688	shape, ok := value.([]interface{})
30689	if !ok {
30690		return fmt.Errorf("unexpected JSON type %v", value)
30691	}
30692
30693	var cv []types.BatchCreateChannelMembershipError
30694	if *v == nil {
30695		cv = []types.BatchCreateChannelMembershipError{}
30696	} else {
30697		cv = *v
30698	}
30699
30700	for _, value := range shape {
30701		var col types.BatchCreateChannelMembershipError
30702		destAddr := &col
30703		if err := awsRestjson1_deserializeDocumentBatchCreateChannelMembershipError(&destAddr, value); err != nil {
30704			return err
30705		}
30706		col = *destAddr
30707		cv = append(cv, col)
30708
30709	}
30710	*v = cv
30711	return nil
30712}
30713
30714func awsRestjson1_deserializeDocumentBot(v **types.Bot, value interface{}) error {
30715	if v == nil {
30716		return fmt.Errorf("unexpected nil of type %T", v)
30717	}
30718	if value == nil {
30719		return nil
30720	}
30721
30722	shape, ok := value.(map[string]interface{})
30723	if !ok {
30724		return fmt.Errorf("unexpected JSON type %v", value)
30725	}
30726
30727	var sv *types.Bot
30728	if *v == nil {
30729		sv = &types.Bot{}
30730	} else {
30731		sv = *v
30732	}
30733
30734	for key, value := range shape {
30735		switch key {
30736		case "BotEmail":
30737			if value != nil {
30738				jtv, ok := value.(string)
30739				if !ok {
30740					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
30741				}
30742				sv.BotEmail = ptr.String(jtv)
30743			}
30744
30745		case "BotId":
30746			if value != nil {
30747				jtv, ok := value.(string)
30748				if !ok {
30749					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30750				}
30751				sv.BotId = ptr.String(jtv)
30752			}
30753
30754		case "BotType":
30755			if value != nil {
30756				jtv, ok := value.(string)
30757				if !ok {
30758					return fmt.Errorf("expected BotType to be of type string, got %T instead", value)
30759				}
30760				sv.BotType = types.BotType(jtv)
30761			}
30762
30763		case "CreatedTimestamp":
30764			if value != nil {
30765				jtv, ok := value.(string)
30766				if !ok {
30767					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
30768				}
30769				t, err := smithytime.ParseDateTime(jtv)
30770				if err != nil {
30771					return err
30772				}
30773				sv.CreatedTimestamp = ptr.Time(t)
30774			}
30775
30776		case "Disabled":
30777			if value != nil {
30778				jtv, ok := value.(bool)
30779				if !ok {
30780					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
30781				}
30782				sv.Disabled = ptr.Bool(jtv)
30783			}
30784
30785		case "DisplayName":
30786			if value != nil {
30787				jtv, ok := value.(string)
30788				if !ok {
30789					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
30790				}
30791				sv.DisplayName = ptr.String(jtv)
30792			}
30793
30794		case "SecurityToken":
30795			if value != nil {
30796				jtv, ok := value.(string)
30797				if !ok {
30798					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
30799				}
30800				sv.SecurityToken = ptr.String(jtv)
30801			}
30802
30803		case "UpdatedTimestamp":
30804			if value != nil {
30805				jtv, ok := value.(string)
30806				if !ok {
30807					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
30808				}
30809				t, err := smithytime.ParseDateTime(jtv)
30810				if err != nil {
30811					return err
30812				}
30813				sv.UpdatedTimestamp = ptr.Time(t)
30814			}
30815
30816		case "UserId":
30817			if value != nil {
30818				jtv, ok := value.(string)
30819				if !ok {
30820					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30821				}
30822				sv.UserId = ptr.String(jtv)
30823			}
30824
30825		default:
30826			_, _ = key, value
30827
30828		}
30829	}
30830	*v = sv
30831	return nil
30832}
30833
30834func awsRestjson1_deserializeDocumentBotList(v *[]types.Bot, value interface{}) error {
30835	if v == nil {
30836		return fmt.Errorf("unexpected nil of type %T", v)
30837	}
30838	if value == nil {
30839		return nil
30840	}
30841
30842	shape, ok := value.([]interface{})
30843	if !ok {
30844		return fmt.Errorf("unexpected JSON type %v", value)
30845	}
30846
30847	var cv []types.Bot
30848	if *v == nil {
30849		cv = []types.Bot{}
30850	} else {
30851		cv = *v
30852	}
30853
30854	for _, value := range shape {
30855		var col types.Bot
30856		destAddr := &col
30857		if err := awsRestjson1_deserializeDocumentBot(&destAddr, value); err != nil {
30858			return err
30859		}
30860		col = *destAddr
30861		cv = append(cv, col)
30862
30863	}
30864	*v = cv
30865	return nil
30866}
30867
30868func awsRestjson1_deserializeDocumentBusinessCallingSettings(v **types.BusinessCallingSettings, value interface{}) error {
30869	if v == nil {
30870		return fmt.Errorf("unexpected nil of type %T", v)
30871	}
30872	if value == nil {
30873		return nil
30874	}
30875
30876	shape, ok := value.(map[string]interface{})
30877	if !ok {
30878		return fmt.Errorf("unexpected JSON type %v", value)
30879	}
30880
30881	var sv *types.BusinessCallingSettings
30882	if *v == nil {
30883		sv = &types.BusinessCallingSettings{}
30884	} else {
30885		sv = *v
30886	}
30887
30888	for key, value := range shape {
30889		switch key {
30890		case "CdrBucket":
30891			if value != nil {
30892				jtv, ok := value.(string)
30893				if !ok {
30894					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30895				}
30896				sv.CdrBucket = ptr.String(jtv)
30897			}
30898
30899		default:
30900			_, _ = key, value
30901
30902		}
30903	}
30904	*v = sv
30905	return nil
30906}
30907
30908func awsRestjson1_deserializeDocumentCallingRegionList(v *[]string, value interface{}) error {
30909	if v == nil {
30910		return fmt.Errorf("unexpected nil of type %T", v)
30911	}
30912	if value == nil {
30913		return nil
30914	}
30915
30916	shape, ok := value.([]interface{})
30917	if !ok {
30918		return fmt.Errorf("unexpected JSON type %v", value)
30919	}
30920
30921	var cv []string
30922	if *v == nil {
30923		cv = []string{}
30924	} else {
30925		cv = *v
30926	}
30927
30928	for _, value := range shape {
30929		var col string
30930		if value != nil {
30931			jtv, ok := value.(string)
30932			if !ok {
30933				return fmt.Errorf("expected CallingRegion to be of type string, got %T instead", value)
30934			}
30935			col = jtv
30936		}
30937		cv = append(cv, col)
30938
30939	}
30940	*v = cv
30941	return nil
30942}
30943
30944func awsRestjson1_deserializeDocumentCapabilityList(v *[]types.Capability, value interface{}) error {
30945	if v == nil {
30946		return fmt.Errorf("unexpected nil of type %T", v)
30947	}
30948	if value == nil {
30949		return nil
30950	}
30951
30952	shape, ok := value.([]interface{})
30953	if !ok {
30954		return fmt.Errorf("unexpected JSON type %v", value)
30955	}
30956
30957	var cv []types.Capability
30958	if *v == nil {
30959		cv = []types.Capability{}
30960	} else {
30961		cv = *v
30962	}
30963
30964	for _, value := range shape {
30965		var col types.Capability
30966		if value != nil {
30967			jtv, ok := value.(string)
30968			if !ok {
30969				return fmt.Errorf("expected Capability to be of type string, got %T instead", value)
30970			}
30971			col = types.Capability(jtv)
30972		}
30973		cv = append(cv, col)
30974
30975	}
30976	*v = cv
30977	return nil
30978}
30979
30980func awsRestjson1_deserializeDocumentChannel(v **types.Channel, value interface{}) error {
30981	if v == nil {
30982		return fmt.Errorf("unexpected nil of type %T", v)
30983	}
30984	if value == nil {
30985		return nil
30986	}
30987
30988	shape, ok := value.(map[string]interface{})
30989	if !ok {
30990		return fmt.Errorf("unexpected JSON type %v", value)
30991	}
30992
30993	var sv *types.Channel
30994	if *v == nil {
30995		sv = &types.Channel{}
30996	} else {
30997		sv = *v
30998	}
30999
31000	for key, value := range shape {
31001		switch key {
31002		case "ChannelArn":
31003			if value != nil {
31004				jtv, ok := value.(string)
31005				if !ok {
31006					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
31007				}
31008				sv.ChannelArn = ptr.String(jtv)
31009			}
31010
31011		case "CreatedBy":
31012			if err := awsRestjson1_deserializeDocumentIdentity(&sv.CreatedBy, value); err != nil {
31013				return err
31014			}
31015
31016		case "CreatedTimestamp":
31017			if value != nil {
31018				switch jtv := value.(type) {
31019				case json.Number:
31020					f64, err := jtv.Float64()
31021					if err != nil {
31022						return err
31023					}
31024					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31025
31026				default:
31027					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31028
31029				}
31030			}
31031
31032		case "LastMessageTimestamp":
31033			if value != nil {
31034				switch jtv := value.(type) {
31035				case json.Number:
31036					f64, err := jtv.Float64()
31037					if err != nil {
31038						return err
31039					}
31040					sv.LastMessageTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31041
31042				default:
31043					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31044
31045				}
31046			}
31047
31048		case "LastUpdatedTimestamp":
31049			if value != nil {
31050				switch jtv := value.(type) {
31051				case json.Number:
31052					f64, err := jtv.Float64()
31053					if err != nil {
31054						return err
31055					}
31056					sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31057
31058				default:
31059					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31060
31061				}
31062			}
31063
31064		case "Metadata":
31065			if value != nil {
31066				jtv, ok := value.(string)
31067				if !ok {
31068					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
31069				}
31070				sv.Metadata = ptr.String(jtv)
31071			}
31072
31073		case "Mode":
31074			if value != nil {
31075				jtv, ok := value.(string)
31076				if !ok {
31077					return fmt.Errorf("expected ChannelMode to be of type string, got %T instead", value)
31078				}
31079				sv.Mode = types.ChannelMode(jtv)
31080			}
31081
31082		case "Name":
31083			if value != nil {
31084				jtv, ok := value.(string)
31085				if !ok {
31086					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
31087				}
31088				sv.Name = ptr.String(jtv)
31089			}
31090
31091		case "Privacy":
31092			if value != nil {
31093				jtv, ok := value.(string)
31094				if !ok {
31095					return fmt.Errorf("expected ChannelPrivacy to be of type string, got %T instead", value)
31096				}
31097				sv.Privacy = types.ChannelPrivacy(jtv)
31098			}
31099
31100		default:
31101			_, _ = key, value
31102
31103		}
31104	}
31105	*v = sv
31106	return nil
31107}
31108
31109func awsRestjson1_deserializeDocumentChannelBan(v **types.ChannelBan, value interface{}) error {
31110	if v == nil {
31111		return fmt.Errorf("unexpected nil of type %T", v)
31112	}
31113	if value == nil {
31114		return nil
31115	}
31116
31117	shape, ok := value.(map[string]interface{})
31118	if !ok {
31119		return fmt.Errorf("unexpected JSON type %v", value)
31120	}
31121
31122	var sv *types.ChannelBan
31123	if *v == nil {
31124		sv = &types.ChannelBan{}
31125	} else {
31126		sv = *v
31127	}
31128
31129	for key, value := range shape {
31130		switch key {
31131		case "ChannelArn":
31132			if value != nil {
31133				jtv, ok := value.(string)
31134				if !ok {
31135					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
31136				}
31137				sv.ChannelArn = ptr.String(jtv)
31138			}
31139
31140		case "CreatedBy":
31141			if err := awsRestjson1_deserializeDocumentIdentity(&sv.CreatedBy, value); err != nil {
31142				return err
31143			}
31144
31145		case "CreatedTimestamp":
31146			if value != nil {
31147				switch jtv := value.(type) {
31148				case json.Number:
31149					f64, err := jtv.Float64()
31150					if err != nil {
31151						return err
31152					}
31153					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31154
31155				default:
31156					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31157
31158				}
31159			}
31160
31161		case "Member":
31162			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
31163				return err
31164			}
31165
31166		default:
31167			_, _ = key, value
31168
31169		}
31170	}
31171	*v = sv
31172	return nil
31173}
31174
31175func awsRestjson1_deserializeDocumentChannelBanSummary(v **types.ChannelBanSummary, value interface{}) error {
31176	if v == nil {
31177		return fmt.Errorf("unexpected nil of type %T", v)
31178	}
31179	if value == nil {
31180		return nil
31181	}
31182
31183	shape, ok := value.(map[string]interface{})
31184	if !ok {
31185		return fmt.Errorf("unexpected JSON type %v", value)
31186	}
31187
31188	var sv *types.ChannelBanSummary
31189	if *v == nil {
31190		sv = &types.ChannelBanSummary{}
31191	} else {
31192		sv = *v
31193	}
31194
31195	for key, value := range shape {
31196		switch key {
31197		case "Member":
31198			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
31199				return err
31200			}
31201
31202		default:
31203			_, _ = key, value
31204
31205		}
31206	}
31207	*v = sv
31208	return nil
31209}
31210
31211func awsRestjson1_deserializeDocumentChannelBanSummaryList(v *[]types.ChannelBanSummary, value interface{}) error {
31212	if v == nil {
31213		return fmt.Errorf("unexpected nil of type %T", v)
31214	}
31215	if value == nil {
31216		return nil
31217	}
31218
31219	shape, ok := value.([]interface{})
31220	if !ok {
31221		return fmt.Errorf("unexpected JSON type %v", value)
31222	}
31223
31224	var cv []types.ChannelBanSummary
31225	if *v == nil {
31226		cv = []types.ChannelBanSummary{}
31227	} else {
31228		cv = *v
31229	}
31230
31231	for _, value := range shape {
31232		var col types.ChannelBanSummary
31233		destAddr := &col
31234		if err := awsRestjson1_deserializeDocumentChannelBanSummary(&destAddr, value); err != nil {
31235			return err
31236		}
31237		col = *destAddr
31238		cv = append(cv, col)
31239
31240	}
31241	*v = cv
31242	return nil
31243}
31244
31245func awsRestjson1_deserializeDocumentChannelMembership(v **types.ChannelMembership, value interface{}) error {
31246	if v == nil {
31247		return fmt.Errorf("unexpected nil of type %T", v)
31248	}
31249	if value == nil {
31250		return nil
31251	}
31252
31253	shape, ok := value.(map[string]interface{})
31254	if !ok {
31255		return fmt.Errorf("unexpected JSON type %v", value)
31256	}
31257
31258	var sv *types.ChannelMembership
31259	if *v == nil {
31260		sv = &types.ChannelMembership{}
31261	} else {
31262		sv = *v
31263	}
31264
31265	for key, value := range shape {
31266		switch key {
31267		case "ChannelArn":
31268			if value != nil {
31269				jtv, ok := value.(string)
31270				if !ok {
31271					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
31272				}
31273				sv.ChannelArn = ptr.String(jtv)
31274			}
31275
31276		case "CreatedTimestamp":
31277			if value != nil {
31278				switch jtv := value.(type) {
31279				case json.Number:
31280					f64, err := jtv.Float64()
31281					if err != nil {
31282						return err
31283					}
31284					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31285
31286				default:
31287					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31288
31289				}
31290			}
31291
31292		case "InvitedBy":
31293			if err := awsRestjson1_deserializeDocumentIdentity(&sv.InvitedBy, value); err != nil {
31294				return err
31295			}
31296
31297		case "LastUpdatedTimestamp":
31298			if value != nil {
31299				switch jtv := value.(type) {
31300				case json.Number:
31301					f64, err := jtv.Float64()
31302					if err != nil {
31303						return err
31304					}
31305					sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31306
31307				default:
31308					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31309
31310				}
31311			}
31312
31313		case "Member":
31314			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
31315				return err
31316			}
31317
31318		case "Type":
31319			if value != nil {
31320				jtv, ok := value.(string)
31321				if !ok {
31322					return fmt.Errorf("expected ChannelMembershipType to be of type string, got %T instead", value)
31323				}
31324				sv.Type = types.ChannelMembershipType(jtv)
31325			}
31326
31327		default:
31328			_, _ = key, value
31329
31330		}
31331	}
31332	*v = sv
31333	return nil
31334}
31335
31336func awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummary(v **types.ChannelMembershipForAppInstanceUserSummary, value interface{}) error {
31337	if v == nil {
31338		return fmt.Errorf("unexpected nil of type %T", v)
31339	}
31340	if value == nil {
31341		return nil
31342	}
31343
31344	shape, ok := value.(map[string]interface{})
31345	if !ok {
31346		return fmt.Errorf("unexpected JSON type %v", value)
31347	}
31348
31349	var sv *types.ChannelMembershipForAppInstanceUserSummary
31350	if *v == nil {
31351		sv = &types.ChannelMembershipForAppInstanceUserSummary{}
31352	} else {
31353		sv = *v
31354	}
31355
31356	for key, value := range shape {
31357		switch key {
31358		case "AppInstanceUserMembershipSummary":
31359			if err := awsRestjson1_deserializeDocumentAppInstanceUserMembershipSummary(&sv.AppInstanceUserMembershipSummary, value); err != nil {
31360				return err
31361			}
31362
31363		case "ChannelSummary":
31364			if err := awsRestjson1_deserializeDocumentChannelSummary(&sv.ChannelSummary, value); err != nil {
31365				return err
31366			}
31367
31368		default:
31369			_, _ = key, value
31370
31371		}
31372	}
31373	*v = sv
31374	return nil
31375}
31376
31377func awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummaryList(v *[]types.ChannelMembershipForAppInstanceUserSummary, value interface{}) error {
31378	if v == nil {
31379		return fmt.Errorf("unexpected nil of type %T", v)
31380	}
31381	if value == nil {
31382		return nil
31383	}
31384
31385	shape, ok := value.([]interface{})
31386	if !ok {
31387		return fmt.Errorf("unexpected JSON type %v", value)
31388	}
31389
31390	var cv []types.ChannelMembershipForAppInstanceUserSummary
31391	if *v == nil {
31392		cv = []types.ChannelMembershipForAppInstanceUserSummary{}
31393	} else {
31394		cv = *v
31395	}
31396
31397	for _, value := range shape {
31398		var col types.ChannelMembershipForAppInstanceUserSummary
31399		destAddr := &col
31400		if err := awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummary(&destAddr, value); err != nil {
31401			return err
31402		}
31403		col = *destAddr
31404		cv = append(cv, col)
31405
31406	}
31407	*v = cv
31408	return nil
31409}
31410
31411func awsRestjson1_deserializeDocumentChannelMembershipSummary(v **types.ChannelMembershipSummary, value interface{}) error {
31412	if v == nil {
31413		return fmt.Errorf("unexpected nil of type %T", v)
31414	}
31415	if value == nil {
31416		return nil
31417	}
31418
31419	shape, ok := value.(map[string]interface{})
31420	if !ok {
31421		return fmt.Errorf("unexpected JSON type %v", value)
31422	}
31423
31424	var sv *types.ChannelMembershipSummary
31425	if *v == nil {
31426		sv = &types.ChannelMembershipSummary{}
31427	} else {
31428		sv = *v
31429	}
31430
31431	for key, value := range shape {
31432		switch key {
31433		case "Member":
31434			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
31435				return err
31436			}
31437
31438		default:
31439			_, _ = key, value
31440
31441		}
31442	}
31443	*v = sv
31444	return nil
31445}
31446
31447func awsRestjson1_deserializeDocumentChannelMembershipSummaryList(v *[]types.ChannelMembershipSummary, value interface{}) error {
31448	if v == nil {
31449		return fmt.Errorf("unexpected nil of type %T", v)
31450	}
31451	if value == nil {
31452		return nil
31453	}
31454
31455	shape, ok := value.([]interface{})
31456	if !ok {
31457		return fmt.Errorf("unexpected JSON type %v", value)
31458	}
31459
31460	var cv []types.ChannelMembershipSummary
31461	if *v == nil {
31462		cv = []types.ChannelMembershipSummary{}
31463	} else {
31464		cv = *v
31465	}
31466
31467	for _, value := range shape {
31468		var col types.ChannelMembershipSummary
31469		destAddr := &col
31470		if err := awsRestjson1_deserializeDocumentChannelMembershipSummary(&destAddr, value); err != nil {
31471			return err
31472		}
31473		col = *destAddr
31474		cv = append(cv, col)
31475
31476	}
31477	*v = cv
31478	return nil
31479}
31480
31481func awsRestjson1_deserializeDocumentChannelMessage(v **types.ChannelMessage, value interface{}) error {
31482	if v == nil {
31483		return fmt.Errorf("unexpected nil of type %T", v)
31484	}
31485	if value == nil {
31486		return nil
31487	}
31488
31489	shape, ok := value.(map[string]interface{})
31490	if !ok {
31491		return fmt.Errorf("unexpected JSON type %v", value)
31492	}
31493
31494	var sv *types.ChannelMessage
31495	if *v == nil {
31496		sv = &types.ChannelMessage{}
31497	} else {
31498		sv = *v
31499	}
31500
31501	for key, value := range shape {
31502		switch key {
31503		case "ChannelArn":
31504			if value != nil {
31505				jtv, ok := value.(string)
31506				if !ok {
31507					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
31508				}
31509				sv.ChannelArn = ptr.String(jtv)
31510			}
31511
31512		case "Content":
31513			if value != nil {
31514				jtv, ok := value.(string)
31515				if !ok {
31516					return fmt.Errorf("expected Content to be of type string, got %T instead", value)
31517				}
31518				sv.Content = ptr.String(jtv)
31519			}
31520
31521		case "CreatedTimestamp":
31522			if value != nil {
31523				switch jtv := value.(type) {
31524				case json.Number:
31525					f64, err := jtv.Float64()
31526					if err != nil {
31527						return err
31528					}
31529					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31530
31531				default:
31532					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31533
31534				}
31535			}
31536
31537		case "LastEditedTimestamp":
31538			if value != nil {
31539				switch jtv := value.(type) {
31540				case json.Number:
31541					f64, err := jtv.Float64()
31542					if err != nil {
31543						return err
31544					}
31545					sv.LastEditedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31546
31547				default:
31548					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31549
31550				}
31551			}
31552
31553		case "LastUpdatedTimestamp":
31554			if value != nil {
31555				switch jtv := value.(type) {
31556				case json.Number:
31557					f64, err := jtv.Float64()
31558					if err != nil {
31559						return err
31560					}
31561					sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31562
31563				default:
31564					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31565
31566				}
31567			}
31568
31569		case "MessageId":
31570			if value != nil {
31571				jtv, ok := value.(string)
31572				if !ok {
31573					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
31574				}
31575				sv.MessageId = ptr.String(jtv)
31576			}
31577
31578		case "Metadata":
31579			if value != nil {
31580				jtv, ok := value.(string)
31581				if !ok {
31582					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
31583				}
31584				sv.Metadata = ptr.String(jtv)
31585			}
31586
31587		case "Persistence":
31588			if value != nil {
31589				jtv, ok := value.(string)
31590				if !ok {
31591					return fmt.Errorf("expected ChannelMessagePersistenceType to be of type string, got %T instead", value)
31592				}
31593				sv.Persistence = types.ChannelMessagePersistenceType(jtv)
31594			}
31595
31596		case "Redacted":
31597			if value != nil {
31598				jtv, ok := value.(bool)
31599				if !ok {
31600					return fmt.Errorf("expected NonNullableBoolean to be of type *bool, got %T instead", value)
31601				}
31602				sv.Redacted = jtv
31603			}
31604
31605		case "Sender":
31606			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Sender, value); err != nil {
31607				return err
31608			}
31609
31610		case "Type":
31611			if value != nil {
31612				jtv, ok := value.(string)
31613				if !ok {
31614					return fmt.Errorf("expected ChannelMessageType to be of type string, got %T instead", value)
31615				}
31616				sv.Type = types.ChannelMessageType(jtv)
31617			}
31618
31619		default:
31620			_, _ = key, value
31621
31622		}
31623	}
31624	*v = sv
31625	return nil
31626}
31627
31628func awsRestjson1_deserializeDocumentChannelMessageSummary(v **types.ChannelMessageSummary, value interface{}) error {
31629	if v == nil {
31630		return fmt.Errorf("unexpected nil of type %T", v)
31631	}
31632	if value == nil {
31633		return nil
31634	}
31635
31636	shape, ok := value.(map[string]interface{})
31637	if !ok {
31638		return fmt.Errorf("unexpected JSON type %v", value)
31639	}
31640
31641	var sv *types.ChannelMessageSummary
31642	if *v == nil {
31643		sv = &types.ChannelMessageSummary{}
31644	} else {
31645		sv = *v
31646	}
31647
31648	for key, value := range shape {
31649		switch key {
31650		case "Content":
31651			if value != nil {
31652				jtv, ok := value.(string)
31653				if !ok {
31654					return fmt.Errorf("expected Content to be of type string, got %T instead", value)
31655				}
31656				sv.Content = ptr.String(jtv)
31657			}
31658
31659		case "CreatedTimestamp":
31660			if value != nil {
31661				switch jtv := value.(type) {
31662				case json.Number:
31663					f64, err := jtv.Float64()
31664					if err != nil {
31665						return err
31666					}
31667					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31668
31669				default:
31670					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31671
31672				}
31673			}
31674
31675		case "LastEditedTimestamp":
31676			if value != nil {
31677				switch jtv := value.(type) {
31678				case json.Number:
31679					f64, err := jtv.Float64()
31680					if err != nil {
31681						return err
31682					}
31683					sv.LastEditedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31684
31685				default:
31686					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31687
31688				}
31689			}
31690
31691		case "LastUpdatedTimestamp":
31692			if value != nil {
31693				switch jtv := value.(type) {
31694				case json.Number:
31695					f64, err := jtv.Float64()
31696					if err != nil {
31697						return err
31698					}
31699					sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31700
31701				default:
31702					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31703
31704				}
31705			}
31706
31707		case "MessageId":
31708			if value != nil {
31709				jtv, ok := value.(string)
31710				if !ok {
31711					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
31712				}
31713				sv.MessageId = ptr.String(jtv)
31714			}
31715
31716		case "Metadata":
31717			if value != nil {
31718				jtv, ok := value.(string)
31719				if !ok {
31720					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
31721				}
31722				sv.Metadata = ptr.String(jtv)
31723			}
31724
31725		case "Redacted":
31726			if value != nil {
31727				jtv, ok := value.(bool)
31728				if !ok {
31729					return fmt.Errorf("expected NonNullableBoolean to be of type *bool, got %T instead", value)
31730				}
31731				sv.Redacted = jtv
31732			}
31733
31734		case "Sender":
31735			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Sender, value); err != nil {
31736				return err
31737			}
31738
31739		case "Type":
31740			if value != nil {
31741				jtv, ok := value.(string)
31742				if !ok {
31743					return fmt.Errorf("expected ChannelMessageType to be of type string, got %T instead", value)
31744				}
31745				sv.Type = types.ChannelMessageType(jtv)
31746			}
31747
31748		default:
31749			_, _ = key, value
31750
31751		}
31752	}
31753	*v = sv
31754	return nil
31755}
31756
31757func awsRestjson1_deserializeDocumentChannelMessageSummaryList(v *[]types.ChannelMessageSummary, value interface{}) error {
31758	if v == nil {
31759		return fmt.Errorf("unexpected nil of type %T", v)
31760	}
31761	if value == nil {
31762		return nil
31763	}
31764
31765	shape, ok := value.([]interface{})
31766	if !ok {
31767		return fmt.Errorf("unexpected JSON type %v", value)
31768	}
31769
31770	var cv []types.ChannelMessageSummary
31771	if *v == nil {
31772		cv = []types.ChannelMessageSummary{}
31773	} else {
31774		cv = *v
31775	}
31776
31777	for _, value := range shape {
31778		var col types.ChannelMessageSummary
31779		destAddr := &col
31780		if err := awsRestjson1_deserializeDocumentChannelMessageSummary(&destAddr, value); err != nil {
31781			return err
31782		}
31783		col = *destAddr
31784		cv = append(cv, col)
31785
31786	}
31787	*v = cv
31788	return nil
31789}
31790
31791func awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummary(v **types.ChannelModeratedByAppInstanceUserSummary, value interface{}) error {
31792	if v == nil {
31793		return fmt.Errorf("unexpected nil of type %T", v)
31794	}
31795	if value == nil {
31796		return nil
31797	}
31798
31799	shape, ok := value.(map[string]interface{})
31800	if !ok {
31801		return fmt.Errorf("unexpected JSON type %v", value)
31802	}
31803
31804	var sv *types.ChannelModeratedByAppInstanceUserSummary
31805	if *v == nil {
31806		sv = &types.ChannelModeratedByAppInstanceUserSummary{}
31807	} else {
31808		sv = *v
31809	}
31810
31811	for key, value := range shape {
31812		switch key {
31813		case "ChannelSummary":
31814			if err := awsRestjson1_deserializeDocumentChannelSummary(&sv.ChannelSummary, value); err != nil {
31815				return err
31816			}
31817
31818		default:
31819			_, _ = key, value
31820
31821		}
31822	}
31823	*v = sv
31824	return nil
31825}
31826
31827func awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummaryList(v *[]types.ChannelModeratedByAppInstanceUserSummary, value interface{}) error {
31828	if v == nil {
31829		return fmt.Errorf("unexpected nil of type %T", v)
31830	}
31831	if value == nil {
31832		return nil
31833	}
31834
31835	shape, ok := value.([]interface{})
31836	if !ok {
31837		return fmt.Errorf("unexpected JSON type %v", value)
31838	}
31839
31840	var cv []types.ChannelModeratedByAppInstanceUserSummary
31841	if *v == nil {
31842		cv = []types.ChannelModeratedByAppInstanceUserSummary{}
31843	} else {
31844		cv = *v
31845	}
31846
31847	for _, value := range shape {
31848		var col types.ChannelModeratedByAppInstanceUserSummary
31849		destAddr := &col
31850		if err := awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummary(&destAddr, value); err != nil {
31851			return err
31852		}
31853		col = *destAddr
31854		cv = append(cv, col)
31855
31856	}
31857	*v = cv
31858	return nil
31859}
31860
31861func awsRestjson1_deserializeDocumentChannelModerator(v **types.ChannelModerator, value interface{}) error {
31862	if v == nil {
31863		return fmt.Errorf("unexpected nil of type %T", v)
31864	}
31865	if value == nil {
31866		return nil
31867	}
31868
31869	shape, ok := value.(map[string]interface{})
31870	if !ok {
31871		return fmt.Errorf("unexpected JSON type %v", value)
31872	}
31873
31874	var sv *types.ChannelModerator
31875	if *v == nil {
31876		sv = &types.ChannelModerator{}
31877	} else {
31878		sv = *v
31879	}
31880
31881	for key, value := range shape {
31882		switch key {
31883		case "ChannelArn":
31884			if value != nil {
31885				jtv, ok := value.(string)
31886				if !ok {
31887					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
31888				}
31889				sv.ChannelArn = ptr.String(jtv)
31890			}
31891
31892		case "CreatedBy":
31893			if err := awsRestjson1_deserializeDocumentIdentity(&sv.CreatedBy, value); err != nil {
31894				return err
31895			}
31896
31897		case "CreatedTimestamp":
31898			if value != nil {
31899				switch jtv := value.(type) {
31900				case json.Number:
31901					f64, err := jtv.Float64()
31902					if err != nil {
31903						return err
31904					}
31905					sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
31906
31907				default:
31908					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
31909
31910				}
31911			}
31912
31913		case "Moderator":
31914			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Moderator, value); err != nil {
31915				return err
31916			}
31917
31918		default:
31919			_, _ = key, value
31920
31921		}
31922	}
31923	*v = sv
31924	return nil
31925}
31926
31927func awsRestjson1_deserializeDocumentChannelModeratorSummary(v **types.ChannelModeratorSummary, value interface{}) error {
31928	if v == nil {
31929		return fmt.Errorf("unexpected nil of type %T", v)
31930	}
31931	if value == nil {
31932		return nil
31933	}
31934
31935	shape, ok := value.(map[string]interface{})
31936	if !ok {
31937		return fmt.Errorf("unexpected JSON type %v", value)
31938	}
31939
31940	var sv *types.ChannelModeratorSummary
31941	if *v == nil {
31942		sv = &types.ChannelModeratorSummary{}
31943	} else {
31944		sv = *v
31945	}
31946
31947	for key, value := range shape {
31948		switch key {
31949		case "Moderator":
31950			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Moderator, value); err != nil {
31951				return err
31952			}
31953
31954		default:
31955			_, _ = key, value
31956
31957		}
31958	}
31959	*v = sv
31960	return nil
31961}
31962
31963func awsRestjson1_deserializeDocumentChannelModeratorSummaryList(v *[]types.ChannelModeratorSummary, value interface{}) error {
31964	if v == nil {
31965		return fmt.Errorf("unexpected nil of type %T", v)
31966	}
31967	if value == nil {
31968		return nil
31969	}
31970
31971	shape, ok := value.([]interface{})
31972	if !ok {
31973		return fmt.Errorf("unexpected JSON type %v", value)
31974	}
31975
31976	var cv []types.ChannelModeratorSummary
31977	if *v == nil {
31978		cv = []types.ChannelModeratorSummary{}
31979	} else {
31980		cv = *v
31981	}
31982
31983	for _, value := range shape {
31984		var col types.ChannelModeratorSummary
31985		destAddr := &col
31986		if err := awsRestjson1_deserializeDocumentChannelModeratorSummary(&destAddr, value); err != nil {
31987			return err
31988		}
31989		col = *destAddr
31990		cv = append(cv, col)
31991
31992	}
31993	*v = cv
31994	return nil
31995}
31996
31997func awsRestjson1_deserializeDocumentChannelRetentionSettings(v **types.ChannelRetentionSettings, value interface{}) error {
31998	if v == nil {
31999		return fmt.Errorf("unexpected nil of type %T", v)
32000	}
32001	if value == nil {
32002		return nil
32003	}
32004
32005	shape, ok := value.(map[string]interface{})
32006	if !ok {
32007		return fmt.Errorf("unexpected JSON type %v", value)
32008	}
32009
32010	var sv *types.ChannelRetentionSettings
32011	if *v == nil {
32012		sv = &types.ChannelRetentionSettings{}
32013	} else {
32014		sv = *v
32015	}
32016
32017	for key, value := range shape {
32018		switch key {
32019		case "RetentionDays":
32020			if value != nil {
32021				jtv, ok := value.(json.Number)
32022				if !ok {
32023					return fmt.Errorf("expected RetentionDays to be json.Number, got %T instead", value)
32024				}
32025				i64, err := jtv.Int64()
32026				if err != nil {
32027					return err
32028				}
32029				sv.RetentionDays = ptr.Int32(int32(i64))
32030			}
32031
32032		default:
32033			_, _ = key, value
32034
32035		}
32036	}
32037	*v = sv
32038	return nil
32039}
32040
32041func awsRestjson1_deserializeDocumentChannelSummary(v **types.ChannelSummary, value interface{}) error {
32042	if v == nil {
32043		return fmt.Errorf("unexpected nil of type %T", v)
32044	}
32045	if value == nil {
32046		return nil
32047	}
32048
32049	shape, ok := value.(map[string]interface{})
32050	if !ok {
32051		return fmt.Errorf("unexpected JSON type %v", value)
32052	}
32053
32054	var sv *types.ChannelSummary
32055	if *v == nil {
32056		sv = &types.ChannelSummary{}
32057	} else {
32058		sv = *v
32059	}
32060
32061	for key, value := range shape {
32062		switch key {
32063		case "ChannelArn":
32064			if value != nil {
32065				jtv, ok := value.(string)
32066				if !ok {
32067					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
32068				}
32069				sv.ChannelArn = ptr.String(jtv)
32070			}
32071
32072		case "LastMessageTimestamp":
32073			if value != nil {
32074				switch jtv := value.(type) {
32075				case json.Number:
32076					f64, err := jtv.Float64()
32077					if err != nil {
32078						return err
32079					}
32080					sv.LastMessageTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
32081
32082				default:
32083					return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
32084
32085				}
32086			}
32087
32088		case "Metadata":
32089			if value != nil {
32090				jtv, ok := value.(string)
32091				if !ok {
32092					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
32093				}
32094				sv.Metadata = ptr.String(jtv)
32095			}
32096
32097		case "Mode":
32098			if value != nil {
32099				jtv, ok := value.(string)
32100				if !ok {
32101					return fmt.Errorf("expected ChannelMode to be of type string, got %T instead", value)
32102				}
32103				sv.Mode = types.ChannelMode(jtv)
32104			}
32105
32106		case "Name":
32107			if value != nil {
32108				jtv, ok := value.(string)
32109				if !ok {
32110					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
32111				}
32112				sv.Name = ptr.String(jtv)
32113			}
32114
32115		case "Privacy":
32116			if value != nil {
32117				jtv, ok := value.(string)
32118				if !ok {
32119					return fmt.Errorf("expected ChannelPrivacy to be of type string, got %T instead", value)
32120				}
32121				sv.Privacy = types.ChannelPrivacy(jtv)
32122			}
32123
32124		default:
32125			_, _ = key, value
32126
32127		}
32128	}
32129	*v = sv
32130	return nil
32131}
32132
32133func awsRestjson1_deserializeDocumentChannelSummaryList(v *[]types.ChannelSummary, value interface{}) error {
32134	if v == nil {
32135		return fmt.Errorf("unexpected nil of type %T", v)
32136	}
32137	if value == nil {
32138		return nil
32139	}
32140
32141	shape, ok := value.([]interface{})
32142	if !ok {
32143		return fmt.Errorf("unexpected JSON type %v", value)
32144	}
32145
32146	var cv []types.ChannelSummary
32147	if *v == nil {
32148		cv = []types.ChannelSummary{}
32149	} else {
32150		cv = *v
32151	}
32152
32153	for _, value := range shape {
32154		var col types.ChannelSummary
32155		destAddr := &col
32156		if err := awsRestjson1_deserializeDocumentChannelSummary(&destAddr, value); err != nil {
32157			return err
32158		}
32159		col = *destAddr
32160		cv = append(cv, col)
32161
32162	}
32163	*v = cv
32164	return nil
32165}
32166
32167func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error {
32168	if v == nil {
32169		return fmt.Errorf("unexpected nil of type %T", v)
32170	}
32171	if value == nil {
32172		return nil
32173	}
32174
32175	shape, ok := value.(map[string]interface{})
32176	if !ok {
32177		return fmt.Errorf("unexpected JSON type %v", value)
32178	}
32179
32180	var sv *types.ConflictException
32181	if *v == nil {
32182		sv = &types.ConflictException{}
32183	} else {
32184		sv = *v
32185	}
32186
32187	for key, value := range shape {
32188		switch key {
32189		case "Code":
32190			if value != nil {
32191				jtv, ok := value.(string)
32192				if !ok {
32193					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
32194				}
32195				sv.Code = types.ErrorCode(jtv)
32196			}
32197
32198		case "Message":
32199			if value != nil {
32200				jtv, ok := value.(string)
32201				if !ok {
32202					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32203				}
32204				sv.Message = ptr.String(jtv)
32205			}
32206
32207		default:
32208			_, _ = key, value
32209
32210		}
32211	}
32212	*v = sv
32213	return nil
32214}
32215
32216func awsRestjson1_deserializeDocumentConversationRetentionSettings(v **types.ConversationRetentionSettings, value interface{}) error {
32217	if v == nil {
32218		return fmt.Errorf("unexpected nil of type %T", v)
32219	}
32220	if value == nil {
32221		return nil
32222	}
32223
32224	shape, ok := value.(map[string]interface{})
32225	if !ok {
32226		return fmt.Errorf("unexpected JSON type %v", value)
32227	}
32228
32229	var sv *types.ConversationRetentionSettings
32230	if *v == nil {
32231		sv = &types.ConversationRetentionSettings{}
32232	} else {
32233		sv = *v
32234	}
32235
32236	for key, value := range shape {
32237		switch key {
32238		case "RetentionDays":
32239			if value != nil {
32240				jtv, ok := value.(json.Number)
32241				if !ok {
32242					return fmt.Errorf("expected RetentionDays to be json.Number, got %T instead", value)
32243				}
32244				i64, err := jtv.Int64()
32245				if err != nil {
32246					return err
32247				}
32248				sv.RetentionDays = ptr.Int32(int32(i64))
32249			}
32250
32251		default:
32252			_, _ = key, value
32253
32254		}
32255	}
32256	*v = sv
32257	return nil
32258}
32259
32260func awsRestjson1_deserializeDocumentCreateAttendeeError(v **types.CreateAttendeeError, value interface{}) error {
32261	if v == nil {
32262		return fmt.Errorf("unexpected nil of type %T", v)
32263	}
32264	if value == nil {
32265		return nil
32266	}
32267
32268	shape, ok := value.(map[string]interface{})
32269	if !ok {
32270		return fmt.Errorf("unexpected JSON type %v", value)
32271	}
32272
32273	var sv *types.CreateAttendeeError
32274	if *v == nil {
32275		sv = &types.CreateAttendeeError{}
32276	} else {
32277		sv = *v
32278	}
32279
32280	for key, value := range shape {
32281		switch key {
32282		case "ErrorCode":
32283			if value != nil {
32284				jtv, ok := value.(string)
32285				if !ok {
32286					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32287				}
32288				sv.ErrorCode = ptr.String(jtv)
32289			}
32290
32291		case "ErrorMessage":
32292			if value != nil {
32293				jtv, ok := value.(string)
32294				if !ok {
32295					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32296				}
32297				sv.ErrorMessage = ptr.String(jtv)
32298			}
32299
32300		case "ExternalUserId":
32301			if value != nil {
32302				jtv, ok := value.(string)
32303				if !ok {
32304					return fmt.Errorf("expected ExternalUserIdType to be of type string, got %T instead", value)
32305				}
32306				sv.ExternalUserId = ptr.String(jtv)
32307			}
32308
32309		default:
32310			_, _ = key, value
32311
32312		}
32313	}
32314	*v = sv
32315	return nil
32316}
32317
32318func awsRestjson1_deserializeDocumentDNISEmergencyCallingConfiguration(v **types.DNISEmergencyCallingConfiguration, value interface{}) error {
32319	if v == nil {
32320		return fmt.Errorf("unexpected nil of type %T", v)
32321	}
32322	if value == nil {
32323		return nil
32324	}
32325
32326	shape, ok := value.(map[string]interface{})
32327	if !ok {
32328		return fmt.Errorf("unexpected JSON type %v", value)
32329	}
32330
32331	var sv *types.DNISEmergencyCallingConfiguration
32332	if *v == nil {
32333		sv = &types.DNISEmergencyCallingConfiguration{}
32334	} else {
32335		sv = *v
32336	}
32337
32338	for key, value := range shape {
32339		switch key {
32340		case "CallingCountry":
32341			if value != nil {
32342				jtv, ok := value.(string)
32343				if !ok {
32344					return fmt.Errorf("expected Alpha2CountryCode to be of type string, got %T instead", value)
32345				}
32346				sv.CallingCountry = ptr.String(jtv)
32347			}
32348
32349		case "EmergencyPhoneNumber":
32350			if value != nil {
32351				jtv, ok := value.(string)
32352				if !ok {
32353					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32354				}
32355				sv.EmergencyPhoneNumber = ptr.String(jtv)
32356			}
32357
32358		case "TestPhoneNumber":
32359			if value != nil {
32360				jtv, ok := value.(string)
32361				if !ok {
32362					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32363				}
32364				sv.TestPhoneNumber = ptr.String(jtv)
32365			}
32366
32367		default:
32368			_, _ = key, value
32369
32370		}
32371	}
32372	*v = sv
32373	return nil
32374}
32375
32376func awsRestjson1_deserializeDocumentDNISEmergencyCallingConfigurationList(v *[]types.DNISEmergencyCallingConfiguration, value interface{}) error {
32377	if v == nil {
32378		return fmt.Errorf("unexpected nil of type %T", v)
32379	}
32380	if value == nil {
32381		return nil
32382	}
32383
32384	shape, ok := value.([]interface{})
32385	if !ok {
32386		return fmt.Errorf("unexpected JSON type %v", value)
32387	}
32388
32389	var cv []types.DNISEmergencyCallingConfiguration
32390	if *v == nil {
32391		cv = []types.DNISEmergencyCallingConfiguration{}
32392	} else {
32393		cv = *v
32394	}
32395
32396	for _, value := range shape {
32397		var col types.DNISEmergencyCallingConfiguration
32398		destAddr := &col
32399		if err := awsRestjson1_deserializeDocumentDNISEmergencyCallingConfiguration(&destAddr, value); err != nil {
32400			return err
32401		}
32402		col = *destAddr
32403		cv = append(cv, col)
32404
32405	}
32406	*v = cv
32407	return nil
32408}
32409
32410func awsRestjson1_deserializeDocumentE164PhoneNumberList(v *[]string, value interface{}) error {
32411	if v == nil {
32412		return fmt.Errorf("unexpected nil of type %T", v)
32413	}
32414	if value == nil {
32415		return nil
32416	}
32417
32418	shape, ok := value.([]interface{})
32419	if !ok {
32420		return fmt.Errorf("unexpected JSON type %v", value)
32421	}
32422
32423	var cv []string
32424	if *v == nil {
32425		cv = []string{}
32426	} else {
32427		cv = *v
32428	}
32429
32430	for _, value := range shape {
32431		var col string
32432		if value != nil {
32433			jtv, ok := value.(string)
32434			if !ok {
32435				return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32436			}
32437			col = jtv
32438		}
32439		cv = append(cv, col)
32440
32441	}
32442	*v = cv
32443	return nil
32444}
32445
32446func awsRestjson1_deserializeDocumentEmergencyCallingConfiguration(v **types.EmergencyCallingConfiguration, value interface{}) error {
32447	if v == nil {
32448		return fmt.Errorf("unexpected nil of type %T", v)
32449	}
32450	if value == nil {
32451		return nil
32452	}
32453
32454	shape, ok := value.(map[string]interface{})
32455	if !ok {
32456		return fmt.Errorf("unexpected JSON type %v", value)
32457	}
32458
32459	var sv *types.EmergencyCallingConfiguration
32460	if *v == nil {
32461		sv = &types.EmergencyCallingConfiguration{}
32462	} else {
32463		sv = *v
32464	}
32465
32466	for key, value := range shape {
32467		switch key {
32468		case "DNIS":
32469			if err := awsRestjson1_deserializeDocumentDNISEmergencyCallingConfigurationList(&sv.DNIS, value); err != nil {
32470				return err
32471			}
32472
32473		default:
32474			_, _ = key, value
32475
32476		}
32477	}
32478	*v = sv
32479	return nil
32480}
32481
32482func awsRestjson1_deserializeDocumentEventsConfiguration(v **types.EventsConfiguration, value interface{}) error {
32483	if v == nil {
32484		return fmt.Errorf("unexpected nil of type %T", v)
32485	}
32486	if value == nil {
32487		return nil
32488	}
32489
32490	shape, ok := value.(map[string]interface{})
32491	if !ok {
32492		return fmt.Errorf("unexpected JSON type %v", value)
32493	}
32494
32495	var sv *types.EventsConfiguration
32496	if *v == nil {
32497		sv = &types.EventsConfiguration{}
32498	} else {
32499		sv = *v
32500	}
32501
32502	for key, value := range shape {
32503		switch key {
32504		case "BotId":
32505			if value != nil {
32506				jtv, ok := value.(string)
32507				if !ok {
32508					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32509				}
32510				sv.BotId = ptr.String(jtv)
32511			}
32512
32513		case "LambdaFunctionArn":
32514			if value != nil {
32515				jtv, ok := value.(string)
32516				if !ok {
32517					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
32518				}
32519				sv.LambdaFunctionArn = ptr.String(jtv)
32520			}
32521
32522		case "OutboundEventsHTTPSEndpoint":
32523			if value != nil {
32524				jtv, ok := value.(string)
32525				if !ok {
32526					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
32527				}
32528				sv.OutboundEventsHTTPSEndpoint = ptr.String(jtv)
32529			}
32530
32531		default:
32532			_, _ = key, value
32533
32534		}
32535	}
32536	*v = sv
32537	return nil
32538}
32539
32540func awsRestjson1_deserializeDocumentForbiddenException(v **types.ForbiddenException, value interface{}) error {
32541	if v == nil {
32542		return fmt.Errorf("unexpected nil of type %T", v)
32543	}
32544	if value == nil {
32545		return nil
32546	}
32547
32548	shape, ok := value.(map[string]interface{})
32549	if !ok {
32550		return fmt.Errorf("unexpected JSON type %v", value)
32551	}
32552
32553	var sv *types.ForbiddenException
32554	if *v == nil {
32555		sv = &types.ForbiddenException{}
32556	} else {
32557		sv = *v
32558	}
32559
32560	for key, value := range shape {
32561		switch key {
32562		case "Code":
32563			if value != nil {
32564				jtv, ok := value.(string)
32565				if !ok {
32566					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
32567				}
32568				sv.Code = types.ErrorCode(jtv)
32569			}
32570
32571		case "Message":
32572			if value != nil {
32573				jtv, ok := value.(string)
32574				if !ok {
32575					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32576				}
32577				sv.Message = ptr.String(jtv)
32578			}
32579
32580		default:
32581			_, _ = key, value
32582
32583		}
32584	}
32585	*v = sv
32586	return nil
32587}
32588
32589func awsRestjson1_deserializeDocumentGeoMatchParams(v **types.GeoMatchParams, value interface{}) error {
32590	if v == nil {
32591		return fmt.Errorf("unexpected nil of type %T", v)
32592	}
32593	if value == nil {
32594		return nil
32595	}
32596
32597	shape, ok := value.(map[string]interface{})
32598	if !ok {
32599		return fmt.Errorf("unexpected JSON type %v", value)
32600	}
32601
32602	var sv *types.GeoMatchParams
32603	if *v == nil {
32604		sv = &types.GeoMatchParams{}
32605	} else {
32606		sv = *v
32607	}
32608
32609	for key, value := range shape {
32610		switch key {
32611		case "AreaCode":
32612			if value != nil {
32613				jtv, ok := value.(string)
32614				if !ok {
32615					return fmt.Errorf("expected AreaCode to be of type string, got %T instead", value)
32616				}
32617				sv.AreaCode = ptr.String(jtv)
32618			}
32619
32620		case "Country":
32621			if value != nil {
32622				jtv, ok := value.(string)
32623				if !ok {
32624					return fmt.Errorf("expected Country to be of type string, got %T instead", value)
32625				}
32626				sv.Country = ptr.String(jtv)
32627			}
32628
32629		default:
32630			_, _ = key, value
32631
32632		}
32633	}
32634	*v = sv
32635	return nil
32636}
32637
32638func awsRestjson1_deserializeDocumentIdentity(v **types.Identity, value interface{}) error {
32639	if v == nil {
32640		return fmt.Errorf("unexpected nil of type %T", v)
32641	}
32642	if value == nil {
32643		return nil
32644	}
32645
32646	shape, ok := value.(map[string]interface{})
32647	if !ok {
32648		return fmt.Errorf("unexpected JSON type %v", value)
32649	}
32650
32651	var sv *types.Identity
32652	if *v == nil {
32653		sv = &types.Identity{}
32654	} else {
32655		sv = *v
32656	}
32657
32658	for key, value := range shape {
32659		switch key {
32660		case "Arn":
32661			if value != nil {
32662				jtv, ok := value.(string)
32663				if !ok {
32664					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
32665				}
32666				sv.Arn = ptr.String(jtv)
32667			}
32668
32669		case "Name":
32670			if value != nil {
32671				jtv, ok := value.(string)
32672				if !ok {
32673					return fmt.Errorf("expected ResourceName to be of type string, got %T instead", value)
32674				}
32675				sv.Name = ptr.String(jtv)
32676			}
32677
32678		default:
32679			_, _ = key, value
32680
32681		}
32682	}
32683	*v = sv
32684	return nil
32685}
32686
32687func awsRestjson1_deserializeDocumentInvite(v **types.Invite, value interface{}) error {
32688	if v == nil {
32689		return fmt.Errorf("unexpected nil of type %T", v)
32690	}
32691	if value == nil {
32692		return nil
32693	}
32694
32695	shape, ok := value.(map[string]interface{})
32696	if !ok {
32697		return fmt.Errorf("unexpected JSON type %v", value)
32698	}
32699
32700	var sv *types.Invite
32701	if *v == nil {
32702		sv = &types.Invite{}
32703	} else {
32704		sv = *v
32705	}
32706
32707	for key, value := range shape {
32708		switch key {
32709		case "EmailAddress":
32710			if value != nil {
32711				jtv, ok := value.(string)
32712				if !ok {
32713					return fmt.Errorf("expected EmailAddress to be of type string, got %T instead", value)
32714				}
32715				sv.EmailAddress = ptr.String(jtv)
32716			}
32717
32718		case "EmailStatus":
32719			if value != nil {
32720				jtv, ok := value.(string)
32721				if !ok {
32722					return fmt.Errorf("expected EmailStatus to be of type string, got %T instead", value)
32723				}
32724				sv.EmailStatus = types.EmailStatus(jtv)
32725			}
32726
32727		case "InviteId":
32728			if value != nil {
32729				jtv, ok := value.(string)
32730				if !ok {
32731					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32732				}
32733				sv.InviteId = ptr.String(jtv)
32734			}
32735
32736		case "Status":
32737			if value != nil {
32738				jtv, ok := value.(string)
32739				if !ok {
32740					return fmt.Errorf("expected InviteStatus to be of type string, got %T instead", value)
32741				}
32742				sv.Status = types.InviteStatus(jtv)
32743			}
32744
32745		default:
32746			_, _ = key, value
32747
32748		}
32749	}
32750	*v = sv
32751	return nil
32752}
32753
32754func awsRestjson1_deserializeDocumentInviteList(v *[]types.Invite, value interface{}) error {
32755	if v == nil {
32756		return fmt.Errorf("unexpected nil of type %T", v)
32757	}
32758	if value == nil {
32759		return nil
32760	}
32761
32762	shape, ok := value.([]interface{})
32763	if !ok {
32764		return fmt.Errorf("unexpected JSON type %v", value)
32765	}
32766
32767	var cv []types.Invite
32768	if *v == nil {
32769		cv = []types.Invite{}
32770	} else {
32771		cv = *v
32772	}
32773
32774	for _, value := range shape {
32775		var col types.Invite
32776		destAddr := &col
32777		if err := awsRestjson1_deserializeDocumentInvite(&destAddr, value); err != nil {
32778			return err
32779		}
32780		col = *destAddr
32781		cv = append(cv, col)
32782
32783	}
32784	*v = cv
32785	return nil
32786}
32787
32788func awsRestjson1_deserializeDocumentLicenseList(v *[]types.License, value interface{}) error {
32789	if v == nil {
32790		return fmt.Errorf("unexpected nil of type %T", v)
32791	}
32792	if value == nil {
32793		return nil
32794	}
32795
32796	shape, ok := value.([]interface{})
32797	if !ok {
32798		return fmt.Errorf("unexpected JSON type %v", value)
32799	}
32800
32801	var cv []types.License
32802	if *v == nil {
32803		cv = []types.License{}
32804	} else {
32805		cv = *v
32806	}
32807
32808	for _, value := range shape {
32809		var col types.License
32810		if value != nil {
32811			jtv, ok := value.(string)
32812			if !ok {
32813				return fmt.Errorf("expected License to be of type string, got %T instead", value)
32814			}
32815			col = types.License(jtv)
32816		}
32817		cv = append(cv, col)
32818
32819	}
32820	*v = cv
32821	return nil
32822}
32823
32824func awsRestjson1_deserializeDocumentLoggingConfiguration(v **types.LoggingConfiguration, value interface{}) error {
32825	if v == nil {
32826		return fmt.Errorf("unexpected nil of type %T", v)
32827	}
32828	if value == nil {
32829		return nil
32830	}
32831
32832	shape, ok := value.(map[string]interface{})
32833	if !ok {
32834		return fmt.Errorf("unexpected JSON type %v", value)
32835	}
32836
32837	var sv *types.LoggingConfiguration
32838	if *v == nil {
32839		sv = &types.LoggingConfiguration{}
32840	} else {
32841		sv = *v
32842	}
32843
32844	for key, value := range shape {
32845		switch key {
32846		case "EnableSIPLogs":
32847			if value != nil {
32848				jtv, ok := value.(bool)
32849				if !ok {
32850					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
32851				}
32852				sv.EnableSIPLogs = ptr.Bool(jtv)
32853			}
32854
32855		default:
32856			_, _ = key, value
32857
32858		}
32859	}
32860	*v = sv
32861	return nil
32862}
32863
32864func awsRestjson1_deserializeDocumentMediaCapturePipeline(v **types.MediaCapturePipeline, value interface{}) error {
32865	if v == nil {
32866		return fmt.Errorf("unexpected nil of type %T", v)
32867	}
32868	if value == nil {
32869		return nil
32870	}
32871
32872	shape, ok := value.(map[string]interface{})
32873	if !ok {
32874		return fmt.Errorf("unexpected JSON type %v", value)
32875	}
32876
32877	var sv *types.MediaCapturePipeline
32878	if *v == nil {
32879		sv = &types.MediaCapturePipeline{}
32880	} else {
32881		sv = *v
32882	}
32883
32884	for key, value := range shape {
32885		switch key {
32886		case "CreatedTimestamp":
32887			if value != nil {
32888				jtv, ok := value.(string)
32889				if !ok {
32890					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32891				}
32892				t, err := smithytime.ParseDateTime(jtv)
32893				if err != nil {
32894					return err
32895				}
32896				sv.CreatedTimestamp = ptr.Time(t)
32897			}
32898
32899		case "MediaPipelineId":
32900			if value != nil {
32901				jtv, ok := value.(string)
32902				if !ok {
32903					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
32904				}
32905				sv.MediaPipelineId = ptr.String(jtv)
32906			}
32907
32908		case "SinkArn":
32909			if value != nil {
32910				jtv, ok := value.(string)
32911				if !ok {
32912					return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
32913				}
32914				sv.SinkArn = ptr.String(jtv)
32915			}
32916
32917		case "SinkType":
32918			if value != nil {
32919				jtv, ok := value.(string)
32920				if !ok {
32921					return fmt.Errorf("expected MediaPipelineSinkType to be of type string, got %T instead", value)
32922				}
32923				sv.SinkType = types.MediaPipelineSinkType(jtv)
32924			}
32925
32926		case "SourceArn":
32927			if value != nil {
32928				jtv, ok := value.(string)
32929				if !ok {
32930					return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
32931				}
32932				sv.SourceArn = ptr.String(jtv)
32933			}
32934
32935		case "SourceType":
32936			if value != nil {
32937				jtv, ok := value.(string)
32938				if !ok {
32939					return fmt.Errorf("expected MediaPipelineSourceType to be of type string, got %T instead", value)
32940				}
32941				sv.SourceType = types.MediaPipelineSourceType(jtv)
32942			}
32943
32944		case "Status":
32945			if value != nil {
32946				jtv, ok := value.(string)
32947				if !ok {
32948					return fmt.Errorf("expected MediaPipelineStatus to be of type string, got %T instead", value)
32949				}
32950				sv.Status = types.MediaPipelineStatus(jtv)
32951			}
32952
32953		case "UpdatedTimestamp":
32954			if value != nil {
32955				jtv, ok := value.(string)
32956				if !ok {
32957					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32958				}
32959				t, err := smithytime.ParseDateTime(jtv)
32960				if err != nil {
32961					return err
32962				}
32963				sv.UpdatedTimestamp = ptr.Time(t)
32964			}
32965
32966		default:
32967			_, _ = key, value
32968
32969		}
32970	}
32971	*v = sv
32972	return nil
32973}
32974
32975func awsRestjson1_deserializeDocumentMediaCapturePipelineList(v *[]types.MediaCapturePipeline, value interface{}) error {
32976	if v == nil {
32977		return fmt.Errorf("unexpected nil of type %T", v)
32978	}
32979	if value == nil {
32980		return nil
32981	}
32982
32983	shape, ok := value.([]interface{})
32984	if !ok {
32985		return fmt.Errorf("unexpected JSON type %v", value)
32986	}
32987
32988	var cv []types.MediaCapturePipeline
32989	if *v == nil {
32990		cv = []types.MediaCapturePipeline{}
32991	} else {
32992		cv = *v
32993	}
32994
32995	for _, value := range shape {
32996		var col types.MediaCapturePipeline
32997		destAddr := &col
32998		if err := awsRestjson1_deserializeDocumentMediaCapturePipeline(&destAddr, value); err != nil {
32999			return err
33000		}
33001		col = *destAddr
33002		cv = append(cv, col)
33003
33004	}
33005	*v = cv
33006	return nil
33007}
33008
33009func awsRestjson1_deserializeDocumentMediaPlacement(v **types.MediaPlacement, value interface{}) error {
33010	if v == nil {
33011		return fmt.Errorf("unexpected nil of type %T", v)
33012	}
33013	if value == nil {
33014		return nil
33015	}
33016
33017	shape, ok := value.(map[string]interface{})
33018	if !ok {
33019		return fmt.Errorf("unexpected JSON type %v", value)
33020	}
33021
33022	var sv *types.MediaPlacement
33023	if *v == nil {
33024		sv = &types.MediaPlacement{}
33025	} else {
33026		sv = *v
33027	}
33028
33029	for key, value := range shape {
33030		switch key {
33031		case "AudioFallbackUrl":
33032			if value != nil {
33033				jtv, ok := value.(string)
33034				if !ok {
33035					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33036				}
33037				sv.AudioFallbackUrl = ptr.String(jtv)
33038			}
33039
33040		case "AudioHostUrl":
33041			if value != nil {
33042				jtv, ok := value.(string)
33043				if !ok {
33044					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33045				}
33046				sv.AudioHostUrl = ptr.String(jtv)
33047			}
33048
33049		case "EventIngestionUrl":
33050			if value != nil {
33051				jtv, ok := value.(string)
33052				if !ok {
33053					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33054				}
33055				sv.EventIngestionUrl = ptr.String(jtv)
33056			}
33057
33058		case "ScreenDataUrl":
33059			if value != nil {
33060				jtv, ok := value.(string)
33061				if !ok {
33062					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33063				}
33064				sv.ScreenDataUrl = ptr.String(jtv)
33065			}
33066
33067		case "ScreenSharingUrl":
33068			if value != nil {
33069				jtv, ok := value.(string)
33070				if !ok {
33071					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33072				}
33073				sv.ScreenSharingUrl = ptr.String(jtv)
33074			}
33075
33076		case "ScreenViewingUrl":
33077			if value != nil {
33078				jtv, ok := value.(string)
33079				if !ok {
33080					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33081				}
33082				sv.ScreenViewingUrl = ptr.String(jtv)
33083			}
33084
33085		case "SignalingUrl":
33086			if value != nil {
33087				jtv, ok := value.(string)
33088				if !ok {
33089					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33090				}
33091				sv.SignalingUrl = ptr.String(jtv)
33092			}
33093
33094		case "TurnControlUrl":
33095			if value != nil {
33096				jtv, ok := value.(string)
33097				if !ok {
33098					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
33099				}
33100				sv.TurnControlUrl = ptr.String(jtv)
33101			}
33102
33103		default:
33104			_, _ = key, value
33105
33106		}
33107	}
33108	*v = sv
33109	return nil
33110}
33111
33112func awsRestjson1_deserializeDocumentMeeting(v **types.Meeting, value interface{}) error {
33113	if v == nil {
33114		return fmt.Errorf("unexpected nil of type %T", v)
33115	}
33116	if value == nil {
33117		return nil
33118	}
33119
33120	shape, ok := value.(map[string]interface{})
33121	if !ok {
33122		return fmt.Errorf("unexpected JSON type %v", value)
33123	}
33124
33125	var sv *types.Meeting
33126	if *v == nil {
33127		sv = &types.Meeting{}
33128	} else {
33129		sv = *v
33130	}
33131
33132	for key, value := range shape {
33133		switch key {
33134		case "ExternalMeetingId":
33135			if value != nil {
33136				jtv, ok := value.(string)
33137				if !ok {
33138					return fmt.Errorf("expected ExternalMeetingIdType to be of type string, got %T instead", value)
33139				}
33140				sv.ExternalMeetingId = ptr.String(jtv)
33141			}
33142
33143		case "MediaPlacement":
33144			if err := awsRestjson1_deserializeDocumentMediaPlacement(&sv.MediaPlacement, value); err != nil {
33145				return err
33146			}
33147
33148		case "MediaRegion":
33149			if value != nil {
33150				jtv, ok := value.(string)
33151				if !ok {
33152					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33153				}
33154				sv.MediaRegion = ptr.String(jtv)
33155			}
33156
33157		case "MeetingId":
33158			if value != nil {
33159				jtv, ok := value.(string)
33160				if !ok {
33161					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
33162				}
33163				sv.MeetingId = ptr.String(jtv)
33164			}
33165
33166		default:
33167			_, _ = key, value
33168
33169		}
33170	}
33171	*v = sv
33172	return nil
33173}
33174
33175func awsRestjson1_deserializeDocumentMeetingList(v *[]types.Meeting, value interface{}) error {
33176	if v == nil {
33177		return fmt.Errorf("unexpected nil of type %T", v)
33178	}
33179	if value == nil {
33180		return nil
33181	}
33182
33183	shape, ok := value.([]interface{})
33184	if !ok {
33185		return fmt.Errorf("unexpected JSON type %v", value)
33186	}
33187
33188	var cv []types.Meeting
33189	if *v == nil {
33190		cv = []types.Meeting{}
33191	} else {
33192		cv = *v
33193	}
33194
33195	for _, value := range shape {
33196		var col types.Meeting
33197		destAddr := &col
33198		if err := awsRestjson1_deserializeDocumentMeeting(&destAddr, value); err != nil {
33199			return err
33200		}
33201		col = *destAddr
33202		cv = append(cv, col)
33203
33204	}
33205	*v = cv
33206	return nil
33207}
33208
33209func awsRestjson1_deserializeDocumentMember(v **types.Member, value interface{}) error {
33210	if v == nil {
33211		return fmt.Errorf("unexpected nil of type %T", v)
33212	}
33213	if value == nil {
33214		return nil
33215	}
33216
33217	shape, ok := value.(map[string]interface{})
33218	if !ok {
33219		return fmt.Errorf("unexpected JSON type %v", value)
33220	}
33221
33222	var sv *types.Member
33223	if *v == nil {
33224		sv = &types.Member{}
33225	} else {
33226		sv = *v
33227	}
33228
33229	for key, value := range shape {
33230		switch key {
33231		case "AccountId":
33232			if value != nil {
33233				jtv, ok := value.(string)
33234				if !ok {
33235					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33236				}
33237				sv.AccountId = ptr.String(jtv)
33238			}
33239
33240		case "Email":
33241			if value != nil {
33242				jtv, ok := value.(string)
33243				if !ok {
33244					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
33245				}
33246				sv.Email = ptr.String(jtv)
33247			}
33248
33249		case "FullName":
33250			if value != nil {
33251				jtv, ok := value.(string)
33252				if !ok {
33253					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
33254				}
33255				sv.FullName = ptr.String(jtv)
33256			}
33257
33258		case "MemberId":
33259			if value != nil {
33260				jtv, ok := value.(string)
33261				if !ok {
33262					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33263				}
33264				sv.MemberId = ptr.String(jtv)
33265			}
33266
33267		case "MemberType":
33268			if value != nil {
33269				jtv, ok := value.(string)
33270				if !ok {
33271					return fmt.Errorf("expected MemberType to be of type string, got %T instead", value)
33272				}
33273				sv.MemberType = types.MemberType(jtv)
33274			}
33275
33276		default:
33277			_, _ = key, value
33278
33279		}
33280	}
33281	*v = sv
33282	return nil
33283}
33284
33285func awsRestjson1_deserializeDocumentMemberError(v **types.MemberError, value interface{}) error {
33286	if v == nil {
33287		return fmt.Errorf("unexpected nil of type %T", v)
33288	}
33289	if value == nil {
33290		return nil
33291	}
33292
33293	shape, ok := value.(map[string]interface{})
33294	if !ok {
33295		return fmt.Errorf("unexpected JSON type %v", value)
33296	}
33297
33298	var sv *types.MemberError
33299	if *v == nil {
33300		sv = &types.MemberError{}
33301	} else {
33302		sv = *v
33303	}
33304
33305	for key, value := range shape {
33306		switch key {
33307		case "ErrorCode":
33308			if value != nil {
33309				jtv, ok := value.(string)
33310				if !ok {
33311					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
33312				}
33313				sv.ErrorCode = types.ErrorCode(jtv)
33314			}
33315
33316		case "ErrorMessage":
33317			if value != nil {
33318				jtv, ok := value.(string)
33319				if !ok {
33320					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33321				}
33322				sv.ErrorMessage = ptr.String(jtv)
33323			}
33324
33325		case "MemberId":
33326			if value != nil {
33327				jtv, ok := value.(string)
33328				if !ok {
33329					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33330				}
33331				sv.MemberId = ptr.String(jtv)
33332			}
33333
33334		default:
33335			_, _ = key, value
33336
33337		}
33338	}
33339	*v = sv
33340	return nil
33341}
33342
33343func awsRestjson1_deserializeDocumentMemberErrorList(v *[]types.MemberError, value interface{}) error {
33344	if v == nil {
33345		return fmt.Errorf("unexpected nil of type %T", v)
33346	}
33347	if value == nil {
33348		return nil
33349	}
33350
33351	shape, ok := value.([]interface{})
33352	if !ok {
33353		return fmt.Errorf("unexpected JSON type %v", value)
33354	}
33355
33356	var cv []types.MemberError
33357	if *v == nil {
33358		cv = []types.MemberError{}
33359	} else {
33360		cv = *v
33361	}
33362
33363	for _, value := range shape {
33364		var col types.MemberError
33365		destAddr := &col
33366		if err := awsRestjson1_deserializeDocumentMemberError(&destAddr, value); err != nil {
33367			return err
33368		}
33369		col = *destAddr
33370		cv = append(cv, col)
33371
33372	}
33373	*v = cv
33374	return nil
33375}
33376
33377func awsRestjson1_deserializeDocumentMembers(v *[]types.Identity, value interface{}) error {
33378	if v == nil {
33379		return fmt.Errorf("unexpected nil of type %T", v)
33380	}
33381	if value == nil {
33382		return nil
33383	}
33384
33385	shape, ok := value.([]interface{})
33386	if !ok {
33387		return fmt.Errorf("unexpected JSON type %v", value)
33388	}
33389
33390	var cv []types.Identity
33391	if *v == nil {
33392		cv = []types.Identity{}
33393	} else {
33394		cv = *v
33395	}
33396
33397	for _, value := range shape {
33398		var col types.Identity
33399		destAddr := &col
33400		if err := awsRestjson1_deserializeDocumentIdentity(&destAddr, value); err != nil {
33401			return err
33402		}
33403		col = *destAddr
33404		cv = append(cv, col)
33405
33406	}
33407	*v = cv
33408	return nil
33409}
33410
33411func awsRestjson1_deserializeDocumentMessagingSessionEndpoint(v **types.MessagingSessionEndpoint, value interface{}) error {
33412	if v == nil {
33413		return fmt.Errorf("unexpected nil of type %T", v)
33414	}
33415	if value == nil {
33416		return nil
33417	}
33418
33419	shape, ok := value.(map[string]interface{})
33420	if !ok {
33421		return fmt.Errorf("unexpected JSON type %v", value)
33422	}
33423
33424	var sv *types.MessagingSessionEndpoint
33425	if *v == nil {
33426		sv = &types.MessagingSessionEndpoint{}
33427	} else {
33428		sv = *v
33429	}
33430
33431	for key, value := range shape {
33432		switch key {
33433		case "Url":
33434			if value != nil {
33435				jtv, ok := value.(string)
33436				if !ok {
33437					return fmt.Errorf("expected UrlType to be of type string, got %T instead", value)
33438				}
33439				sv.Url = ptr.String(jtv)
33440			}
33441
33442		default:
33443			_, _ = key, value
33444
33445		}
33446	}
33447	*v = sv
33448	return nil
33449}
33450
33451func awsRestjson1_deserializeDocumentNotFoundException(v **types.NotFoundException, value interface{}) error {
33452	if v == nil {
33453		return fmt.Errorf("unexpected nil of type %T", v)
33454	}
33455	if value == nil {
33456		return nil
33457	}
33458
33459	shape, ok := value.(map[string]interface{})
33460	if !ok {
33461		return fmt.Errorf("unexpected JSON type %v", value)
33462	}
33463
33464	var sv *types.NotFoundException
33465	if *v == nil {
33466		sv = &types.NotFoundException{}
33467	} else {
33468		sv = *v
33469	}
33470
33471	for key, value := range shape {
33472		switch key {
33473		case "Code":
33474			if value != nil {
33475				jtv, ok := value.(string)
33476				if !ok {
33477					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
33478				}
33479				sv.Code = types.ErrorCode(jtv)
33480			}
33481
33482		case "Message":
33483			if value != nil {
33484				jtv, ok := value.(string)
33485				if !ok {
33486					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33487				}
33488				sv.Message = ptr.String(jtv)
33489			}
33490
33491		default:
33492			_, _ = key, value
33493
33494		}
33495	}
33496	*v = sv
33497	return nil
33498}
33499
33500func awsRestjson1_deserializeDocumentOrderedPhoneNumber(v **types.OrderedPhoneNumber, value interface{}) error {
33501	if v == nil {
33502		return fmt.Errorf("unexpected nil of type %T", v)
33503	}
33504	if value == nil {
33505		return nil
33506	}
33507
33508	shape, ok := value.(map[string]interface{})
33509	if !ok {
33510		return fmt.Errorf("unexpected JSON type %v", value)
33511	}
33512
33513	var sv *types.OrderedPhoneNumber
33514	if *v == nil {
33515		sv = &types.OrderedPhoneNumber{}
33516	} else {
33517		sv = *v
33518	}
33519
33520	for key, value := range shape {
33521		switch key {
33522		case "E164PhoneNumber":
33523			if value != nil {
33524				jtv, ok := value.(string)
33525				if !ok {
33526					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
33527				}
33528				sv.E164PhoneNumber = ptr.String(jtv)
33529			}
33530
33531		case "Status":
33532			if value != nil {
33533				jtv, ok := value.(string)
33534				if !ok {
33535					return fmt.Errorf("expected OrderedPhoneNumberStatus to be of type string, got %T instead", value)
33536				}
33537				sv.Status = types.OrderedPhoneNumberStatus(jtv)
33538			}
33539
33540		default:
33541			_, _ = key, value
33542
33543		}
33544	}
33545	*v = sv
33546	return nil
33547}
33548
33549func awsRestjson1_deserializeDocumentOrderedPhoneNumberList(v *[]types.OrderedPhoneNumber, value interface{}) error {
33550	if v == nil {
33551		return fmt.Errorf("unexpected nil of type %T", v)
33552	}
33553	if value == nil {
33554		return nil
33555	}
33556
33557	shape, ok := value.([]interface{})
33558	if !ok {
33559		return fmt.Errorf("unexpected JSON type %v", value)
33560	}
33561
33562	var cv []types.OrderedPhoneNumber
33563	if *v == nil {
33564		cv = []types.OrderedPhoneNumber{}
33565	} else {
33566		cv = *v
33567	}
33568
33569	for _, value := range shape {
33570		var col types.OrderedPhoneNumber
33571		destAddr := &col
33572		if err := awsRestjson1_deserializeDocumentOrderedPhoneNumber(&destAddr, value); err != nil {
33573			return err
33574		}
33575		col = *destAddr
33576		cv = append(cv, col)
33577
33578	}
33579	*v = cv
33580	return nil
33581}
33582
33583func awsRestjson1_deserializeDocumentOrigination(v **types.Origination, value interface{}) error {
33584	if v == nil {
33585		return fmt.Errorf("unexpected nil of type %T", v)
33586	}
33587	if value == nil {
33588		return nil
33589	}
33590
33591	shape, ok := value.(map[string]interface{})
33592	if !ok {
33593		return fmt.Errorf("unexpected JSON type %v", value)
33594	}
33595
33596	var sv *types.Origination
33597	if *v == nil {
33598		sv = &types.Origination{}
33599	} else {
33600		sv = *v
33601	}
33602
33603	for key, value := range shape {
33604		switch key {
33605		case "Disabled":
33606			if value != nil {
33607				jtv, ok := value.(bool)
33608				if !ok {
33609					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
33610				}
33611				sv.Disabled = ptr.Bool(jtv)
33612			}
33613
33614		case "Routes":
33615			if err := awsRestjson1_deserializeDocumentOriginationRouteList(&sv.Routes, value); err != nil {
33616				return err
33617			}
33618
33619		default:
33620			_, _ = key, value
33621
33622		}
33623	}
33624	*v = sv
33625	return nil
33626}
33627
33628func awsRestjson1_deserializeDocumentOriginationRoute(v **types.OriginationRoute, value interface{}) error {
33629	if v == nil {
33630		return fmt.Errorf("unexpected nil of type %T", v)
33631	}
33632	if value == nil {
33633		return nil
33634	}
33635
33636	shape, ok := value.(map[string]interface{})
33637	if !ok {
33638		return fmt.Errorf("unexpected JSON type %v", value)
33639	}
33640
33641	var sv *types.OriginationRoute
33642	if *v == nil {
33643		sv = &types.OriginationRoute{}
33644	} else {
33645		sv = *v
33646	}
33647
33648	for key, value := range shape {
33649		switch key {
33650		case "Host":
33651			if value != nil {
33652				jtv, ok := value.(string)
33653				if !ok {
33654					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33655				}
33656				sv.Host = ptr.String(jtv)
33657			}
33658
33659		case "Port":
33660			if value != nil {
33661				jtv, ok := value.(json.Number)
33662				if !ok {
33663					return fmt.Errorf("expected Port to be json.Number, got %T instead", value)
33664				}
33665				i64, err := jtv.Int64()
33666				if err != nil {
33667					return err
33668				}
33669				sv.Port = ptr.Int32(int32(i64))
33670			}
33671
33672		case "Priority":
33673			if value != nil {
33674				jtv, ok := value.(json.Number)
33675				if !ok {
33676					return fmt.Errorf("expected OriginationRoutePriority to be json.Number, got %T instead", value)
33677				}
33678				i64, err := jtv.Int64()
33679				if err != nil {
33680					return err
33681				}
33682				sv.Priority = ptr.Int32(int32(i64))
33683			}
33684
33685		case "Protocol":
33686			if value != nil {
33687				jtv, ok := value.(string)
33688				if !ok {
33689					return fmt.Errorf("expected OriginationRouteProtocol to be of type string, got %T instead", value)
33690				}
33691				sv.Protocol = types.OriginationRouteProtocol(jtv)
33692			}
33693
33694		case "Weight":
33695			if value != nil {
33696				jtv, ok := value.(json.Number)
33697				if !ok {
33698					return fmt.Errorf("expected OriginationRouteWeight to be json.Number, got %T instead", value)
33699				}
33700				i64, err := jtv.Int64()
33701				if err != nil {
33702					return err
33703				}
33704				sv.Weight = ptr.Int32(int32(i64))
33705			}
33706
33707		default:
33708			_, _ = key, value
33709
33710		}
33711	}
33712	*v = sv
33713	return nil
33714}
33715
33716func awsRestjson1_deserializeDocumentOriginationRouteList(v *[]types.OriginationRoute, value interface{}) error {
33717	if v == nil {
33718		return fmt.Errorf("unexpected nil of type %T", v)
33719	}
33720	if value == nil {
33721		return nil
33722	}
33723
33724	shape, ok := value.([]interface{})
33725	if !ok {
33726		return fmt.Errorf("unexpected JSON type %v", value)
33727	}
33728
33729	var cv []types.OriginationRoute
33730	if *v == nil {
33731		cv = []types.OriginationRoute{}
33732	} else {
33733		cv = *v
33734	}
33735
33736	for _, value := range shape {
33737		var col types.OriginationRoute
33738		destAddr := &col
33739		if err := awsRestjson1_deserializeDocumentOriginationRoute(&destAddr, value); err != nil {
33740			return err
33741		}
33742		col = *destAddr
33743		cv = append(cv, col)
33744
33745	}
33746	*v = cv
33747	return nil
33748}
33749
33750func awsRestjson1_deserializeDocumentParticipant(v **types.Participant, value interface{}) error {
33751	if v == nil {
33752		return fmt.Errorf("unexpected nil of type %T", v)
33753	}
33754	if value == nil {
33755		return nil
33756	}
33757
33758	shape, ok := value.(map[string]interface{})
33759	if !ok {
33760		return fmt.Errorf("unexpected JSON type %v", value)
33761	}
33762
33763	var sv *types.Participant
33764	if *v == nil {
33765		sv = &types.Participant{}
33766	} else {
33767		sv = *v
33768	}
33769
33770	for key, value := range shape {
33771		switch key {
33772		case "PhoneNumber":
33773			if value != nil {
33774				jtv, ok := value.(string)
33775				if !ok {
33776					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
33777				}
33778				sv.PhoneNumber = ptr.String(jtv)
33779			}
33780
33781		case "ProxyPhoneNumber":
33782			if value != nil {
33783				jtv, ok := value.(string)
33784				if !ok {
33785					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
33786				}
33787				sv.ProxyPhoneNumber = ptr.String(jtv)
33788			}
33789
33790		default:
33791			_, _ = key, value
33792
33793		}
33794	}
33795	*v = sv
33796	return nil
33797}
33798
33799func awsRestjson1_deserializeDocumentParticipants(v *[]types.Participant, value interface{}) error {
33800	if v == nil {
33801		return fmt.Errorf("unexpected nil of type %T", v)
33802	}
33803	if value == nil {
33804		return nil
33805	}
33806
33807	shape, ok := value.([]interface{})
33808	if !ok {
33809		return fmt.Errorf("unexpected JSON type %v", value)
33810	}
33811
33812	var cv []types.Participant
33813	if *v == nil {
33814		cv = []types.Participant{}
33815	} else {
33816		cv = *v
33817	}
33818
33819	for _, value := range shape {
33820		var col types.Participant
33821		destAddr := &col
33822		if err := awsRestjson1_deserializeDocumentParticipant(&destAddr, value); err != nil {
33823			return err
33824		}
33825		col = *destAddr
33826		cv = append(cv, col)
33827
33828	}
33829	*v = cv
33830	return nil
33831}
33832
33833func awsRestjson1_deserializeDocumentPhoneNumber(v **types.PhoneNumber, value interface{}) error {
33834	if v == nil {
33835		return fmt.Errorf("unexpected nil of type %T", v)
33836	}
33837	if value == nil {
33838		return nil
33839	}
33840
33841	shape, ok := value.(map[string]interface{})
33842	if !ok {
33843		return fmt.Errorf("unexpected JSON type %v", value)
33844	}
33845
33846	var sv *types.PhoneNumber
33847	if *v == nil {
33848		sv = &types.PhoneNumber{}
33849	} else {
33850		sv = *v
33851	}
33852
33853	for key, value := range shape {
33854		switch key {
33855		case "Associations":
33856			if err := awsRestjson1_deserializeDocumentPhoneNumberAssociationList(&sv.Associations, value); err != nil {
33857				return err
33858			}
33859
33860		case "CallingName":
33861			if value != nil {
33862				jtv, ok := value.(string)
33863				if !ok {
33864					return fmt.Errorf("expected CallingName to be of type string, got %T instead", value)
33865				}
33866				sv.CallingName = ptr.String(jtv)
33867			}
33868
33869		case "CallingNameStatus":
33870			if value != nil {
33871				jtv, ok := value.(string)
33872				if !ok {
33873					return fmt.Errorf("expected CallingNameStatus to be of type string, got %T instead", value)
33874				}
33875				sv.CallingNameStatus = types.CallingNameStatus(jtv)
33876			}
33877
33878		case "Capabilities":
33879			if err := awsRestjson1_deserializeDocumentPhoneNumberCapabilities(&sv.Capabilities, value); err != nil {
33880				return err
33881			}
33882
33883		case "Country":
33884			if value != nil {
33885				jtv, ok := value.(string)
33886				if !ok {
33887					return fmt.Errorf("expected Alpha2CountryCode to be of type string, got %T instead", value)
33888				}
33889				sv.Country = ptr.String(jtv)
33890			}
33891
33892		case "CreatedTimestamp":
33893			if value != nil {
33894				jtv, ok := value.(string)
33895				if !ok {
33896					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33897				}
33898				t, err := smithytime.ParseDateTime(jtv)
33899				if err != nil {
33900					return err
33901				}
33902				sv.CreatedTimestamp = ptr.Time(t)
33903			}
33904
33905		case "DeletionTimestamp":
33906			if value != nil {
33907				jtv, ok := value.(string)
33908				if !ok {
33909					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33910				}
33911				t, err := smithytime.ParseDateTime(jtv)
33912				if err != nil {
33913					return err
33914				}
33915				sv.DeletionTimestamp = ptr.Time(t)
33916			}
33917
33918		case "E164PhoneNumber":
33919			if value != nil {
33920				jtv, ok := value.(string)
33921				if !ok {
33922					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
33923				}
33924				sv.E164PhoneNumber = ptr.String(jtv)
33925			}
33926
33927		case "PhoneNumberId":
33928			if value != nil {
33929				jtv, ok := value.(string)
33930				if !ok {
33931					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33932				}
33933				sv.PhoneNumberId = ptr.String(jtv)
33934			}
33935
33936		case "ProductType":
33937			if value != nil {
33938				jtv, ok := value.(string)
33939				if !ok {
33940					return fmt.Errorf("expected PhoneNumberProductType to be of type string, got %T instead", value)
33941				}
33942				sv.ProductType = types.PhoneNumberProductType(jtv)
33943			}
33944
33945		case "Status":
33946			if value != nil {
33947				jtv, ok := value.(string)
33948				if !ok {
33949					return fmt.Errorf("expected PhoneNumberStatus to be of type string, got %T instead", value)
33950				}
33951				sv.Status = types.PhoneNumberStatus(jtv)
33952			}
33953
33954		case "Type":
33955			if value != nil {
33956				jtv, ok := value.(string)
33957				if !ok {
33958					return fmt.Errorf("expected PhoneNumberType to be of type string, got %T instead", value)
33959				}
33960				sv.Type = types.PhoneNumberType(jtv)
33961			}
33962
33963		case "UpdatedTimestamp":
33964			if value != nil {
33965				jtv, ok := value.(string)
33966				if !ok {
33967					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33968				}
33969				t, err := smithytime.ParseDateTime(jtv)
33970				if err != nil {
33971					return err
33972				}
33973				sv.UpdatedTimestamp = ptr.Time(t)
33974			}
33975
33976		default:
33977			_, _ = key, value
33978
33979		}
33980	}
33981	*v = sv
33982	return nil
33983}
33984
33985func awsRestjson1_deserializeDocumentPhoneNumberAssociation(v **types.PhoneNumberAssociation, value interface{}) error {
33986	if v == nil {
33987		return fmt.Errorf("unexpected nil of type %T", v)
33988	}
33989	if value == nil {
33990		return nil
33991	}
33992
33993	shape, ok := value.(map[string]interface{})
33994	if !ok {
33995		return fmt.Errorf("unexpected JSON type %v", value)
33996	}
33997
33998	var sv *types.PhoneNumberAssociation
33999	if *v == nil {
34000		sv = &types.PhoneNumberAssociation{}
34001	} else {
34002		sv = *v
34003	}
34004
34005	for key, value := range shape {
34006		switch key {
34007		case "AssociatedTimestamp":
34008			if value != nil {
34009				jtv, ok := value.(string)
34010				if !ok {
34011					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34012				}
34013				t, err := smithytime.ParseDateTime(jtv)
34014				if err != nil {
34015					return err
34016				}
34017				sv.AssociatedTimestamp = ptr.Time(t)
34018			}
34019
34020		case "Name":
34021			if value != nil {
34022				jtv, ok := value.(string)
34023				if !ok {
34024					return fmt.Errorf("expected PhoneNumberAssociationName to be of type string, got %T instead", value)
34025				}
34026				sv.Name = types.PhoneNumberAssociationName(jtv)
34027			}
34028
34029		case "Value":
34030			if value != nil {
34031				jtv, ok := value.(string)
34032				if !ok {
34033					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34034				}
34035				sv.Value = ptr.String(jtv)
34036			}
34037
34038		default:
34039			_, _ = key, value
34040
34041		}
34042	}
34043	*v = sv
34044	return nil
34045}
34046
34047func awsRestjson1_deserializeDocumentPhoneNumberAssociationList(v *[]types.PhoneNumberAssociation, value interface{}) error {
34048	if v == nil {
34049		return fmt.Errorf("unexpected nil of type %T", v)
34050	}
34051	if value == nil {
34052		return nil
34053	}
34054
34055	shape, ok := value.([]interface{})
34056	if !ok {
34057		return fmt.Errorf("unexpected JSON type %v", value)
34058	}
34059
34060	var cv []types.PhoneNumberAssociation
34061	if *v == nil {
34062		cv = []types.PhoneNumberAssociation{}
34063	} else {
34064		cv = *v
34065	}
34066
34067	for _, value := range shape {
34068		var col types.PhoneNumberAssociation
34069		destAddr := &col
34070		if err := awsRestjson1_deserializeDocumentPhoneNumberAssociation(&destAddr, value); err != nil {
34071			return err
34072		}
34073		col = *destAddr
34074		cv = append(cv, col)
34075
34076	}
34077	*v = cv
34078	return nil
34079}
34080
34081func awsRestjson1_deserializeDocumentPhoneNumberCapabilities(v **types.PhoneNumberCapabilities, value interface{}) error {
34082	if v == nil {
34083		return fmt.Errorf("unexpected nil of type %T", v)
34084	}
34085	if value == nil {
34086		return nil
34087	}
34088
34089	shape, ok := value.(map[string]interface{})
34090	if !ok {
34091		return fmt.Errorf("unexpected JSON type %v", value)
34092	}
34093
34094	var sv *types.PhoneNumberCapabilities
34095	if *v == nil {
34096		sv = &types.PhoneNumberCapabilities{}
34097	} else {
34098		sv = *v
34099	}
34100
34101	for key, value := range shape {
34102		switch key {
34103		case "InboundCall":
34104			if value != nil {
34105				jtv, ok := value.(bool)
34106				if !ok {
34107					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
34108				}
34109				sv.InboundCall = ptr.Bool(jtv)
34110			}
34111
34112		case "InboundMMS":
34113			if value != nil {
34114				jtv, ok := value.(bool)
34115				if !ok {
34116					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
34117				}
34118				sv.InboundMMS = ptr.Bool(jtv)
34119			}
34120
34121		case "InboundSMS":
34122			if value != nil {
34123				jtv, ok := value.(bool)
34124				if !ok {
34125					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
34126				}
34127				sv.InboundSMS = ptr.Bool(jtv)
34128			}
34129
34130		case "OutboundCall":
34131			if value != nil {
34132				jtv, ok := value.(bool)
34133				if !ok {
34134					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
34135				}
34136				sv.OutboundCall = ptr.Bool(jtv)
34137			}
34138
34139		case "OutboundMMS":
34140			if value != nil {
34141				jtv, ok := value.(bool)
34142				if !ok {
34143					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
34144				}
34145				sv.OutboundMMS = ptr.Bool(jtv)
34146			}
34147
34148		case "OutboundSMS":
34149			if value != nil {
34150				jtv, ok := value.(bool)
34151				if !ok {
34152					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
34153				}
34154				sv.OutboundSMS = ptr.Bool(jtv)
34155			}
34156
34157		default:
34158			_, _ = key, value
34159
34160		}
34161	}
34162	*v = sv
34163	return nil
34164}
34165
34166func awsRestjson1_deserializeDocumentPhoneNumberCountriesList(v *[]types.PhoneNumberCountry, value interface{}) error {
34167	if v == nil {
34168		return fmt.Errorf("unexpected nil of type %T", v)
34169	}
34170	if value == nil {
34171		return nil
34172	}
34173
34174	shape, ok := value.([]interface{})
34175	if !ok {
34176		return fmt.Errorf("unexpected JSON type %v", value)
34177	}
34178
34179	var cv []types.PhoneNumberCountry
34180	if *v == nil {
34181		cv = []types.PhoneNumberCountry{}
34182	} else {
34183		cv = *v
34184	}
34185
34186	for _, value := range shape {
34187		var col types.PhoneNumberCountry
34188		destAddr := &col
34189		if err := awsRestjson1_deserializeDocumentPhoneNumberCountry(&destAddr, value); err != nil {
34190			return err
34191		}
34192		col = *destAddr
34193		cv = append(cv, col)
34194
34195	}
34196	*v = cv
34197	return nil
34198}
34199
34200func awsRestjson1_deserializeDocumentPhoneNumberCountry(v **types.PhoneNumberCountry, value interface{}) error {
34201	if v == nil {
34202		return fmt.Errorf("unexpected nil of type %T", v)
34203	}
34204	if value == nil {
34205		return nil
34206	}
34207
34208	shape, ok := value.(map[string]interface{})
34209	if !ok {
34210		return fmt.Errorf("unexpected JSON type %v", value)
34211	}
34212
34213	var sv *types.PhoneNumberCountry
34214	if *v == nil {
34215		sv = &types.PhoneNumberCountry{}
34216	} else {
34217		sv = *v
34218	}
34219
34220	for key, value := range shape {
34221		switch key {
34222		case "CountryCode":
34223			if value != nil {
34224				jtv, ok := value.(string)
34225				if !ok {
34226					return fmt.Errorf("expected Alpha2CountryCode to be of type string, got %T instead", value)
34227				}
34228				sv.CountryCode = ptr.String(jtv)
34229			}
34230
34231		case "SupportedPhoneNumberTypes":
34232			if err := awsRestjson1_deserializeDocumentPhoneNumberTypeList(&sv.SupportedPhoneNumberTypes, value); err != nil {
34233				return err
34234			}
34235
34236		default:
34237			_, _ = key, value
34238
34239		}
34240	}
34241	*v = sv
34242	return nil
34243}
34244
34245func awsRestjson1_deserializeDocumentPhoneNumberError(v **types.PhoneNumberError, value interface{}) error {
34246	if v == nil {
34247		return fmt.Errorf("unexpected nil of type %T", v)
34248	}
34249	if value == nil {
34250		return nil
34251	}
34252
34253	shape, ok := value.(map[string]interface{})
34254	if !ok {
34255		return fmt.Errorf("unexpected JSON type %v", value)
34256	}
34257
34258	var sv *types.PhoneNumberError
34259	if *v == nil {
34260		sv = &types.PhoneNumberError{}
34261	} else {
34262		sv = *v
34263	}
34264
34265	for key, value := range shape {
34266		switch key {
34267		case "ErrorCode":
34268			if value != nil {
34269				jtv, ok := value.(string)
34270				if !ok {
34271					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
34272				}
34273				sv.ErrorCode = types.ErrorCode(jtv)
34274			}
34275
34276		case "ErrorMessage":
34277			if value != nil {
34278				jtv, ok := value.(string)
34279				if !ok {
34280					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34281				}
34282				sv.ErrorMessage = ptr.String(jtv)
34283			}
34284
34285		case "PhoneNumberId":
34286			if value != nil {
34287				jtv, ok := value.(string)
34288				if !ok {
34289					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34290				}
34291				sv.PhoneNumberId = ptr.String(jtv)
34292			}
34293
34294		default:
34295			_, _ = key, value
34296
34297		}
34298	}
34299	*v = sv
34300	return nil
34301}
34302
34303func awsRestjson1_deserializeDocumentPhoneNumberErrorList(v *[]types.PhoneNumberError, value interface{}) error {
34304	if v == nil {
34305		return fmt.Errorf("unexpected nil of type %T", v)
34306	}
34307	if value == nil {
34308		return nil
34309	}
34310
34311	shape, ok := value.([]interface{})
34312	if !ok {
34313		return fmt.Errorf("unexpected JSON type %v", value)
34314	}
34315
34316	var cv []types.PhoneNumberError
34317	if *v == nil {
34318		cv = []types.PhoneNumberError{}
34319	} else {
34320		cv = *v
34321	}
34322
34323	for _, value := range shape {
34324		var col types.PhoneNumberError
34325		destAddr := &col
34326		if err := awsRestjson1_deserializeDocumentPhoneNumberError(&destAddr, value); err != nil {
34327			return err
34328		}
34329		col = *destAddr
34330		cv = append(cv, col)
34331
34332	}
34333	*v = cv
34334	return nil
34335}
34336
34337func awsRestjson1_deserializeDocumentPhoneNumberList(v *[]types.PhoneNumber, value interface{}) error {
34338	if v == nil {
34339		return fmt.Errorf("unexpected nil of type %T", v)
34340	}
34341	if value == nil {
34342		return nil
34343	}
34344
34345	shape, ok := value.([]interface{})
34346	if !ok {
34347		return fmt.Errorf("unexpected JSON type %v", value)
34348	}
34349
34350	var cv []types.PhoneNumber
34351	if *v == nil {
34352		cv = []types.PhoneNumber{}
34353	} else {
34354		cv = *v
34355	}
34356
34357	for _, value := range shape {
34358		var col types.PhoneNumber
34359		destAddr := &col
34360		if err := awsRestjson1_deserializeDocumentPhoneNumber(&destAddr, value); err != nil {
34361			return err
34362		}
34363		col = *destAddr
34364		cv = append(cv, col)
34365
34366	}
34367	*v = cv
34368	return nil
34369}
34370
34371func awsRestjson1_deserializeDocumentPhoneNumberOrder(v **types.PhoneNumberOrder, value interface{}) error {
34372	if v == nil {
34373		return fmt.Errorf("unexpected nil of type %T", v)
34374	}
34375	if value == nil {
34376		return nil
34377	}
34378
34379	shape, ok := value.(map[string]interface{})
34380	if !ok {
34381		return fmt.Errorf("unexpected JSON type %v", value)
34382	}
34383
34384	var sv *types.PhoneNumberOrder
34385	if *v == nil {
34386		sv = &types.PhoneNumberOrder{}
34387	} else {
34388		sv = *v
34389	}
34390
34391	for key, value := range shape {
34392		switch key {
34393		case "CreatedTimestamp":
34394			if value != nil {
34395				jtv, ok := value.(string)
34396				if !ok {
34397					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34398				}
34399				t, err := smithytime.ParseDateTime(jtv)
34400				if err != nil {
34401					return err
34402				}
34403				sv.CreatedTimestamp = ptr.Time(t)
34404			}
34405
34406		case "OrderedPhoneNumbers":
34407			if err := awsRestjson1_deserializeDocumentOrderedPhoneNumberList(&sv.OrderedPhoneNumbers, value); err != nil {
34408				return err
34409			}
34410
34411		case "PhoneNumberOrderId":
34412			if value != nil {
34413				jtv, ok := value.(string)
34414				if !ok {
34415					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
34416				}
34417				sv.PhoneNumberOrderId = ptr.String(jtv)
34418			}
34419
34420		case "ProductType":
34421			if value != nil {
34422				jtv, ok := value.(string)
34423				if !ok {
34424					return fmt.Errorf("expected PhoneNumberProductType to be of type string, got %T instead", value)
34425				}
34426				sv.ProductType = types.PhoneNumberProductType(jtv)
34427			}
34428
34429		case "Status":
34430			if value != nil {
34431				jtv, ok := value.(string)
34432				if !ok {
34433					return fmt.Errorf("expected PhoneNumberOrderStatus to be of type string, got %T instead", value)
34434				}
34435				sv.Status = types.PhoneNumberOrderStatus(jtv)
34436			}
34437
34438		case "UpdatedTimestamp":
34439			if value != nil {
34440				jtv, ok := value.(string)
34441				if !ok {
34442					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34443				}
34444				t, err := smithytime.ParseDateTime(jtv)
34445				if err != nil {
34446					return err
34447				}
34448				sv.UpdatedTimestamp = ptr.Time(t)
34449			}
34450
34451		default:
34452			_, _ = key, value
34453
34454		}
34455	}
34456	*v = sv
34457	return nil
34458}
34459
34460func awsRestjson1_deserializeDocumentPhoneNumberOrderList(v *[]types.PhoneNumberOrder, value interface{}) error {
34461	if v == nil {
34462		return fmt.Errorf("unexpected nil of type %T", v)
34463	}
34464	if value == nil {
34465		return nil
34466	}
34467
34468	shape, ok := value.([]interface{})
34469	if !ok {
34470		return fmt.Errorf("unexpected JSON type %v", value)
34471	}
34472
34473	var cv []types.PhoneNumberOrder
34474	if *v == nil {
34475		cv = []types.PhoneNumberOrder{}
34476	} else {
34477		cv = *v
34478	}
34479
34480	for _, value := range shape {
34481		var col types.PhoneNumberOrder
34482		destAddr := &col
34483		if err := awsRestjson1_deserializeDocumentPhoneNumberOrder(&destAddr, value); err != nil {
34484			return err
34485		}
34486		col = *destAddr
34487		cv = append(cv, col)
34488
34489	}
34490	*v = cv
34491	return nil
34492}
34493
34494func awsRestjson1_deserializeDocumentPhoneNumberTypeList(v *[]types.PhoneNumberType, value interface{}) error {
34495	if v == nil {
34496		return fmt.Errorf("unexpected nil of type %T", v)
34497	}
34498	if value == nil {
34499		return nil
34500	}
34501
34502	shape, ok := value.([]interface{})
34503	if !ok {
34504		return fmt.Errorf("unexpected JSON type %v", value)
34505	}
34506
34507	var cv []types.PhoneNumberType
34508	if *v == nil {
34509		cv = []types.PhoneNumberType{}
34510	} else {
34511		cv = *v
34512	}
34513
34514	for _, value := range shape {
34515		var col types.PhoneNumberType
34516		if value != nil {
34517			jtv, ok := value.(string)
34518			if !ok {
34519				return fmt.Errorf("expected PhoneNumberType to be of type string, got %T instead", value)
34520			}
34521			col = types.PhoneNumberType(jtv)
34522		}
34523		cv = append(cv, col)
34524
34525	}
34526	*v = cv
34527	return nil
34528}
34529
34530func awsRestjson1_deserializeDocumentProxy(v **types.Proxy, value interface{}) error {
34531	if v == nil {
34532		return fmt.Errorf("unexpected nil of type %T", v)
34533	}
34534	if value == nil {
34535		return nil
34536	}
34537
34538	shape, ok := value.(map[string]interface{})
34539	if !ok {
34540		return fmt.Errorf("unexpected JSON type %v", value)
34541	}
34542
34543	var sv *types.Proxy
34544	if *v == nil {
34545		sv = &types.Proxy{}
34546	} else {
34547		sv = *v
34548	}
34549
34550	for key, value := range shape {
34551		switch key {
34552		case "DefaultSessionExpiryMinutes":
34553			if value != nil {
34554				jtv, ok := value.(json.Number)
34555				if !ok {
34556					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
34557				}
34558				i64, err := jtv.Int64()
34559				if err != nil {
34560					return err
34561				}
34562				sv.DefaultSessionExpiryMinutes = ptr.Int32(int32(i64))
34563			}
34564
34565		case "Disabled":
34566			if value != nil {
34567				jtv, ok := value.(bool)
34568				if !ok {
34569					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34570				}
34571				sv.Disabled = ptr.Bool(jtv)
34572			}
34573
34574		case "FallBackPhoneNumber":
34575			if value != nil {
34576				jtv, ok := value.(string)
34577				if !ok {
34578					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
34579				}
34580				sv.FallBackPhoneNumber = ptr.String(jtv)
34581			}
34582
34583		case "PhoneNumberCountries":
34584			if err := awsRestjson1_deserializeDocumentStringList(&sv.PhoneNumberCountries, value); err != nil {
34585				return err
34586			}
34587
34588		default:
34589			_, _ = key, value
34590
34591		}
34592	}
34593	*v = sv
34594	return nil
34595}
34596
34597func awsRestjson1_deserializeDocumentProxySession(v **types.ProxySession, value interface{}) error {
34598	if v == nil {
34599		return fmt.Errorf("unexpected nil of type %T", v)
34600	}
34601	if value == nil {
34602		return nil
34603	}
34604
34605	shape, ok := value.(map[string]interface{})
34606	if !ok {
34607		return fmt.Errorf("unexpected JSON type %v", value)
34608	}
34609
34610	var sv *types.ProxySession
34611	if *v == nil {
34612		sv = &types.ProxySession{}
34613	} else {
34614		sv = *v
34615	}
34616
34617	for key, value := range shape {
34618		switch key {
34619		case "Capabilities":
34620			if err := awsRestjson1_deserializeDocumentCapabilityList(&sv.Capabilities, value); err != nil {
34621				return err
34622			}
34623
34624		case "CreatedTimestamp":
34625			if value != nil {
34626				jtv, ok := value.(string)
34627				if !ok {
34628					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34629				}
34630				t, err := smithytime.ParseDateTime(jtv)
34631				if err != nil {
34632					return err
34633				}
34634				sv.CreatedTimestamp = ptr.Time(t)
34635			}
34636
34637		case "EndedTimestamp":
34638			if value != nil {
34639				jtv, ok := value.(string)
34640				if !ok {
34641					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34642				}
34643				t, err := smithytime.ParseDateTime(jtv)
34644				if err != nil {
34645					return err
34646				}
34647				sv.EndedTimestamp = ptr.Time(t)
34648			}
34649
34650		case "ExpiryMinutes":
34651			if value != nil {
34652				jtv, ok := value.(json.Number)
34653				if !ok {
34654					return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value)
34655				}
34656				i64, err := jtv.Int64()
34657				if err != nil {
34658					return err
34659				}
34660				sv.ExpiryMinutes = ptr.Int32(int32(i64))
34661			}
34662
34663		case "GeoMatchLevel":
34664			if value != nil {
34665				jtv, ok := value.(string)
34666				if !ok {
34667					return fmt.Errorf("expected GeoMatchLevel to be of type string, got %T instead", value)
34668				}
34669				sv.GeoMatchLevel = types.GeoMatchLevel(jtv)
34670			}
34671
34672		case "GeoMatchParams":
34673			if err := awsRestjson1_deserializeDocumentGeoMatchParams(&sv.GeoMatchParams, value); err != nil {
34674				return err
34675			}
34676
34677		case "Name":
34678			if value != nil {
34679				jtv, ok := value.(string)
34680				if !ok {
34681					return fmt.Errorf("expected String128 to be of type string, got %T instead", value)
34682				}
34683				sv.Name = ptr.String(jtv)
34684			}
34685
34686		case "NumberSelectionBehavior":
34687			if value != nil {
34688				jtv, ok := value.(string)
34689				if !ok {
34690					return fmt.Errorf("expected NumberSelectionBehavior to be of type string, got %T instead", value)
34691				}
34692				sv.NumberSelectionBehavior = types.NumberSelectionBehavior(jtv)
34693			}
34694
34695		case "Participants":
34696			if err := awsRestjson1_deserializeDocumentParticipants(&sv.Participants, value); err != nil {
34697				return err
34698			}
34699
34700		case "ProxySessionId":
34701			if value != nil {
34702				jtv, ok := value.(string)
34703				if !ok {
34704					return fmt.Errorf("expected NonEmptyString128 to be of type string, got %T instead", value)
34705				}
34706				sv.ProxySessionId = ptr.String(jtv)
34707			}
34708
34709		case "Status":
34710			if value != nil {
34711				jtv, ok := value.(string)
34712				if !ok {
34713					return fmt.Errorf("expected ProxySessionStatus to be of type string, got %T instead", value)
34714				}
34715				sv.Status = types.ProxySessionStatus(jtv)
34716			}
34717
34718		case "UpdatedTimestamp":
34719			if value != nil {
34720				jtv, ok := value.(string)
34721				if !ok {
34722					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34723				}
34724				t, err := smithytime.ParseDateTime(jtv)
34725				if err != nil {
34726					return err
34727				}
34728				sv.UpdatedTimestamp = ptr.Time(t)
34729			}
34730
34731		case "VoiceConnectorId":
34732			if value != nil {
34733				jtv, ok := value.(string)
34734				if !ok {
34735					return fmt.Errorf("expected NonEmptyString128 to be of type string, got %T instead", value)
34736				}
34737				sv.VoiceConnectorId = ptr.String(jtv)
34738			}
34739
34740		default:
34741			_, _ = key, value
34742
34743		}
34744	}
34745	*v = sv
34746	return nil
34747}
34748
34749func awsRestjson1_deserializeDocumentProxySessions(v *[]types.ProxySession, value interface{}) error {
34750	if v == nil {
34751		return fmt.Errorf("unexpected nil of type %T", v)
34752	}
34753	if value == nil {
34754		return nil
34755	}
34756
34757	shape, ok := value.([]interface{})
34758	if !ok {
34759		return fmt.Errorf("unexpected JSON type %v", value)
34760	}
34761
34762	var cv []types.ProxySession
34763	if *v == nil {
34764		cv = []types.ProxySession{}
34765	} else {
34766		cv = *v
34767	}
34768
34769	for _, value := range shape {
34770		var col types.ProxySession
34771		destAddr := &col
34772		if err := awsRestjson1_deserializeDocumentProxySession(&destAddr, value); err != nil {
34773			return err
34774		}
34775		col = *destAddr
34776		cv = append(cv, col)
34777
34778	}
34779	*v = cv
34780	return nil
34781}
34782
34783func awsRestjson1_deserializeDocumentResourceLimitExceededException(v **types.ResourceLimitExceededException, value interface{}) error {
34784	if v == nil {
34785		return fmt.Errorf("unexpected nil of type %T", v)
34786	}
34787	if value == nil {
34788		return nil
34789	}
34790
34791	shape, ok := value.(map[string]interface{})
34792	if !ok {
34793		return fmt.Errorf("unexpected JSON type %v", value)
34794	}
34795
34796	var sv *types.ResourceLimitExceededException
34797	if *v == nil {
34798		sv = &types.ResourceLimitExceededException{}
34799	} else {
34800		sv = *v
34801	}
34802
34803	for key, value := range shape {
34804		switch key {
34805		case "Code":
34806			if value != nil {
34807				jtv, ok := value.(string)
34808				if !ok {
34809					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
34810				}
34811				sv.Code = types.ErrorCode(jtv)
34812			}
34813
34814		case "Message":
34815			if value != nil {
34816				jtv, ok := value.(string)
34817				if !ok {
34818					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34819				}
34820				sv.Message = ptr.String(jtv)
34821			}
34822
34823		default:
34824			_, _ = key, value
34825
34826		}
34827	}
34828	*v = sv
34829	return nil
34830}
34831
34832func awsRestjson1_deserializeDocumentRetentionSettings(v **types.RetentionSettings, value interface{}) error {
34833	if v == nil {
34834		return fmt.Errorf("unexpected nil of type %T", v)
34835	}
34836	if value == nil {
34837		return nil
34838	}
34839
34840	shape, ok := value.(map[string]interface{})
34841	if !ok {
34842		return fmt.Errorf("unexpected JSON type %v", value)
34843	}
34844
34845	var sv *types.RetentionSettings
34846	if *v == nil {
34847		sv = &types.RetentionSettings{}
34848	} else {
34849		sv = *v
34850	}
34851
34852	for key, value := range shape {
34853		switch key {
34854		case "ConversationRetentionSettings":
34855			if err := awsRestjson1_deserializeDocumentConversationRetentionSettings(&sv.ConversationRetentionSettings, value); err != nil {
34856				return err
34857			}
34858
34859		case "RoomRetentionSettings":
34860			if err := awsRestjson1_deserializeDocumentRoomRetentionSettings(&sv.RoomRetentionSettings, value); err != nil {
34861				return err
34862			}
34863
34864		default:
34865			_, _ = key, value
34866
34867		}
34868	}
34869	*v = sv
34870	return nil
34871}
34872
34873func awsRestjson1_deserializeDocumentRoom(v **types.Room, value interface{}) error {
34874	if v == nil {
34875		return fmt.Errorf("unexpected nil of type %T", v)
34876	}
34877	if value == nil {
34878		return nil
34879	}
34880
34881	shape, ok := value.(map[string]interface{})
34882	if !ok {
34883		return fmt.Errorf("unexpected JSON type %v", value)
34884	}
34885
34886	var sv *types.Room
34887	if *v == nil {
34888		sv = &types.Room{}
34889	} else {
34890		sv = *v
34891	}
34892
34893	for key, value := range shape {
34894		switch key {
34895		case "AccountId":
34896			if value != nil {
34897				jtv, ok := value.(string)
34898				if !ok {
34899					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34900				}
34901				sv.AccountId = ptr.String(jtv)
34902			}
34903
34904		case "CreatedBy":
34905			if value != nil {
34906				jtv, ok := value.(string)
34907				if !ok {
34908					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34909				}
34910				sv.CreatedBy = ptr.String(jtv)
34911			}
34912
34913		case "CreatedTimestamp":
34914			if value != nil {
34915				jtv, ok := value.(string)
34916				if !ok {
34917					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34918				}
34919				t, err := smithytime.ParseDateTime(jtv)
34920				if err != nil {
34921					return err
34922				}
34923				sv.CreatedTimestamp = ptr.Time(t)
34924			}
34925
34926		case "Name":
34927			if value != nil {
34928				jtv, ok := value.(string)
34929				if !ok {
34930					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
34931				}
34932				sv.Name = ptr.String(jtv)
34933			}
34934
34935		case "RoomId":
34936			if value != nil {
34937				jtv, ok := value.(string)
34938				if !ok {
34939					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34940				}
34941				sv.RoomId = ptr.String(jtv)
34942			}
34943
34944		case "UpdatedTimestamp":
34945			if value != nil {
34946				jtv, ok := value.(string)
34947				if !ok {
34948					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34949				}
34950				t, err := smithytime.ParseDateTime(jtv)
34951				if err != nil {
34952					return err
34953				}
34954				sv.UpdatedTimestamp = ptr.Time(t)
34955			}
34956
34957		default:
34958			_, _ = key, value
34959
34960		}
34961	}
34962	*v = sv
34963	return nil
34964}
34965
34966func awsRestjson1_deserializeDocumentRoomList(v *[]types.Room, value interface{}) error {
34967	if v == nil {
34968		return fmt.Errorf("unexpected nil of type %T", v)
34969	}
34970	if value == nil {
34971		return nil
34972	}
34973
34974	shape, ok := value.([]interface{})
34975	if !ok {
34976		return fmt.Errorf("unexpected JSON type %v", value)
34977	}
34978
34979	var cv []types.Room
34980	if *v == nil {
34981		cv = []types.Room{}
34982	} else {
34983		cv = *v
34984	}
34985
34986	for _, value := range shape {
34987		var col types.Room
34988		destAddr := &col
34989		if err := awsRestjson1_deserializeDocumentRoom(&destAddr, value); err != nil {
34990			return err
34991		}
34992		col = *destAddr
34993		cv = append(cv, col)
34994
34995	}
34996	*v = cv
34997	return nil
34998}
34999
35000func awsRestjson1_deserializeDocumentRoomMembership(v **types.RoomMembership, value interface{}) error {
35001	if v == nil {
35002		return fmt.Errorf("unexpected nil of type %T", v)
35003	}
35004	if value == nil {
35005		return nil
35006	}
35007
35008	shape, ok := value.(map[string]interface{})
35009	if !ok {
35010		return fmt.Errorf("unexpected JSON type %v", value)
35011	}
35012
35013	var sv *types.RoomMembership
35014	if *v == nil {
35015		sv = &types.RoomMembership{}
35016	} else {
35017		sv = *v
35018	}
35019
35020	for key, value := range shape {
35021		switch key {
35022		case "InvitedBy":
35023			if value != nil {
35024				jtv, ok := value.(string)
35025				if !ok {
35026					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35027				}
35028				sv.InvitedBy = ptr.String(jtv)
35029			}
35030
35031		case "Member":
35032			if err := awsRestjson1_deserializeDocumentMember(&sv.Member, value); err != nil {
35033				return err
35034			}
35035
35036		case "Role":
35037			if value != nil {
35038				jtv, ok := value.(string)
35039				if !ok {
35040					return fmt.Errorf("expected RoomMembershipRole to be of type string, got %T instead", value)
35041				}
35042				sv.Role = types.RoomMembershipRole(jtv)
35043			}
35044
35045		case "RoomId":
35046			if value != nil {
35047				jtv, ok := value.(string)
35048				if !ok {
35049					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35050				}
35051				sv.RoomId = ptr.String(jtv)
35052			}
35053
35054		case "UpdatedTimestamp":
35055			if value != nil {
35056				jtv, ok := value.(string)
35057				if !ok {
35058					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35059				}
35060				t, err := smithytime.ParseDateTime(jtv)
35061				if err != nil {
35062					return err
35063				}
35064				sv.UpdatedTimestamp = ptr.Time(t)
35065			}
35066
35067		default:
35068			_, _ = key, value
35069
35070		}
35071	}
35072	*v = sv
35073	return nil
35074}
35075
35076func awsRestjson1_deserializeDocumentRoomMembershipList(v *[]types.RoomMembership, value interface{}) error {
35077	if v == nil {
35078		return fmt.Errorf("unexpected nil of type %T", v)
35079	}
35080	if value == nil {
35081		return nil
35082	}
35083
35084	shape, ok := value.([]interface{})
35085	if !ok {
35086		return fmt.Errorf("unexpected JSON type %v", value)
35087	}
35088
35089	var cv []types.RoomMembership
35090	if *v == nil {
35091		cv = []types.RoomMembership{}
35092	} else {
35093		cv = *v
35094	}
35095
35096	for _, value := range shape {
35097		var col types.RoomMembership
35098		destAddr := &col
35099		if err := awsRestjson1_deserializeDocumentRoomMembership(&destAddr, value); err != nil {
35100			return err
35101		}
35102		col = *destAddr
35103		cv = append(cv, col)
35104
35105	}
35106	*v = cv
35107	return nil
35108}
35109
35110func awsRestjson1_deserializeDocumentRoomRetentionSettings(v **types.RoomRetentionSettings, value interface{}) error {
35111	if v == nil {
35112		return fmt.Errorf("unexpected nil of type %T", v)
35113	}
35114	if value == nil {
35115		return nil
35116	}
35117
35118	shape, ok := value.(map[string]interface{})
35119	if !ok {
35120		return fmt.Errorf("unexpected JSON type %v", value)
35121	}
35122
35123	var sv *types.RoomRetentionSettings
35124	if *v == nil {
35125		sv = &types.RoomRetentionSettings{}
35126	} else {
35127		sv = *v
35128	}
35129
35130	for key, value := range shape {
35131		switch key {
35132		case "RetentionDays":
35133			if value != nil {
35134				jtv, ok := value.(json.Number)
35135				if !ok {
35136					return fmt.Errorf("expected RetentionDays to be json.Number, got %T instead", value)
35137				}
35138				i64, err := jtv.Int64()
35139				if err != nil {
35140					return err
35141				}
35142				sv.RetentionDays = ptr.Int32(int32(i64))
35143			}
35144
35145		default:
35146			_, _ = key, value
35147
35148		}
35149	}
35150	*v = sv
35151	return nil
35152}
35153
35154func awsRestjson1_deserializeDocumentSensitiveStringList(v *[]string, value interface{}) error {
35155	if v == nil {
35156		return fmt.Errorf("unexpected nil of type %T", v)
35157	}
35158	if value == nil {
35159		return nil
35160	}
35161
35162	shape, ok := value.([]interface{})
35163	if !ok {
35164		return fmt.Errorf("unexpected JSON type %v", value)
35165	}
35166
35167	var cv []string
35168	if *v == nil {
35169		cv = []string{}
35170	} else {
35171		cv = *v
35172	}
35173
35174	for _, value := range shape {
35175		var col string
35176		if value != nil {
35177			jtv, ok := value.(string)
35178			if !ok {
35179				return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
35180			}
35181			col = jtv
35182		}
35183		cv = append(cv, col)
35184
35185	}
35186	*v = cv
35187	return nil
35188}
35189
35190func awsRestjson1_deserializeDocumentServiceFailureException(v **types.ServiceFailureException, value interface{}) error {
35191	if v == nil {
35192		return fmt.Errorf("unexpected nil of type %T", v)
35193	}
35194	if value == nil {
35195		return nil
35196	}
35197
35198	shape, ok := value.(map[string]interface{})
35199	if !ok {
35200		return fmt.Errorf("unexpected JSON type %v", value)
35201	}
35202
35203	var sv *types.ServiceFailureException
35204	if *v == nil {
35205		sv = &types.ServiceFailureException{}
35206	} else {
35207		sv = *v
35208	}
35209
35210	for key, value := range shape {
35211		switch key {
35212		case "Code":
35213			if value != nil {
35214				jtv, ok := value.(string)
35215				if !ok {
35216					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
35217				}
35218				sv.Code = types.ErrorCode(jtv)
35219			}
35220
35221		case "Message":
35222			if value != nil {
35223				jtv, ok := value.(string)
35224				if !ok {
35225					return fmt.Errorf("expected String to be of type string, got %T instead", value)
35226				}
35227				sv.Message = ptr.String(jtv)
35228			}
35229
35230		default:
35231			_, _ = key, value
35232
35233		}
35234	}
35235	*v = sv
35236	return nil
35237}
35238
35239func awsRestjson1_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, value interface{}) error {
35240	if v == nil {
35241		return fmt.Errorf("unexpected nil of type %T", v)
35242	}
35243	if value == nil {
35244		return nil
35245	}
35246
35247	shape, ok := value.(map[string]interface{})
35248	if !ok {
35249		return fmt.Errorf("unexpected JSON type %v", value)
35250	}
35251
35252	var sv *types.ServiceUnavailableException
35253	if *v == nil {
35254		sv = &types.ServiceUnavailableException{}
35255	} else {
35256		sv = *v
35257	}
35258
35259	for key, value := range shape {
35260		switch key {
35261		case "Code":
35262			if value != nil {
35263				jtv, ok := value.(string)
35264				if !ok {
35265					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
35266				}
35267				sv.Code = types.ErrorCode(jtv)
35268			}
35269
35270		case "Message":
35271			if value != nil {
35272				jtv, ok := value.(string)
35273				if !ok {
35274					return fmt.Errorf("expected String to be of type string, got %T instead", value)
35275				}
35276				sv.Message = ptr.String(jtv)
35277			}
35278
35279		default:
35280			_, _ = key, value
35281
35282		}
35283	}
35284	*v = sv
35285	return nil
35286}
35287
35288func awsRestjson1_deserializeDocumentSigninDelegateGroup(v **types.SigninDelegateGroup, value interface{}) error {
35289	if v == nil {
35290		return fmt.Errorf("unexpected nil of type %T", v)
35291	}
35292	if value == nil {
35293		return nil
35294	}
35295
35296	shape, ok := value.(map[string]interface{})
35297	if !ok {
35298		return fmt.Errorf("unexpected JSON type %v", value)
35299	}
35300
35301	var sv *types.SigninDelegateGroup
35302	if *v == nil {
35303		sv = &types.SigninDelegateGroup{}
35304	} else {
35305		sv = *v
35306	}
35307
35308	for key, value := range shape {
35309		switch key {
35310		case "GroupName":
35311			if value != nil {
35312				jtv, ok := value.(string)
35313				if !ok {
35314					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35315				}
35316				sv.GroupName = ptr.String(jtv)
35317			}
35318
35319		default:
35320			_, _ = key, value
35321
35322		}
35323	}
35324	*v = sv
35325	return nil
35326}
35327
35328func awsRestjson1_deserializeDocumentSigninDelegateGroupList(v *[]types.SigninDelegateGroup, value interface{}) error {
35329	if v == nil {
35330		return fmt.Errorf("unexpected nil of type %T", v)
35331	}
35332	if value == nil {
35333		return nil
35334	}
35335
35336	shape, ok := value.([]interface{})
35337	if !ok {
35338		return fmt.Errorf("unexpected JSON type %v", value)
35339	}
35340
35341	var cv []types.SigninDelegateGroup
35342	if *v == nil {
35343		cv = []types.SigninDelegateGroup{}
35344	} else {
35345		cv = *v
35346	}
35347
35348	for _, value := range shape {
35349		var col types.SigninDelegateGroup
35350		destAddr := &col
35351		if err := awsRestjson1_deserializeDocumentSigninDelegateGroup(&destAddr, value); err != nil {
35352			return err
35353		}
35354		col = *destAddr
35355		cv = append(cv, col)
35356
35357	}
35358	*v = cv
35359	return nil
35360}
35361
35362func awsRestjson1_deserializeDocumentSipMediaApplication(v **types.SipMediaApplication, value interface{}) error {
35363	if v == nil {
35364		return fmt.Errorf("unexpected nil of type %T", v)
35365	}
35366	if value == nil {
35367		return nil
35368	}
35369
35370	shape, ok := value.(map[string]interface{})
35371	if !ok {
35372		return fmt.Errorf("unexpected JSON type %v", value)
35373	}
35374
35375	var sv *types.SipMediaApplication
35376	if *v == nil {
35377		sv = &types.SipMediaApplication{}
35378	} else {
35379		sv = *v
35380	}
35381
35382	for key, value := range shape {
35383		switch key {
35384		case "AwsRegion":
35385			if value != nil {
35386				jtv, ok := value.(string)
35387				if !ok {
35388					return fmt.Errorf("expected String to be of type string, got %T instead", value)
35389				}
35390				sv.AwsRegion = ptr.String(jtv)
35391			}
35392
35393		case "CreatedTimestamp":
35394			if value != nil {
35395				jtv, ok := value.(string)
35396				if !ok {
35397					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35398				}
35399				t, err := smithytime.ParseDateTime(jtv)
35400				if err != nil {
35401					return err
35402				}
35403				sv.CreatedTimestamp = ptr.Time(t)
35404			}
35405
35406		case "Endpoints":
35407			if err := awsRestjson1_deserializeDocumentSipMediaApplicationEndpointList(&sv.Endpoints, value); err != nil {
35408				return err
35409			}
35410
35411		case "Name":
35412			if value != nil {
35413				jtv, ok := value.(string)
35414				if !ok {
35415					return fmt.Errorf("expected SipMediaApplicationName to be of type string, got %T instead", value)
35416				}
35417				sv.Name = ptr.String(jtv)
35418			}
35419
35420		case "SipMediaApplicationId":
35421			if value != nil {
35422				jtv, ok := value.(string)
35423				if !ok {
35424					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35425				}
35426				sv.SipMediaApplicationId = ptr.String(jtv)
35427			}
35428
35429		case "UpdatedTimestamp":
35430			if value != nil {
35431				jtv, ok := value.(string)
35432				if !ok {
35433					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35434				}
35435				t, err := smithytime.ParseDateTime(jtv)
35436				if err != nil {
35437					return err
35438				}
35439				sv.UpdatedTimestamp = ptr.Time(t)
35440			}
35441
35442		default:
35443			_, _ = key, value
35444
35445		}
35446	}
35447	*v = sv
35448	return nil
35449}
35450
35451func awsRestjson1_deserializeDocumentSipMediaApplicationCall(v **types.SipMediaApplicationCall, value interface{}) error {
35452	if v == nil {
35453		return fmt.Errorf("unexpected nil of type %T", v)
35454	}
35455	if value == nil {
35456		return nil
35457	}
35458
35459	shape, ok := value.(map[string]interface{})
35460	if !ok {
35461		return fmt.Errorf("unexpected JSON type %v", value)
35462	}
35463
35464	var sv *types.SipMediaApplicationCall
35465	if *v == nil {
35466		sv = &types.SipMediaApplicationCall{}
35467	} else {
35468		sv = *v
35469	}
35470
35471	for key, value := range shape {
35472		switch key {
35473		case "TransactionId":
35474			if value != nil {
35475				jtv, ok := value.(string)
35476				if !ok {
35477					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
35478				}
35479				sv.TransactionId = ptr.String(jtv)
35480			}
35481
35482		default:
35483			_, _ = key, value
35484
35485		}
35486	}
35487	*v = sv
35488	return nil
35489}
35490
35491func awsRestjson1_deserializeDocumentSipMediaApplicationEndpoint(v **types.SipMediaApplicationEndpoint, value interface{}) error {
35492	if v == nil {
35493		return fmt.Errorf("unexpected nil of type %T", v)
35494	}
35495	if value == nil {
35496		return nil
35497	}
35498
35499	shape, ok := value.(map[string]interface{})
35500	if !ok {
35501		return fmt.Errorf("unexpected JSON type %v", value)
35502	}
35503
35504	var sv *types.SipMediaApplicationEndpoint
35505	if *v == nil {
35506		sv = &types.SipMediaApplicationEndpoint{}
35507	} else {
35508		sv = *v
35509	}
35510
35511	for key, value := range shape {
35512		switch key {
35513		case "LambdaArn":
35514			if value != nil {
35515				jtv, ok := value.(string)
35516				if !ok {
35517					return fmt.Errorf("expected FunctionArn to be of type string, got %T instead", value)
35518				}
35519				sv.LambdaArn = ptr.String(jtv)
35520			}
35521
35522		default:
35523			_, _ = key, value
35524
35525		}
35526	}
35527	*v = sv
35528	return nil
35529}
35530
35531func awsRestjson1_deserializeDocumentSipMediaApplicationEndpointList(v *[]types.SipMediaApplicationEndpoint, value interface{}) error {
35532	if v == nil {
35533		return fmt.Errorf("unexpected nil of type %T", v)
35534	}
35535	if value == nil {
35536		return nil
35537	}
35538
35539	shape, ok := value.([]interface{})
35540	if !ok {
35541		return fmt.Errorf("unexpected JSON type %v", value)
35542	}
35543
35544	var cv []types.SipMediaApplicationEndpoint
35545	if *v == nil {
35546		cv = []types.SipMediaApplicationEndpoint{}
35547	} else {
35548		cv = *v
35549	}
35550
35551	for _, value := range shape {
35552		var col types.SipMediaApplicationEndpoint
35553		destAddr := &col
35554		if err := awsRestjson1_deserializeDocumentSipMediaApplicationEndpoint(&destAddr, value); err != nil {
35555			return err
35556		}
35557		col = *destAddr
35558		cv = append(cv, col)
35559
35560	}
35561	*v = cv
35562	return nil
35563}
35564
35565func awsRestjson1_deserializeDocumentSipMediaApplicationList(v *[]types.SipMediaApplication, value interface{}) error {
35566	if v == nil {
35567		return fmt.Errorf("unexpected nil of type %T", v)
35568	}
35569	if value == nil {
35570		return nil
35571	}
35572
35573	shape, ok := value.([]interface{})
35574	if !ok {
35575		return fmt.Errorf("unexpected JSON type %v", value)
35576	}
35577
35578	var cv []types.SipMediaApplication
35579	if *v == nil {
35580		cv = []types.SipMediaApplication{}
35581	} else {
35582		cv = *v
35583	}
35584
35585	for _, value := range shape {
35586		var col types.SipMediaApplication
35587		destAddr := &col
35588		if err := awsRestjson1_deserializeDocumentSipMediaApplication(&destAddr, value); err != nil {
35589			return err
35590		}
35591		col = *destAddr
35592		cv = append(cv, col)
35593
35594	}
35595	*v = cv
35596	return nil
35597}
35598
35599func awsRestjson1_deserializeDocumentSipMediaApplicationLoggingConfiguration(v **types.SipMediaApplicationLoggingConfiguration, value interface{}) error {
35600	if v == nil {
35601		return fmt.Errorf("unexpected nil of type %T", v)
35602	}
35603	if value == nil {
35604		return nil
35605	}
35606
35607	shape, ok := value.(map[string]interface{})
35608	if !ok {
35609		return fmt.Errorf("unexpected JSON type %v", value)
35610	}
35611
35612	var sv *types.SipMediaApplicationLoggingConfiguration
35613	if *v == nil {
35614		sv = &types.SipMediaApplicationLoggingConfiguration{}
35615	} else {
35616		sv = *v
35617	}
35618
35619	for key, value := range shape {
35620		switch key {
35621		case "EnableSipMediaApplicationMessageLogs":
35622			if value != nil {
35623				jtv, ok := value.(bool)
35624				if !ok {
35625					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
35626				}
35627				sv.EnableSipMediaApplicationMessageLogs = ptr.Bool(jtv)
35628			}
35629
35630		default:
35631			_, _ = key, value
35632
35633		}
35634	}
35635	*v = sv
35636	return nil
35637}
35638
35639func awsRestjson1_deserializeDocumentSipRule(v **types.SipRule, value interface{}) error {
35640	if v == nil {
35641		return fmt.Errorf("unexpected nil of type %T", v)
35642	}
35643	if value == nil {
35644		return nil
35645	}
35646
35647	shape, ok := value.(map[string]interface{})
35648	if !ok {
35649		return fmt.Errorf("unexpected JSON type %v", value)
35650	}
35651
35652	var sv *types.SipRule
35653	if *v == nil {
35654		sv = &types.SipRule{}
35655	} else {
35656		sv = *v
35657	}
35658
35659	for key, value := range shape {
35660		switch key {
35661		case "CreatedTimestamp":
35662			if value != nil {
35663				jtv, ok := value.(string)
35664				if !ok {
35665					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35666				}
35667				t, err := smithytime.ParseDateTime(jtv)
35668				if err != nil {
35669					return err
35670				}
35671				sv.CreatedTimestamp = ptr.Time(t)
35672			}
35673
35674		case "Disabled":
35675			if value != nil {
35676				jtv, ok := value.(bool)
35677				if !ok {
35678					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
35679				}
35680				sv.Disabled = ptr.Bool(jtv)
35681			}
35682
35683		case "Name":
35684			if value != nil {
35685				jtv, ok := value.(string)
35686				if !ok {
35687					return fmt.Errorf("expected SipRuleName to be of type string, got %T instead", value)
35688				}
35689				sv.Name = ptr.String(jtv)
35690			}
35691
35692		case "SipRuleId":
35693			if value != nil {
35694				jtv, ok := value.(string)
35695				if !ok {
35696					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35697				}
35698				sv.SipRuleId = ptr.String(jtv)
35699			}
35700
35701		case "TargetApplications":
35702			if err := awsRestjson1_deserializeDocumentSipRuleTargetApplicationList(&sv.TargetApplications, value); err != nil {
35703				return err
35704			}
35705
35706		case "TriggerType":
35707			if value != nil {
35708				jtv, ok := value.(string)
35709				if !ok {
35710					return fmt.Errorf("expected SipRuleTriggerType to be of type string, got %T instead", value)
35711				}
35712				sv.TriggerType = types.SipRuleTriggerType(jtv)
35713			}
35714
35715		case "TriggerValue":
35716			if value != nil {
35717				jtv, ok := value.(string)
35718				if !ok {
35719					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35720				}
35721				sv.TriggerValue = ptr.String(jtv)
35722			}
35723
35724		case "UpdatedTimestamp":
35725			if value != nil {
35726				jtv, ok := value.(string)
35727				if !ok {
35728					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35729				}
35730				t, err := smithytime.ParseDateTime(jtv)
35731				if err != nil {
35732					return err
35733				}
35734				sv.UpdatedTimestamp = ptr.Time(t)
35735			}
35736
35737		default:
35738			_, _ = key, value
35739
35740		}
35741	}
35742	*v = sv
35743	return nil
35744}
35745
35746func awsRestjson1_deserializeDocumentSipRuleList(v *[]types.SipRule, value interface{}) error {
35747	if v == nil {
35748		return fmt.Errorf("unexpected nil of type %T", v)
35749	}
35750	if value == nil {
35751		return nil
35752	}
35753
35754	shape, ok := value.([]interface{})
35755	if !ok {
35756		return fmt.Errorf("unexpected JSON type %v", value)
35757	}
35758
35759	var cv []types.SipRule
35760	if *v == nil {
35761		cv = []types.SipRule{}
35762	} else {
35763		cv = *v
35764	}
35765
35766	for _, value := range shape {
35767		var col types.SipRule
35768		destAddr := &col
35769		if err := awsRestjson1_deserializeDocumentSipRule(&destAddr, value); err != nil {
35770			return err
35771		}
35772		col = *destAddr
35773		cv = append(cv, col)
35774
35775	}
35776	*v = cv
35777	return nil
35778}
35779
35780func awsRestjson1_deserializeDocumentSipRuleTargetApplication(v **types.SipRuleTargetApplication, value interface{}) error {
35781	if v == nil {
35782		return fmt.Errorf("unexpected nil of type %T", v)
35783	}
35784	if value == nil {
35785		return nil
35786	}
35787
35788	shape, ok := value.(map[string]interface{})
35789	if !ok {
35790		return fmt.Errorf("unexpected JSON type %v", value)
35791	}
35792
35793	var sv *types.SipRuleTargetApplication
35794	if *v == nil {
35795		sv = &types.SipRuleTargetApplication{}
35796	} else {
35797		sv = *v
35798	}
35799
35800	for key, value := range shape {
35801		switch key {
35802		case "AwsRegion":
35803			if value != nil {
35804				jtv, ok := value.(string)
35805				if !ok {
35806					return fmt.Errorf("expected String to be of type string, got %T instead", value)
35807				}
35808				sv.AwsRegion = ptr.String(jtv)
35809			}
35810
35811		case "Priority":
35812			if value != nil {
35813				jtv, ok := value.(json.Number)
35814				if !ok {
35815					return fmt.Errorf("expected SipApplicationPriority to be json.Number, got %T instead", value)
35816				}
35817				i64, err := jtv.Int64()
35818				if err != nil {
35819					return err
35820				}
35821				sv.Priority = ptr.Int32(int32(i64))
35822			}
35823
35824		case "SipMediaApplicationId":
35825			if value != nil {
35826				jtv, ok := value.(string)
35827				if !ok {
35828					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35829				}
35830				sv.SipMediaApplicationId = ptr.String(jtv)
35831			}
35832
35833		default:
35834			_, _ = key, value
35835
35836		}
35837	}
35838	*v = sv
35839	return nil
35840}
35841
35842func awsRestjson1_deserializeDocumentSipRuleTargetApplicationList(v *[]types.SipRuleTargetApplication, value interface{}) error {
35843	if v == nil {
35844		return fmt.Errorf("unexpected nil of type %T", v)
35845	}
35846	if value == nil {
35847		return nil
35848	}
35849
35850	shape, ok := value.([]interface{})
35851	if !ok {
35852		return fmt.Errorf("unexpected JSON type %v", value)
35853	}
35854
35855	var cv []types.SipRuleTargetApplication
35856	if *v == nil {
35857		cv = []types.SipRuleTargetApplication{}
35858	} else {
35859		cv = *v
35860	}
35861
35862	for _, value := range shape {
35863		var col types.SipRuleTargetApplication
35864		destAddr := &col
35865		if err := awsRestjson1_deserializeDocumentSipRuleTargetApplication(&destAddr, value); err != nil {
35866			return err
35867		}
35868		col = *destAddr
35869		cv = append(cv, col)
35870
35871	}
35872	*v = cv
35873	return nil
35874}
35875
35876func awsRestjson1_deserializeDocumentStreamingConfiguration(v **types.StreamingConfiguration, value interface{}) error {
35877	if v == nil {
35878		return fmt.Errorf("unexpected nil of type %T", v)
35879	}
35880	if value == nil {
35881		return nil
35882	}
35883
35884	shape, ok := value.(map[string]interface{})
35885	if !ok {
35886		return fmt.Errorf("unexpected JSON type %v", value)
35887	}
35888
35889	var sv *types.StreamingConfiguration
35890	if *v == nil {
35891		sv = &types.StreamingConfiguration{}
35892	} else {
35893		sv = *v
35894	}
35895
35896	for key, value := range shape {
35897		switch key {
35898		case "DataRetentionInHours":
35899			if value != nil {
35900				jtv, ok := value.(json.Number)
35901				if !ok {
35902					return fmt.Errorf("expected DataRetentionInHours to be json.Number, got %T instead", value)
35903				}
35904				i64, err := jtv.Int64()
35905				if err != nil {
35906					return err
35907				}
35908				sv.DataRetentionInHours = ptr.Int32(int32(i64))
35909			}
35910
35911		case "Disabled":
35912			if value != nil {
35913				jtv, ok := value.(bool)
35914				if !ok {
35915					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
35916				}
35917				sv.Disabled = ptr.Bool(jtv)
35918			}
35919
35920		case "StreamingNotificationTargets":
35921			if err := awsRestjson1_deserializeDocumentStreamingNotificationTargetList(&sv.StreamingNotificationTargets, value); err != nil {
35922				return err
35923			}
35924
35925		default:
35926			_, _ = key, value
35927
35928		}
35929	}
35930	*v = sv
35931	return nil
35932}
35933
35934func awsRestjson1_deserializeDocumentStreamingNotificationTarget(v **types.StreamingNotificationTarget, value interface{}) error {
35935	if v == nil {
35936		return fmt.Errorf("unexpected nil of type %T", v)
35937	}
35938	if value == nil {
35939		return nil
35940	}
35941
35942	shape, ok := value.(map[string]interface{})
35943	if !ok {
35944		return fmt.Errorf("unexpected JSON type %v", value)
35945	}
35946
35947	var sv *types.StreamingNotificationTarget
35948	if *v == nil {
35949		sv = &types.StreamingNotificationTarget{}
35950	} else {
35951		sv = *v
35952	}
35953
35954	for key, value := range shape {
35955		switch key {
35956		case "NotificationTarget":
35957			if value != nil {
35958				jtv, ok := value.(string)
35959				if !ok {
35960					return fmt.Errorf("expected NotificationTarget to be of type string, got %T instead", value)
35961				}
35962				sv.NotificationTarget = types.NotificationTarget(jtv)
35963			}
35964
35965		default:
35966			_, _ = key, value
35967
35968		}
35969	}
35970	*v = sv
35971	return nil
35972}
35973
35974func awsRestjson1_deserializeDocumentStreamingNotificationTargetList(v *[]types.StreamingNotificationTarget, value interface{}) error {
35975	if v == nil {
35976		return fmt.Errorf("unexpected nil of type %T", v)
35977	}
35978	if value == nil {
35979		return nil
35980	}
35981
35982	shape, ok := value.([]interface{})
35983	if !ok {
35984		return fmt.Errorf("unexpected JSON type %v", value)
35985	}
35986
35987	var cv []types.StreamingNotificationTarget
35988	if *v == nil {
35989		cv = []types.StreamingNotificationTarget{}
35990	} else {
35991		cv = *v
35992	}
35993
35994	for _, value := range shape {
35995		var col types.StreamingNotificationTarget
35996		destAddr := &col
35997		if err := awsRestjson1_deserializeDocumentStreamingNotificationTarget(&destAddr, value); err != nil {
35998			return err
35999		}
36000		col = *destAddr
36001		cv = append(cv, col)
36002
36003	}
36004	*v = cv
36005	return nil
36006}
36007
36008func awsRestjson1_deserializeDocumentStringList(v *[]string, value interface{}) error {
36009	if v == nil {
36010		return fmt.Errorf("unexpected nil of type %T", v)
36011	}
36012	if value == nil {
36013		return nil
36014	}
36015
36016	shape, ok := value.([]interface{})
36017	if !ok {
36018		return fmt.Errorf("unexpected JSON type %v", value)
36019	}
36020
36021	var cv []string
36022	if *v == nil {
36023		cv = []string{}
36024	} else {
36025		cv = *v
36026	}
36027
36028	for _, value := range shape {
36029		var col string
36030		if value != nil {
36031			jtv, ok := value.(string)
36032			if !ok {
36033				return fmt.Errorf("expected String to be of type string, got %T instead", value)
36034			}
36035			col = jtv
36036		}
36037		cv = append(cv, col)
36038
36039	}
36040	*v = cv
36041	return nil
36042}
36043
36044func awsRestjson1_deserializeDocumentTag(v **types.Tag, value interface{}) error {
36045	if v == nil {
36046		return fmt.Errorf("unexpected nil of type %T", v)
36047	}
36048	if value == nil {
36049		return nil
36050	}
36051
36052	shape, ok := value.(map[string]interface{})
36053	if !ok {
36054		return fmt.Errorf("unexpected JSON type %v", value)
36055	}
36056
36057	var sv *types.Tag
36058	if *v == nil {
36059		sv = &types.Tag{}
36060	} else {
36061		sv = *v
36062	}
36063
36064	for key, value := range shape {
36065		switch key {
36066		case "Key":
36067			if value != nil {
36068				jtv, ok := value.(string)
36069				if !ok {
36070					return fmt.Errorf("expected TagKey to be of type string, got %T instead", value)
36071				}
36072				sv.Key = ptr.String(jtv)
36073			}
36074
36075		case "Value":
36076			if value != nil {
36077				jtv, ok := value.(string)
36078				if !ok {
36079					return fmt.Errorf("expected TagValue to be of type string, got %T instead", value)
36080				}
36081				sv.Value = ptr.String(jtv)
36082			}
36083
36084		default:
36085			_, _ = key, value
36086
36087		}
36088	}
36089	*v = sv
36090	return nil
36091}
36092
36093func awsRestjson1_deserializeDocumentTagList(v *[]types.Tag, value interface{}) error {
36094	if v == nil {
36095		return fmt.Errorf("unexpected nil of type %T", v)
36096	}
36097	if value == nil {
36098		return nil
36099	}
36100
36101	shape, ok := value.([]interface{})
36102	if !ok {
36103		return fmt.Errorf("unexpected JSON type %v", value)
36104	}
36105
36106	var cv []types.Tag
36107	if *v == nil {
36108		cv = []types.Tag{}
36109	} else {
36110		cv = *v
36111	}
36112
36113	for _, value := range shape {
36114		var col types.Tag
36115		destAddr := &col
36116		if err := awsRestjson1_deserializeDocumentTag(&destAddr, value); err != nil {
36117			return err
36118		}
36119		col = *destAddr
36120		cv = append(cv, col)
36121
36122	}
36123	*v = cv
36124	return nil
36125}
36126
36127func awsRestjson1_deserializeDocumentTelephonySettings(v **types.TelephonySettings, value interface{}) error {
36128	if v == nil {
36129		return fmt.Errorf("unexpected nil of type %T", v)
36130	}
36131	if value == nil {
36132		return nil
36133	}
36134
36135	shape, ok := value.(map[string]interface{})
36136	if !ok {
36137		return fmt.Errorf("unexpected JSON type %v", value)
36138	}
36139
36140	var sv *types.TelephonySettings
36141	if *v == nil {
36142		sv = &types.TelephonySettings{}
36143	} else {
36144		sv = *v
36145	}
36146
36147	for key, value := range shape {
36148		switch key {
36149		case "InboundCalling":
36150			if value != nil {
36151				jtv, ok := value.(bool)
36152				if !ok {
36153					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
36154				}
36155				sv.InboundCalling = ptr.Bool(jtv)
36156			}
36157
36158		case "OutboundCalling":
36159			if value != nil {
36160				jtv, ok := value.(bool)
36161				if !ok {
36162					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
36163				}
36164				sv.OutboundCalling = ptr.Bool(jtv)
36165			}
36166
36167		case "SMS":
36168			if value != nil {
36169				jtv, ok := value.(bool)
36170				if !ok {
36171					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
36172				}
36173				sv.SMS = ptr.Bool(jtv)
36174			}
36175
36176		default:
36177			_, _ = key, value
36178
36179		}
36180	}
36181	*v = sv
36182	return nil
36183}
36184
36185func awsRestjson1_deserializeDocumentTermination(v **types.Termination, value interface{}) error {
36186	if v == nil {
36187		return fmt.Errorf("unexpected nil of type %T", v)
36188	}
36189	if value == nil {
36190		return nil
36191	}
36192
36193	shape, ok := value.(map[string]interface{})
36194	if !ok {
36195		return fmt.Errorf("unexpected JSON type %v", value)
36196	}
36197
36198	var sv *types.Termination
36199	if *v == nil {
36200		sv = &types.Termination{}
36201	} else {
36202		sv = *v
36203	}
36204
36205	for key, value := range shape {
36206		switch key {
36207		case "CallingRegions":
36208			if err := awsRestjson1_deserializeDocumentCallingRegionList(&sv.CallingRegions, value); err != nil {
36209				return err
36210			}
36211
36212		case "CidrAllowedList":
36213			if err := awsRestjson1_deserializeDocumentStringList(&sv.CidrAllowedList, value); err != nil {
36214				return err
36215			}
36216
36217		case "CpsLimit":
36218			if value != nil {
36219				jtv, ok := value.(json.Number)
36220				if !ok {
36221					return fmt.Errorf("expected CpsLimit to be json.Number, got %T instead", value)
36222				}
36223				i64, err := jtv.Int64()
36224				if err != nil {
36225					return err
36226				}
36227				sv.CpsLimit = ptr.Int32(int32(i64))
36228			}
36229
36230		case "DefaultPhoneNumber":
36231			if value != nil {
36232				jtv, ok := value.(string)
36233				if !ok {
36234					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
36235				}
36236				sv.DefaultPhoneNumber = ptr.String(jtv)
36237			}
36238
36239		case "Disabled":
36240			if value != nil {
36241				jtv, ok := value.(bool)
36242				if !ok {
36243					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
36244				}
36245				sv.Disabled = ptr.Bool(jtv)
36246			}
36247
36248		default:
36249			_, _ = key, value
36250
36251		}
36252	}
36253	*v = sv
36254	return nil
36255}
36256
36257func awsRestjson1_deserializeDocumentTerminationHealth(v **types.TerminationHealth, value interface{}) error {
36258	if v == nil {
36259		return fmt.Errorf("unexpected nil of type %T", v)
36260	}
36261	if value == nil {
36262		return nil
36263	}
36264
36265	shape, ok := value.(map[string]interface{})
36266	if !ok {
36267		return fmt.Errorf("unexpected JSON type %v", value)
36268	}
36269
36270	var sv *types.TerminationHealth
36271	if *v == nil {
36272		sv = &types.TerminationHealth{}
36273	} else {
36274		sv = *v
36275	}
36276
36277	for key, value := range shape {
36278		switch key {
36279		case "Source":
36280			if value != nil {
36281				jtv, ok := value.(string)
36282				if !ok {
36283					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36284				}
36285				sv.Source = ptr.String(jtv)
36286			}
36287
36288		case "Timestamp":
36289			if value != nil {
36290				jtv, ok := value.(string)
36291				if !ok {
36292					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36293				}
36294				t, err := smithytime.ParseDateTime(jtv)
36295				if err != nil {
36296					return err
36297				}
36298				sv.Timestamp = ptr.Time(t)
36299			}
36300
36301		default:
36302			_, _ = key, value
36303
36304		}
36305	}
36306	*v = sv
36307	return nil
36308}
36309
36310func awsRestjson1_deserializeDocumentThrottledClientException(v **types.ThrottledClientException, value interface{}) error {
36311	if v == nil {
36312		return fmt.Errorf("unexpected nil of type %T", v)
36313	}
36314	if value == nil {
36315		return nil
36316	}
36317
36318	shape, ok := value.(map[string]interface{})
36319	if !ok {
36320		return fmt.Errorf("unexpected JSON type %v", value)
36321	}
36322
36323	var sv *types.ThrottledClientException
36324	if *v == nil {
36325		sv = &types.ThrottledClientException{}
36326	} else {
36327		sv = *v
36328	}
36329
36330	for key, value := range shape {
36331		switch key {
36332		case "Code":
36333			if value != nil {
36334				jtv, ok := value.(string)
36335				if !ok {
36336					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
36337				}
36338				sv.Code = types.ErrorCode(jtv)
36339			}
36340
36341		case "Message":
36342			if value != nil {
36343				jtv, ok := value.(string)
36344				if !ok {
36345					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36346				}
36347				sv.Message = ptr.String(jtv)
36348			}
36349
36350		default:
36351			_, _ = key, value
36352
36353		}
36354	}
36355	*v = sv
36356	return nil
36357}
36358
36359func awsRestjson1_deserializeDocumentUnauthorizedClientException(v **types.UnauthorizedClientException, value interface{}) error {
36360	if v == nil {
36361		return fmt.Errorf("unexpected nil of type %T", v)
36362	}
36363	if value == nil {
36364		return nil
36365	}
36366
36367	shape, ok := value.(map[string]interface{})
36368	if !ok {
36369		return fmt.Errorf("unexpected JSON type %v", value)
36370	}
36371
36372	var sv *types.UnauthorizedClientException
36373	if *v == nil {
36374		sv = &types.UnauthorizedClientException{}
36375	} else {
36376		sv = *v
36377	}
36378
36379	for key, value := range shape {
36380		switch key {
36381		case "Code":
36382			if value != nil {
36383				jtv, ok := value.(string)
36384				if !ok {
36385					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
36386				}
36387				sv.Code = types.ErrorCode(jtv)
36388			}
36389
36390		case "Message":
36391			if value != nil {
36392				jtv, ok := value.(string)
36393				if !ok {
36394					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36395				}
36396				sv.Message = ptr.String(jtv)
36397			}
36398
36399		default:
36400			_, _ = key, value
36401
36402		}
36403	}
36404	*v = sv
36405	return nil
36406}
36407
36408func awsRestjson1_deserializeDocumentUnprocessableEntityException(v **types.UnprocessableEntityException, value interface{}) error {
36409	if v == nil {
36410		return fmt.Errorf("unexpected nil of type %T", v)
36411	}
36412	if value == nil {
36413		return nil
36414	}
36415
36416	shape, ok := value.(map[string]interface{})
36417	if !ok {
36418		return fmt.Errorf("unexpected JSON type %v", value)
36419	}
36420
36421	var sv *types.UnprocessableEntityException
36422	if *v == nil {
36423		sv = &types.UnprocessableEntityException{}
36424	} else {
36425		sv = *v
36426	}
36427
36428	for key, value := range shape {
36429		switch key {
36430		case "Code":
36431			if value != nil {
36432				jtv, ok := value.(string)
36433				if !ok {
36434					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
36435				}
36436				sv.Code = types.ErrorCode(jtv)
36437			}
36438
36439		case "Message":
36440			if value != nil {
36441				jtv, ok := value.(string)
36442				if !ok {
36443					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36444				}
36445				sv.Message = ptr.String(jtv)
36446			}
36447
36448		default:
36449			_, _ = key, value
36450
36451		}
36452	}
36453	*v = sv
36454	return nil
36455}
36456
36457func awsRestjson1_deserializeDocumentUser(v **types.User, value interface{}) error {
36458	if v == nil {
36459		return fmt.Errorf("unexpected nil of type %T", v)
36460	}
36461	if value == nil {
36462		return nil
36463	}
36464
36465	shape, ok := value.(map[string]interface{})
36466	if !ok {
36467		return fmt.Errorf("unexpected JSON type %v", value)
36468	}
36469
36470	var sv *types.User
36471	if *v == nil {
36472		sv = &types.User{}
36473	} else {
36474		sv = *v
36475	}
36476
36477	for key, value := range shape {
36478		switch key {
36479		case "AccountId":
36480			if value != nil {
36481				jtv, ok := value.(string)
36482				if !ok {
36483					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36484				}
36485				sv.AccountId = ptr.String(jtv)
36486			}
36487
36488		case "AlexaForBusinessMetadata":
36489			if err := awsRestjson1_deserializeDocumentAlexaForBusinessMetadata(&sv.AlexaForBusinessMetadata, value); err != nil {
36490				return err
36491			}
36492
36493		case "DisplayName":
36494			if value != nil {
36495				jtv, ok := value.(string)
36496				if !ok {
36497					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
36498				}
36499				sv.DisplayName = ptr.String(jtv)
36500			}
36501
36502		case "InvitedOn":
36503			if value != nil {
36504				jtv, ok := value.(string)
36505				if !ok {
36506					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36507				}
36508				t, err := smithytime.ParseDateTime(jtv)
36509				if err != nil {
36510					return err
36511				}
36512				sv.InvitedOn = ptr.Time(t)
36513			}
36514
36515		case "LicenseType":
36516			if value != nil {
36517				jtv, ok := value.(string)
36518				if !ok {
36519					return fmt.Errorf("expected License to be of type string, got %T instead", value)
36520				}
36521				sv.LicenseType = types.License(jtv)
36522			}
36523
36524		case "PersonalPIN":
36525			if value != nil {
36526				jtv, ok := value.(string)
36527				if !ok {
36528					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36529				}
36530				sv.PersonalPIN = ptr.String(jtv)
36531			}
36532
36533		case "PrimaryEmail":
36534			if value != nil {
36535				jtv, ok := value.(string)
36536				if !ok {
36537					return fmt.Errorf("expected EmailAddress to be of type string, got %T instead", value)
36538				}
36539				sv.PrimaryEmail = ptr.String(jtv)
36540			}
36541
36542		case "PrimaryProvisionedNumber":
36543			if value != nil {
36544				jtv, ok := value.(string)
36545				if !ok {
36546					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
36547				}
36548				sv.PrimaryProvisionedNumber = ptr.String(jtv)
36549			}
36550
36551		case "RegisteredOn":
36552			if value != nil {
36553				jtv, ok := value.(string)
36554				if !ok {
36555					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36556				}
36557				t, err := smithytime.ParseDateTime(jtv)
36558				if err != nil {
36559					return err
36560				}
36561				sv.RegisteredOn = ptr.Time(t)
36562			}
36563
36564		case "UserId":
36565			if value != nil {
36566				jtv, ok := value.(string)
36567				if !ok {
36568					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36569				}
36570				sv.UserId = ptr.String(jtv)
36571			}
36572
36573		case "UserInvitationStatus":
36574			if value != nil {
36575				jtv, ok := value.(string)
36576				if !ok {
36577					return fmt.Errorf("expected InviteStatus to be of type string, got %T instead", value)
36578				}
36579				sv.UserInvitationStatus = types.InviteStatus(jtv)
36580			}
36581
36582		case "UserRegistrationStatus":
36583			if value != nil {
36584				jtv, ok := value.(string)
36585				if !ok {
36586					return fmt.Errorf("expected RegistrationStatus to be of type string, got %T instead", value)
36587				}
36588				sv.UserRegistrationStatus = types.RegistrationStatus(jtv)
36589			}
36590
36591		case "UserType":
36592			if value != nil {
36593				jtv, ok := value.(string)
36594				if !ok {
36595					return fmt.Errorf("expected UserType to be of type string, got %T instead", value)
36596				}
36597				sv.UserType = types.UserType(jtv)
36598			}
36599
36600		default:
36601			_, _ = key, value
36602
36603		}
36604	}
36605	*v = sv
36606	return nil
36607}
36608
36609func awsRestjson1_deserializeDocumentUserError(v **types.UserError, value interface{}) error {
36610	if v == nil {
36611		return fmt.Errorf("unexpected nil of type %T", v)
36612	}
36613	if value == nil {
36614		return nil
36615	}
36616
36617	shape, ok := value.(map[string]interface{})
36618	if !ok {
36619		return fmt.Errorf("unexpected JSON type %v", value)
36620	}
36621
36622	var sv *types.UserError
36623	if *v == nil {
36624		sv = &types.UserError{}
36625	} else {
36626		sv = *v
36627	}
36628
36629	for key, value := range shape {
36630		switch key {
36631		case "ErrorCode":
36632			if value != nil {
36633				jtv, ok := value.(string)
36634				if !ok {
36635					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
36636				}
36637				sv.ErrorCode = types.ErrorCode(jtv)
36638			}
36639
36640		case "ErrorMessage":
36641			if value != nil {
36642				jtv, ok := value.(string)
36643				if !ok {
36644					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36645				}
36646				sv.ErrorMessage = ptr.String(jtv)
36647			}
36648
36649		case "UserId":
36650			if value != nil {
36651				jtv, ok := value.(string)
36652				if !ok {
36653					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36654				}
36655				sv.UserId = ptr.String(jtv)
36656			}
36657
36658		default:
36659			_, _ = key, value
36660
36661		}
36662	}
36663	*v = sv
36664	return nil
36665}
36666
36667func awsRestjson1_deserializeDocumentUserErrorList(v *[]types.UserError, value interface{}) error {
36668	if v == nil {
36669		return fmt.Errorf("unexpected nil of type %T", v)
36670	}
36671	if value == nil {
36672		return nil
36673	}
36674
36675	shape, ok := value.([]interface{})
36676	if !ok {
36677		return fmt.Errorf("unexpected JSON type %v", value)
36678	}
36679
36680	var cv []types.UserError
36681	if *v == nil {
36682		cv = []types.UserError{}
36683	} else {
36684		cv = *v
36685	}
36686
36687	for _, value := range shape {
36688		var col types.UserError
36689		destAddr := &col
36690		if err := awsRestjson1_deserializeDocumentUserError(&destAddr, value); err != nil {
36691			return err
36692		}
36693		col = *destAddr
36694		cv = append(cv, col)
36695
36696	}
36697	*v = cv
36698	return nil
36699}
36700
36701func awsRestjson1_deserializeDocumentUserList(v *[]types.User, value interface{}) error {
36702	if v == nil {
36703		return fmt.Errorf("unexpected nil of type %T", v)
36704	}
36705	if value == nil {
36706		return nil
36707	}
36708
36709	shape, ok := value.([]interface{})
36710	if !ok {
36711		return fmt.Errorf("unexpected JSON type %v", value)
36712	}
36713
36714	var cv []types.User
36715	if *v == nil {
36716		cv = []types.User{}
36717	} else {
36718		cv = *v
36719	}
36720
36721	for _, value := range shape {
36722		var col types.User
36723		destAddr := &col
36724		if err := awsRestjson1_deserializeDocumentUser(&destAddr, value); err != nil {
36725			return err
36726		}
36727		col = *destAddr
36728		cv = append(cv, col)
36729
36730	}
36731	*v = cv
36732	return nil
36733}
36734
36735func awsRestjson1_deserializeDocumentUserSettings(v **types.UserSettings, value interface{}) error {
36736	if v == nil {
36737		return fmt.Errorf("unexpected nil of type %T", v)
36738	}
36739	if value == nil {
36740		return nil
36741	}
36742
36743	shape, ok := value.(map[string]interface{})
36744	if !ok {
36745		return fmt.Errorf("unexpected JSON type %v", value)
36746	}
36747
36748	var sv *types.UserSettings
36749	if *v == nil {
36750		sv = &types.UserSettings{}
36751	} else {
36752		sv = *v
36753	}
36754
36755	for key, value := range shape {
36756		switch key {
36757		case "Telephony":
36758			if err := awsRestjson1_deserializeDocumentTelephonySettings(&sv.Telephony, value); err != nil {
36759				return err
36760			}
36761
36762		default:
36763			_, _ = key, value
36764
36765		}
36766	}
36767	*v = sv
36768	return nil
36769}
36770
36771func awsRestjson1_deserializeDocumentVoiceConnector(v **types.VoiceConnector, value interface{}) error {
36772	if v == nil {
36773		return fmt.Errorf("unexpected nil of type %T", v)
36774	}
36775	if value == nil {
36776		return nil
36777	}
36778
36779	shape, ok := value.(map[string]interface{})
36780	if !ok {
36781		return fmt.Errorf("unexpected JSON type %v", value)
36782	}
36783
36784	var sv *types.VoiceConnector
36785	if *v == nil {
36786		sv = &types.VoiceConnector{}
36787	} else {
36788		sv = *v
36789	}
36790
36791	for key, value := range shape {
36792		switch key {
36793		case "AwsRegion":
36794			if value != nil {
36795				jtv, ok := value.(string)
36796				if !ok {
36797					return fmt.Errorf("expected VoiceConnectorAwsRegion to be of type string, got %T instead", value)
36798				}
36799				sv.AwsRegion = types.VoiceConnectorAwsRegion(jtv)
36800			}
36801
36802		case "CreatedTimestamp":
36803			if value != nil {
36804				jtv, ok := value.(string)
36805				if !ok {
36806					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36807				}
36808				t, err := smithytime.ParseDateTime(jtv)
36809				if err != nil {
36810					return err
36811				}
36812				sv.CreatedTimestamp = ptr.Time(t)
36813			}
36814
36815		case "Name":
36816			if value != nil {
36817				jtv, ok := value.(string)
36818				if !ok {
36819					return fmt.Errorf("expected VoiceConnectorName to be of type string, got %T instead", value)
36820				}
36821				sv.Name = ptr.String(jtv)
36822			}
36823
36824		case "OutboundHostName":
36825			if value != nil {
36826				jtv, ok := value.(string)
36827				if !ok {
36828					return fmt.Errorf("expected String to be of type string, got %T instead", value)
36829				}
36830				sv.OutboundHostName = ptr.String(jtv)
36831			}
36832
36833		case "RequireEncryption":
36834			if value != nil {
36835				jtv, ok := value.(bool)
36836				if !ok {
36837					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
36838				}
36839				sv.RequireEncryption = ptr.Bool(jtv)
36840			}
36841
36842		case "UpdatedTimestamp":
36843			if value != nil {
36844				jtv, ok := value.(string)
36845				if !ok {
36846					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36847				}
36848				t, err := smithytime.ParseDateTime(jtv)
36849				if err != nil {
36850					return err
36851				}
36852				sv.UpdatedTimestamp = ptr.Time(t)
36853			}
36854
36855		case "VoiceConnectorId":
36856			if value != nil {
36857				jtv, ok := value.(string)
36858				if !ok {
36859					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36860				}
36861				sv.VoiceConnectorId = ptr.String(jtv)
36862			}
36863
36864		default:
36865			_, _ = key, value
36866
36867		}
36868	}
36869	*v = sv
36870	return nil
36871}
36872
36873func awsRestjson1_deserializeDocumentVoiceConnectorGroup(v **types.VoiceConnectorGroup, value interface{}) error {
36874	if v == nil {
36875		return fmt.Errorf("unexpected nil of type %T", v)
36876	}
36877	if value == nil {
36878		return nil
36879	}
36880
36881	shape, ok := value.(map[string]interface{})
36882	if !ok {
36883		return fmt.Errorf("unexpected JSON type %v", value)
36884	}
36885
36886	var sv *types.VoiceConnectorGroup
36887	if *v == nil {
36888		sv = &types.VoiceConnectorGroup{}
36889	} else {
36890		sv = *v
36891	}
36892
36893	for key, value := range shape {
36894		switch key {
36895		case "CreatedTimestamp":
36896			if value != nil {
36897				jtv, ok := value.(string)
36898				if !ok {
36899					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36900				}
36901				t, err := smithytime.ParseDateTime(jtv)
36902				if err != nil {
36903					return err
36904				}
36905				sv.CreatedTimestamp = ptr.Time(t)
36906			}
36907
36908		case "Name":
36909			if value != nil {
36910				jtv, ok := value.(string)
36911				if !ok {
36912					return fmt.Errorf("expected VoiceConnectorGroupName to be of type string, got %T instead", value)
36913				}
36914				sv.Name = ptr.String(jtv)
36915			}
36916
36917		case "UpdatedTimestamp":
36918			if value != nil {
36919				jtv, ok := value.(string)
36920				if !ok {
36921					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
36922				}
36923				t, err := smithytime.ParseDateTime(jtv)
36924				if err != nil {
36925					return err
36926				}
36927				sv.UpdatedTimestamp = ptr.Time(t)
36928			}
36929
36930		case "VoiceConnectorGroupId":
36931			if value != nil {
36932				jtv, ok := value.(string)
36933				if !ok {
36934					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
36935				}
36936				sv.VoiceConnectorGroupId = ptr.String(jtv)
36937			}
36938
36939		case "VoiceConnectorItems":
36940			if err := awsRestjson1_deserializeDocumentVoiceConnectorItemList(&sv.VoiceConnectorItems, value); err != nil {
36941				return err
36942			}
36943
36944		default:
36945			_, _ = key, value
36946
36947		}
36948	}
36949	*v = sv
36950	return nil
36951}
36952
36953func awsRestjson1_deserializeDocumentVoiceConnectorGroupList(v *[]types.VoiceConnectorGroup, value interface{}) error {
36954	if v == nil {
36955		return fmt.Errorf("unexpected nil of type %T", v)
36956	}
36957	if value == nil {
36958		return nil
36959	}
36960
36961	shape, ok := value.([]interface{})
36962	if !ok {
36963		return fmt.Errorf("unexpected JSON type %v", value)
36964	}
36965
36966	var cv []types.VoiceConnectorGroup
36967	if *v == nil {
36968		cv = []types.VoiceConnectorGroup{}
36969	} else {
36970		cv = *v
36971	}
36972
36973	for _, value := range shape {
36974		var col types.VoiceConnectorGroup
36975		destAddr := &col
36976		if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&destAddr, value); err != nil {
36977			return err
36978		}
36979		col = *destAddr
36980		cv = append(cv, col)
36981
36982	}
36983	*v = cv
36984	return nil
36985}
36986
36987func awsRestjson1_deserializeDocumentVoiceConnectorItem(v **types.VoiceConnectorItem, value interface{}) error {
36988	if v == nil {
36989		return fmt.Errorf("unexpected nil of type %T", v)
36990	}
36991	if value == nil {
36992		return nil
36993	}
36994
36995	shape, ok := value.(map[string]interface{})
36996	if !ok {
36997		return fmt.Errorf("unexpected JSON type %v", value)
36998	}
36999
37000	var sv *types.VoiceConnectorItem
37001	if *v == nil {
37002		sv = &types.VoiceConnectorItem{}
37003	} else {
37004		sv = *v
37005	}
37006
37007	for key, value := range shape {
37008		switch key {
37009		case "Priority":
37010			if value != nil {
37011				jtv, ok := value.(json.Number)
37012				if !ok {
37013					return fmt.Errorf("expected VoiceConnectorItemPriority to be json.Number, got %T instead", value)
37014				}
37015				i64, err := jtv.Int64()
37016				if err != nil {
37017					return err
37018				}
37019				sv.Priority = ptr.Int32(int32(i64))
37020			}
37021
37022		case "VoiceConnectorId":
37023			if value != nil {
37024				jtv, ok := value.(string)
37025				if !ok {
37026					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
37027				}
37028				sv.VoiceConnectorId = ptr.String(jtv)
37029			}
37030
37031		default:
37032			_, _ = key, value
37033
37034		}
37035	}
37036	*v = sv
37037	return nil
37038}
37039
37040func awsRestjson1_deserializeDocumentVoiceConnectorItemList(v *[]types.VoiceConnectorItem, value interface{}) error {
37041	if v == nil {
37042		return fmt.Errorf("unexpected nil of type %T", v)
37043	}
37044	if value == nil {
37045		return nil
37046	}
37047
37048	shape, ok := value.([]interface{})
37049	if !ok {
37050		return fmt.Errorf("unexpected JSON type %v", value)
37051	}
37052
37053	var cv []types.VoiceConnectorItem
37054	if *v == nil {
37055		cv = []types.VoiceConnectorItem{}
37056	} else {
37057		cv = *v
37058	}
37059
37060	for _, value := range shape {
37061		var col types.VoiceConnectorItem
37062		destAddr := &col
37063		if err := awsRestjson1_deserializeDocumentVoiceConnectorItem(&destAddr, value); err != nil {
37064			return err
37065		}
37066		col = *destAddr
37067		cv = append(cv, col)
37068
37069	}
37070	*v = cv
37071	return nil
37072}
37073
37074func awsRestjson1_deserializeDocumentVoiceConnectorList(v *[]types.VoiceConnector, value interface{}) error {
37075	if v == nil {
37076		return fmt.Errorf("unexpected nil of type %T", v)
37077	}
37078	if value == nil {
37079		return nil
37080	}
37081
37082	shape, ok := value.([]interface{})
37083	if !ok {
37084		return fmt.Errorf("unexpected JSON type %v", value)
37085	}
37086
37087	var cv []types.VoiceConnector
37088	if *v == nil {
37089		cv = []types.VoiceConnector{}
37090	} else {
37091		cv = *v
37092	}
37093
37094	for _, value := range shape {
37095		var col types.VoiceConnector
37096		destAddr := &col
37097		if err := awsRestjson1_deserializeDocumentVoiceConnector(&destAddr, value); err != nil {
37098			return err
37099		}
37100		col = *destAddr
37101		cv = append(cv, col)
37102
37103	}
37104	*v = cv
37105	return nil
37106}
37107
37108func awsRestjson1_deserializeDocumentVoiceConnectorSettings(v **types.VoiceConnectorSettings, value interface{}) error {
37109	if v == nil {
37110		return fmt.Errorf("unexpected nil of type %T", v)
37111	}
37112	if value == nil {
37113		return nil
37114	}
37115
37116	shape, ok := value.(map[string]interface{})
37117	if !ok {
37118		return fmt.Errorf("unexpected JSON type %v", value)
37119	}
37120
37121	var sv *types.VoiceConnectorSettings
37122	if *v == nil {
37123		sv = &types.VoiceConnectorSettings{}
37124	} else {
37125		sv = *v
37126	}
37127
37128	for key, value := range shape {
37129		switch key {
37130		case "CdrBucket":
37131			if value != nil {
37132				jtv, ok := value.(string)
37133				if !ok {
37134					return fmt.Errorf("expected String to be of type string, got %T instead", value)
37135				}
37136				sv.CdrBucket = ptr.String(jtv)
37137			}
37138
37139		default:
37140			_, _ = key, value
37141
37142		}
37143	}
37144	*v = sv
37145	return nil
37146}
37147