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_deserializeOpBatchCreateRoomMembership struct {
738}
739
740func (*awsRestjson1_deserializeOpBatchCreateRoomMembership) ID() string {
741	return "OperationDeserializer"
742}
743
744func (m *awsRestjson1_deserializeOpBatchCreateRoomMembership) 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_deserializeOpErrorBatchCreateRoomMembership(response, &metadata)
759	}
760	output := &BatchCreateRoomMembershipOutput{}
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_deserializeOpDocumentBatchCreateRoomMembershipOutput(&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_deserializeOpErrorBatchCreateRoomMembership(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("NotFoundException", errorCode):
842		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
843
844	case strings.EqualFold("ServiceFailureException", errorCode):
845		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
846
847	case strings.EqualFold("ServiceUnavailableException", errorCode):
848		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
849
850	case strings.EqualFold("ThrottledClientException", errorCode):
851		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
852
853	case strings.EqualFold("UnauthorizedClientException", errorCode):
854		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
855
856	default:
857		genericError := &smithy.GenericAPIError{
858			Code:    errorCode,
859			Message: errorMessage,
860		}
861		return genericError
862
863	}
864}
865
866func awsRestjson1_deserializeOpDocumentBatchCreateRoomMembershipOutput(v **BatchCreateRoomMembershipOutput, value interface{}) error {
867	if v == nil {
868		return fmt.Errorf("unexpected nil of type %T", v)
869	}
870	if value == nil {
871		return nil
872	}
873
874	shape, ok := value.(map[string]interface{})
875	if !ok {
876		return fmt.Errorf("unexpected JSON type %v", value)
877	}
878
879	var sv *BatchCreateRoomMembershipOutput
880	if *v == nil {
881		sv = &BatchCreateRoomMembershipOutput{}
882	} else {
883		sv = *v
884	}
885
886	for key, value := range shape {
887		switch key {
888		case "Errors":
889			if err := awsRestjson1_deserializeDocumentMemberErrorList(&sv.Errors, value); err != nil {
890				return err
891			}
892
893		default:
894			_, _ = key, value
895
896		}
897	}
898	*v = sv
899	return nil
900}
901
902type awsRestjson1_deserializeOpBatchDeletePhoneNumber struct {
903}
904
905func (*awsRestjson1_deserializeOpBatchDeletePhoneNumber) ID() string {
906	return "OperationDeserializer"
907}
908
909func (m *awsRestjson1_deserializeOpBatchDeletePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
910	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
911) {
912	out, metadata, err = next.HandleDeserialize(ctx, in)
913	if err != nil {
914		return out, metadata, err
915	}
916
917	response, ok := out.RawResponse.(*smithyhttp.Response)
918	if !ok {
919		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
920	}
921
922	if response.StatusCode < 200 || response.StatusCode >= 300 {
923		return out, metadata, awsRestjson1_deserializeOpErrorBatchDeletePhoneNumber(response, &metadata)
924	}
925	output := &BatchDeletePhoneNumberOutput{}
926	out.Result = output
927
928	var buff [1024]byte
929	ringBuffer := smithyio.NewRingBuffer(buff[:])
930
931	body := io.TeeReader(response.Body, ringBuffer)
932
933	decoder := json.NewDecoder(body)
934	decoder.UseNumber()
935	var shape interface{}
936	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
937		var snapshot bytes.Buffer
938		io.Copy(&snapshot, ringBuffer)
939		err = &smithy.DeserializationError{
940			Err:      fmt.Errorf("failed to decode response body, %w", err),
941			Snapshot: snapshot.Bytes(),
942		}
943		return out, metadata, err
944	}
945
946	err = awsRestjson1_deserializeOpDocumentBatchDeletePhoneNumberOutput(&output, shape)
947	if err != nil {
948		var snapshot bytes.Buffer
949		io.Copy(&snapshot, ringBuffer)
950		return out, metadata, &smithy.DeserializationError{
951			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
952			Snapshot: snapshot.Bytes(),
953		}
954	}
955
956	return out, metadata, err
957}
958
959func awsRestjson1_deserializeOpErrorBatchDeletePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
960	var errorBuffer bytes.Buffer
961	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
962		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
963	}
964	errorBody := bytes.NewReader(errorBuffer.Bytes())
965
966	errorCode := "UnknownError"
967	errorMessage := errorCode
968
969	code := response.Header.Get("X-Amzn-ErrorType")
970	if len(code) != 0 {
971		errorCode = restjson.SanitizeErrorCode(code)
972	}
973
974	var buff [1024]byte
975	ringBuffer := smithyio.NewRingBuffer(buff[:])
976
977	body := io.TeeReader(errorBody, ringBuffer)
978	decoder := json.NewDecoder(body)
979	decoder.UseNumber()
980	code, message, err := restjson.GetErrorInfo(decoder)
981	if err != nil {
982		var snapshot bytes.Buffer
983		io.Copy(&snapshot, ringBuffer)
984		err = &smithy.DeserializationError{
985			Err:      fmt.Errorf("failed to decode response body, %w", err),
986			Snapshot: snapshot.Bytes(),
987		}
988		return err
989	}
990
991	errorBody.Seek(0, io.SeekStart)
992	if len(code) != 0 {
993		errorCode = restjson.SanitizeErrorCode(code)
994	}
995	if len(message) != 0 {
996		errorMessage = message
997	}
998
999	switch {
1000	case strings.EqualFold("BadRequestException", errorCode):
1001		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1002
1003	case strings.EqualFold("ForbiddenException", errorCode):
1004		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1005
1006	case strings.EqualFold("NotFoundException", errorCode):
1007		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1008
1009	case strings.EqualFold("ServiceFailureException", errorCode):
1010		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1011
1012	case strings.EqualFold("ServiceUnavailableException", errorCode):
1013		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1014
1015	case strings.EqualFold("ThrottledClientException", errorCode):
1016		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1017
1018	case strings.EqualFold("UnauthorizedClientException", errorCode):
1019		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1020
1021	default:
1022		genericError := &smithy.GenericAPIError{
1023			Code:    errorCode,
1024			Message: errorMessage,
1025		}
1026		return genericError
1027
1028	}
1029}
1030
1031func awsRestjson1_deserializeOpDocumentBatchDeletePhoneNumberOutput(v **BatchDeletePhoneNumberOutput, value interface{}) error {
1032	if v == nil {
1033		return fmt.Errorf("unexpected nil of type %T", v)
1034	}
1035	if value == nil {
1036		return nil
1037	}
1038
1039	shape, ok := value.(map[string]interface{})
1040	if !ok {
1041		return fmt.Errorf("unexpected JSON type %v", value)
1042	}
1043
1044	var sv *BatchDeletePhoneNumberOutput
1045	if *v == nil {
1046		sv = &BatchDeletePhoneNumberOutput{}
1047	} else {
1048		sv = *v
1049	}
1050
1051	for key, value := range shape {
1052		switch key {
1053		case "PhoneNumberErrors":
1054			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
1055				return err
1056			}
1057
1058		default:
1059			_, _ = key, value
1060
1061		}
1062	}
1063	*v = sv
1064	return nil
1065}
1066
1067type awsRestjson1_deserializeOpBatchSuspendUser struct {
1068}
1069
1070func (*awsRestjson1_deserializeOpBatchSuspendUser) ID() string {
1071	return "OperationDeserializer"
1072}
1073
1074func (m *awsRestjson1_deserializeOpBatchSuspendUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1075	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1076) {
1077	out, metadata, err = next.HandleDeserialize(ctx, in)
1078	if err != nil {
1079		return out, metadata, err
1080	}
1081
1082	response, ok := out.RawResponse.(*smithyhttp.Response)
1083	if !ok {
1084		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1085	}
1086
1087	if response.StatusCode < 200 || response.StatusCode >= 300 {
1088		return out, metadata, awsRestjson1_deserializeOpErrorBatchSuspendUser(response, &metadata)
1089	}
1090	output := &BatchSuspendUserOutput{}
1091	out.Result = output
1092
1093	var buff [1024]byte
1094	ringBuffer := smithyio.NewRingBuffer(buff[:])
1095
1096	body := io.TeeReader(response.Body, ringBuffer)
1097
1098	decoder := json.NewDecoder(body)
1099	decoder.UseNumber()
1100	var shape interface{}
1101	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1102		var snapshot bytes.Buffer
1103		io.Copy(&snapshot, ringBuffer)
1104		err = &smithy.DeserializationError{
1105			Err:      fmt.Errorf("failed to decode response body, %w", err),
1106			Snapshot: snapshot.Bytes(),
1107		}
1108		return out, metadata, err
1109	}
1110
1111	err = awsRestjson1_deserializeOpDocumentBatchSuspendUserOutput(&output, shape)
1112	if err != nil {
1113		var snapshot bytes.Buffer
1114		io.Copy(&snapshot, ringBuffer)
1115		return out, metadata, &smithy.DeserializationError{
1116			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1117			Snapshot: snapshot.Bytes(),
1118		}
1119	}
1120
1121	return out, metadata, err
1122}
1123
1124func awsRestjson1_deserializeOpErrorBatchSuspendUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1125	var errorBuffer bytes.Buffer
1126	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1127		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1128	}
1129	errorBody := bytes.NewReader(errorBuffer.Bytes())
1130
1131	errorCode := "UnknownError"
1132	errorMessage := errorCode
1133
1134	code := response.Header.Get("X-Amzn-ErrorType")
1135	if len(code) != 0 {
1136		errorCode = restjson.SanitizeErrorCode(code)
1137	}
1138
1139	var buff [1024]byte
1140	ringBuffer := smithyio.NewRingBuffer(buff[:])
1141
1142	body := io.TeeReader(errorBody, ringBuffer)
1143	decoder := json.NewDecoder(body)
1144	decoder.UseNumber()
1145	code, message, err := restjson.GetErrorInfo(decoder)
1146	if err != nil {
1147		var snapshot bytes.Buffer
1148		io.Copy(&snapshot, ringBuffer)
1149		err = &smithy.DeserializationError{
1150			Err:      fmt.Errorf("failed to decode response body, %w", err),
1151			Snapshot: snapshot.Bytes(),
1152		}
1153		return err
1154	}
1155
1156	errorBody.Seek(0, io.SeekStart)
1157	if len(code) != 0 {
1158		errorCode = restjson.SanitizeErrorCode(code)
1159	}
1160	if len(message) != 0 {
1161		errorMessage = message
1162	}
1163
1164	switch {
1165	case strings.EqualFold("BadRequestException", errorCode):
1166		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1167
1168	case strings.EqualFold("ForbiddenException", errorCode):
1169		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1170
1171	case strings.EqualFold("NotFoundException", errorCode):
1172		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1173
1174	case strings.EqualFold("ServiceFailureException", errorCode):
1175		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1176
1177	case strings.EqualFold("ServiceUnavailableException", errorCode):
1178		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1179
1180	case strings.EqualFold("ThrottledClientException", errorCode):
1181		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1182
1183	case strings.EqualFold("UnauthorizedClientException", errorCode):
1184		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1185
1186	default:
1187		genericError := &smithy.GenericAPIError{
1188			Code:    errorCode,
1189			Message: errorMessage,
1190		}
1191		return genericError
1192
1193	}
1194}
1195
1196func awsRestjson1_deserializeOpDocumentBatchSuspendUserOutput(v **BatchSuspendUserOutput, value interface{}) error {
1197	if v == nil {
1198		return fmt.Errorf("unexpected nil of type %T", v)
1199	}
1200	if value == nil {
1201		return nil
1202	}
1203
1204	shape, ok := value.(map[string]interface{})
1205	if !ok {
1206		return fmt.Errorf("unexpected JSON type %v", value)
1207	}
1208
1209	var sv *BatchSuspendUserOutput
1210	if *v == nil {
1211		sv = &BatchSuspendUserOutput{}
1212	} else {
1213		sv = *v
1214	}
1215
1216	for key, value := range shape {
1217		switch key {
1218		case "UserErrors":
1219			if err := awsRestjson1_deserializeDocumentUserErrorList(&sv.UserErrors, value); err != nil {
1220				return err
1221			}
1222
1223		default:
1224			_, _ = key, value
1225
1226		}
1227	}
1228	*v = sv
1229	return nil
1230}
1231
1232type awsRestjson1_deserializeOpBatchUnsuspendUser struct {
1233}
1234
1235func (*awsRestjson1_deserializeOpBatchUnsuspendUser) ID() string {
1236	return "OperationDeserializer"
1237}
1238
1239func (m *awsRestjson1_deserializeOpBatchUnsuspendUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1240	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1241) {
1242	out, metadata, err = next.HandleDeserialize(ctx, in)
1243	if err != nil {
1244		return out, metadata, err
1245	}
1246
1247	response, ok := out.RawResponse.(*smithyhttp.Response)
1248	if !ok {
1249		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1250	}
1251
1252	if response.StatusCode < 200 || response.StatusCode >= 300 {
1253		return out, metadata, awsRestjson1_deserializeOpErrorBatchUnsuspendUser(response, &metadata)
1254	}
1255	output := &BatchUnsuspendUserOutput{}
1256	out.Result = output
1257
1258	var buff [1024]byte
1259	ringBuffer := smithyio.NewRingBuffer(buff[:])
1260
1261	body := io.TeeReader(response.Body, ringBuffer)
1262
1263	decoder := json.NewDecoder(body)
1264	decoder.UseNumber()
1265	var shape interface{}
1266	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1267		var snapshot bytes.Buffer
1268		io.Copy(&snapshot, ringBuffer)
1269		err = &smithy.DeserializationError{
1270			Err:      fmt.Errorf("failed to decode response body, %w", err),
1271			Snapshot: snapshot.Bytes(),
1272		}
1273		return out, metadata, err
1274	}
1275
1276	err = awsRestjson1_deserializeOpDocumentBatchUnsuspendUserOutput(&output, shape)
1277	if err != nil {
1278		var snapshot bytes.Buffer
1279		io.Copy(&snapshot, ringBuffer)
1280		return out, metadata, &smithy.DeserializationError{
1281			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1282			Snapshot: snapshot.Bytes(),
1283		}
1284	}
1285
1286	return out, metadata, err
1287}
1288
1289func awsRestjson1_deserializeOpErrorBatchUnsuspendUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1290	var errorBuffer bytes.Buffer
1291	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1292		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1293	}
1294	errorBody := bytes.NewReader(errorBuffer.Bytes())
1295
1296	errorCode := "UnknownError"
1297	errorMessage := errorCode
1298
1299	code := response.Header.Get("X-Amzn-ErrorType")
1300	if len(code) != 0 {
1301		errorCode = restjson.SanitizeErrorCode(code)
1302	}
1303
1304	var buff [1024]byte
1305	ringBuffer := smithyio.NewRingBuffer(buff[:])
1306
1307	body := io.TeeReader(errorBody, ringBuffer)
1308	decoder := json.NewDecoder(body)
1309	decoder.UseNumber()
1310	code, message, err := restjson.GetErrorInfo(decoder)
1311	if err != nil {
1312		var snapshot bytes.Buffer
1313		io.Copy(&snapshot, ringBuffer)
1314		err = &smithy.DeserializationError{
1315			Err:      fmt.Errorf("failed to decode response body, %w", err),
1316			Snapshot: snapshot.Bytes(),
1317		}
1318		return err
1319	}
1320
1321	errorBody.Seek(0, io.SeekStart)
1322	if len(code) != 0 {
1323		errorCode = restjson.SanitizeErrorCode(code)
1324	}
1325	if len(message) != 0 {
1326		errorMessage = message
1327	}
1328
1329	switch {
1330	case strings.EqualFold("BadRequestException", errorCode):
1331		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1332
1333	case strings.EqualFold("ForbiddenException", errorCode):
1334		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1335
1336	case strings.EqualFold("NotFoundException", errorCode):
1337		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1338
1339	case strings.EqualFold("ServiceFailureException", errorCode):
1340		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1341
1342	case strings.EqualFold("ServiceUnavailableException", errorCode):
1343		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1344
1345	case strings.EqualFold("ThrottledClientException", errorCode):
1346		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1347
1348	case strings.EqualFold("UnauthorizedClientException", errorCode):
1349		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1350
1351	default:
1352		genericError := &smithy.GenericAPIError{
1353			Code:    errorCode,
1354			Message: errorMessage,
1355		}
1356		return genericError
1357
1358	}
1359}
1360
1361func awsRestjson1_deserializeOpDocumentBatchUnsuspendUserOutput(v **BatchUnsuspendUserOutput, value interface{}) error {
1362	if v == nil {
1363		return fmt.Errorf("unexpected nil of type %T", v)
1364	}
1365	if value == nil {
1366		return nil
1367	}
1368
1369	shape, ok := value.(map[string]interface{})
1370	if !ok {
1371		return fmt.Errorf("unexpected JSON type %v", value)
1372	}
1373
1374	var sv *BatchUnsuspendUserOutput
1375	if *v == nil {
1376		sv = &BatchUnsuspendUserOutput{}
1377	} else {
1378		sv = *v
1379	}
1380
1381	for key, value := range shape {
1382		switch key {
1383		case "UserErrors":
1384			if err := awsRestjson1_deserializeDocumentUserErrorList(&sv.UserErrors, value); err != nil {
1385				return err
1386			}
1387
1388		default:
1389			_, _ = key, value
1390
1391		}
1392	}
1393	*v = sv
1394	return nil
1395}
1396
1397type awsRestjson1_deserializeOpBatchUpdatePhoneNumber struct {
1398}
1399
1400func (*awsRestjson1_deserializeOpBatchUpdatePhoneNumber) ID() string {
1401	return "OperationDeserializer"
1402}
1403
1404func (m *awsRestjson1_deserializeOpBatchUpdatePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1405	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1406) {
1407	out, metadata, err = next.HandleDeserialize(ctx, in)
1408	if err != nil {
1409		return out, metadata, err
1410	}
1411
1412	response, ok := out.RawResponse.(*smithyhttp.Response)
1413	if !ok {
1414		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1415	}
1416
1417	if response.StatusCode < 200 || response.StatusCode >= 300 {
1418		return out, metadata, awsRestjson1_deserializeOpErrorBatchUpdatePhoneNumber(response, &metadata)
1419	}
1420	output := &BatchUpdatePhoneNumberOutput{}
1421	out.Result = output
1422
1423	var buff [1024]byte
1424	ringBuffer := smithyio.NewRingBuffer(buff[:])
1425
1426	body := io.TeeReader(response.Body, ringBuffer)
1427
1428	decoder := json.NewDecoder(body)
1429	decoder.UseNumber()
1430	var shape interface{}
1431	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1432		var snapshot bytes.Buffer
1433		io.Copy(&snapshot, ringBuffer)
1434		err = &smithy.DeserializationError{
1435			Err:      fmt.Errorf("failed to decode response body, %w", err),
1436			Snapshot: snapshot.Bytes(),
1437		}
1438		return out, metadata, err
1439	}
1440
1441	err = awsRestjson1_deserializeOpDocumentBatchUpdatePhoneNumberOutput(&output, shape)
1442	if err != nil {
1443		var snapshot bytes.Buffer
1444		io.Copy(&snapshot, ringBuffer)
1445		return out, metadata, &smithy.DeserializationError{
1446			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1447			Snapshot: snapshot.Bytes(),
1448		}
1449	}
1450
1451	return out, metadata, err
1452}
1453
1454func awsRestjson1_deserializeOpErrorBatchUpdatePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1455	var errorBuffer bytes.Buffer
1456	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1457		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1458	}
1459	errorBody := bytes.NewReader(errorBuffer.Bytes())
1460
1461	errorCode := "UnknownError"
1462	errorMessage := errorCode
1463
1464	code := response.Header.Get("X-Amzn-ErrorType")
1465	if len(code) != 0 {
1466		errorCode = restjson.SanitizeErrorCode(code)
1467	}
1468
1469	var buff [1024]byte
1470	ringBuffer := smithyio.NewRingBuffer(buff[:])
1471
1472	body := io.TeeReader(errorBody, ringBuffer)
1473	decoder := json.NewDecoder(body)
1474	decoder.UseNumber()
1475	code, message, err := restjson.GetErrorInfo(decoder)
1476	if err != nil {
1477		var snapshot bytes.Buffer
1478		io.Copy(&snapshot, ringBuffer)
1479		err = &smithy.DeserializationError{
1480			Err:      fmt.Errorf("failed to decode response body, %w", err),
1481			Snapshot: snapshot.Bytes(),
1482		}
1483		return err
1484	}
1485
1486	errorBody.Seek(0, io.SeekStart)
1487	if len(code) != 0 {
1488		errorCode = restjson.SanitizeErrorCode(code)
1489	}
1490	if len(message) != 0 {
1491		errorMessage = message
1492	}
1493
1494	switch {
1495	case strings.EqualFold("BadRequestException", errorCode):
1496		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1497
1498	case strings.EqualFold("ForbiddenException", errorCode):
1499		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1500
1501	case strings.EqualFold("NotFoundException", errorCode):
1502		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1503
1504	case strings.EqualFold("ServiceFailureException", errorCode):
1505		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1506
1507	case strings.EqualFold("ServiceUnavailableException", errorCode):
1508		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1509
1510	case strings.EqualFold("ThrottledClientException", errorCode):
1511		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1512
1513	case strings.EqualFold("UnauthorizedClientException", errorCode):
1514		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1515
1516	default:
1517		genericError := &smithy.GenericAPIError{
1518			Code:    errorCode,
1519			Message: errorMessage,
1520		}
1521		return genericError
1522
1523	}
1524}
1525
1526func awsRestjson1_deserializeOpDocumentBatchUpdatePhoneNumberOutput(v **BatchUpdatePhoneNumberOutput, value interface{}) error {
1527	if v == nil {
1528		return fmt.Errorf("unexpected nil of type %T", v)
1529	}
1530	if value == nil {
1531		return nil
1532	}
1533
1534	shape, ok := value.(map[string]interface{})
1535	if !ok {
1536		return fmt.Errorf("unexpected JSON type %v", value)
1537	}
1538
1539	var sv *BatchUpdatePhoneNumberOutput
1540	if *v == nil {
1541		sv = &BatchUpdatePhoneNumberOutput{}
1542	} else {
1543		sv = *v
1544	}
1545
1546	for key, value := range shape {
1547		switch key {
1548		case "PhoneNumberErrors":
1549			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
1550				return err
1551			}
1552
1553		default:
1554			_, _ = key, value
1555
1556		}
1557	}
1558	*v = sv
1559	return nil
1560}
1561
1562type awsRestjson1_deserializeOpBatchUpdateUser struct {
1563}
1564
1565func (*awsRestjson1_deserializeOpBatchUpdateUser) ID() string {
1566	return "OperationDeserializer"
1567}
1568
1569func (m *awsRestjson1_deserializeOpBatchUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1570	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1571) {
1572	out, metadata, err = next.HandleDeserialize(ctx, in)
1573	if err != nil {
1574		return out, metadata, err
1575	}
1576
1577	response, ok := out.RawResponse.(*smithyhttp.Response)
1578	if !ok {
1579		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1580	}
1581
1582	if response.StatusCode < 200 || response.StatusCode >= 300 {
1583		return out, metadata, awsRestjson1_deserializeOpErrorBatchUpdateUser(response, &metadata)
1584	}
1585	output := &BatchUpdateUserOutput{}
1586	out.Result = output
1587
1588	var buff [1024]byte
1589	ringBuffer := smithyio.NewRingBuffer(buff[:])
1590
1591	body := io.TeeReader(response.Body, ringBuffer)
1592
1593	decoder := json.NewDecoder(body)
1594	decoder.UseNumber()
1595	var shape interface{}
1596	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1597		var snapshot bytes.Buffer
1598		io.Copy(&snapshot, ringBuffer)
1599		err = &smithy.DeserializationError{
1600			Err:      fmt.Errorf("failed to decode response body, %w", err),
1601			Snapshot: snapshot.Bytes(),
1602		}
1603		return out, metadata, err
1604	}
1605
1606	err = awsRestjson1_deserializeOpDocumentBatchUpdateUserOutput(&output, shape)
1607	if err != nil {
1608		var snapshot bytes.Buffer
1609		io.Copy(&snapshot, ringBuffer)
1610		return out, metadata, &smithy.DeserializationError{
1611			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1612			Snapshot: snapshot.Bytes(),
1613		}
1614	}
1615
1616	return out, metadata, err
1617}
1618
1619func awsRestjson1_deserializeOpErrorBatchUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1620	var errorBuffer bytes.Buffer
1621	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1622		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1623	}
1624	errorBody := bytes.NewReader(errorBuffer.Bytes())
1625
1626	errorCode := "UnknownError"
1627	errorMessage := errorCode
1628
1629	code := response.Header.Get("X-Amzn-ErrorType")
1630	if len(code) != 0 {
1631		errorCode = restjson.SanitizeErrorCode(code)
1632	}
1633
1634	var buff [1024]byte
1635	ringBuffer := smithyio.NewRingBuffer(buff[:])
1636
1637	body := io.TeeReader(errorBody, ringBuffer)
1638	decoder := json.NewDecoder(body)
1639	decoder.UseNumber()
1640	code, message, err := restjson.GetErrorInfo(decoder)
1641	if err != nil {
1642		var snapshot bytes.Buffer
1643		io.Copy(&snapshot, ringBuffer)
1644		err = &smithy.DeserializationError{
1645			Err:      fmt.Errorf("failed to decode response body, %w", err),
1646			Snapshot: snapshot.Bytes(),
1647		}
1648		return err
1649	}
1650
1651	errorBody.Seek(0, io.SeekStart)
1652	if len(code) != 0 {
1653		errorCode = restjson.SanitizeErrorCode(code)
1654	}
1655	if len(message) != 0 {
1656		errorMessage = message
1657	}
1658
1659	switch {
1660	case strings.EqualFold("BadRequestException", errorCode):
1661		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1662
1663	case strings.EqualFold("ForbiddenException", errorCode):
1664		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1665
1666	case strings.EqualFold("NotFoundException", errorCode):
1667		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1668
1669	case strings.EqualFold("ServiceFailureException", errorCode):
1670		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1671
1672	case strings.EqualFold("ServiceUnavailableException", errorCode):
1673		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1674
1675	case strings.EqualFold("ThrottledClientException", errorCode):
1676		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1677
1678	case strings.EqualFold("UnauthorizedClientException", errorCode):
1679		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1680
1681	default:
1682		genericError := &smithy.GenericAPIError{
1683			Code:    errorCode,
1684			Message: errorMessage,
1685		}
1686		return genericError
1687
1688	}
1689}
1690
1691func awsRestjson1_deserializeOpDocumentBatchUpdateUserOutput(v **BatchUpdateUserOutput, value interface{}) error {
1692	if v == nil {
1693		return fmt.Errorf("unexpected nil of type %T", v)
1694	}
1695	if value == nil {
1696		return nil
1697	}
1698
1699	shape, ok := value.(map[string]interface{})
1700	if !ok {
1701		return fmt.Errorf("unexpected JSON type %v", value)
1702	}
1703
1704	var sv *BatchUpdateUserOutput
1705	if *v == nil {
1706		sv = &BatchUpdateUserOutput{}
1707	} else {
1708		sv = *v
1709	}
1710
1711	for key, value := range shape {
1712		switch key {
1713		case "UserErrors":
1714			if err := awsRestjson1_deserializeDocumentUserErrorList(&sv.UserErrors, value); err != nil {
1715				return err
1716			}
1717
1718		default:
1719			_, _ = key, value
1720
1721		}
1722	}
1723	*v = sv
1724	return nil
1725}
1726
1727type awsRestjson1_deserializeOpCreateAccount struct {
1728}
1729
1730func (*awsRestjson1_deserializeOpCreateAccount) ID() string {
1731	return "OperationDeserializer"
1732}
1733
1734func (m *awsRestjson1_deserializeOpCreateAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1735	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1736) {
1737	out, metadata, err = next.HandleDeserialize(ctx, in)
1738	if err != nil {
1739		return out, metadata, err
1740	}
1741
1742	response, ok := out.RawResponse.(*smithyhttp.Response)
1743	if !ok {
1744		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1745	}
1746
1747	if response.StatusCode < 200 || response.StatusCode >= 300 {
1748		return out, metadata, awsRestjson1_deserializeOpErrorCreateAccount(response, &metadata)
1749	}
1750	output := &CreateAccountOutput{}
1751	out.Result = output
1752
1753	var buff [1024]byte
1754	ringBuffer := smithyio.NewRingBuffer(buff[:])
1755
1756	body := io.TeeReader(response.Body, ringBuffer)
1757
1758	decoder := json.NewDecoder(body)
1759	decoder.UseNumber()
1760	var shape interface{}
1761	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1762		var snapshot bytes.Buffer
1763		io.Copy(&snapshot, ringBuffer)
1764		err = &smithy.DeserializationError{
1765			Err:      fmt.Errorf("failed to decode response body, %w", err),
1766			Snapshot: snapshot.Bytes(),
1767		}
1768		return out, metadata, err
1769	}
1770
1771	err = awsRestjson1_deserializeOpDocumentCreateAccountOutput(&output, shape)
1772	if err != nil {
1773		var snapshot bytes.Buffer
1774		io.Copy(&snapshot, ringBuffer)
1775		return out, metadata, &smithy.DeserializationError{
1776			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1777			Snapshot: snapshot.Bytes(),
1778		}
1779	}
1780
1781	return out, metadata, err
1782}
1783
1784func awsRestjson1_deserializeOpErrorCreateAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1785	var errorBuffer bytes.Buffer
1786	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1787		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1788	}
1789	errorBody := bytes.NewReader(errorBuffer.Bytes())
1790
1791	errorCode := "UnknownError"
1792	errorMessage := errorCode
1793
1794	code := response.Header.Get("X-Amzn-ErrorType")
1795	if len(code) != 0 {
1796		errorCode = restjson.SanitizeErrorCode(code)
1797	}
1798
1799	var buff [1024]byte
1800	ringBuffer := smithyio.NewRingBuffer(buff[:])
1801
1802	body := io.TeeReader(errorBody, ringBuffer)
1803	decoder := json.NewDecoder(body)
1804	decoder.UseNumber()
1805	code, message, err := restjson.GetErrorInfo(decoder)
1806	if err != nil {
1807		var snapshot bytes.Buffer
1808		io.Copy(&snapshot, ringBuffer)
1809		err = &smithy.DeserializationError{
1810			Err:      fmt.Errorf("failed to decode response body, %w", err),
1811			Snapshot: snapshot.Bytes(),
1812		}
1813		return err
1814	}
1815
1816	errorBody.Seek(0, io.SeekStart)
1817	if len(code) != 0 {
1818		errorCode = restjson.SanitizeErrorCode(code)
1819	}
1820	if len(message) != 0 {
1821		errorMessage = message
1822	}
1823
1824	switch {
1825	case strings.EqualFold("BadRequestException", errorCode):
1826		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1827
1828	case strings.EqualFold("ForbiddenException", errorCode):
1829		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1830
1831	case strings.EqualFold("NotFoundException", errorCode):
1832		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
1833
1834	case strings.EqualFold("ServiceFailureException", errorCode):
1835		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
1836
1837	case strings.EqualFold("ServiceUnavailableException", errorCode):
1838		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
1839
1840	case strings.EqualFold("ThrottledClientException", errorCode):
1841		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
1842
1843	case strings.EqualFold("UnauthorizedClientException", errorCode):
1844		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
1845
1846	default:
1847		genericError := &smithy.GenericAPIError{
1848			Code:    errorCode,
1849			Message: errorMessage,
1850		}
1851		return genericError
1852
1853	}
1854}
1855
1856func awsRestjson1_deserializeOpDocumentCreateAccountOutput(v **CreateAccountOutput, value interface{}) error {
1857	if v == nil {
1858		return fmt.Errorf("unexpected nil of type %T", v)
1859	}
1860	if value == nil {
1861		return nil
1862	}
1863
1864	shape, ok := value.(map[string]interface{})
1865	if !ok {
1866		return fmt.Errorf("unexpected JSON type %v", value)
1867	}
1868
1869	var sv *CreateAccountOutput
1870	if *v == nil {
1871		sv = &CreateAccountOutput{}
1872	} else {
1873		sv = *v
1874	}
1875
1876	for key, value := range shape {
1877		switch key {
1878		case "Account":
1879			if err := awsRestjson1_deserializeDocumentAccount(&sv.Account, value); err != nil {
1880				return err
1881			}
1882
1883		default:
1884			_, _ = key, value
1885
1886		}
1887	}
1888	*v = sv
1889	return nil
1890}
1891
1892type awsRestjson1_deserializeOpCreateAppInstance struct {
1893}
1894
1895func (*awsRestjson1_deserializeOpCreateAppInstance) ID() string {
1896	return "OperationDeserializer"
1897}
1898
1899func (m *awsRestjson1_deserializeOpCreateAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
1900	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
1901) {
1902	out, metadata, err = next.HandleDeserialize(ctx, in)
1903	if err != nil {
1904		return out, metadata, err
1905	}
1906
1907	response, ok := out.RawResponse.(*smithyhttp.Response)
1908	if !ok {
1909		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
1910	}
1911
1912	if response.StatusCode < 200 || response.StatusCode >= 300 {
1913		return out, metadata, awsRestjson1_deserializeOpErrorCreateAppInstance(response, &metadata)
1914	}
1915	output := &CreateAppInstanceOutput{}
1916	out.Result = output
1917
1918	var buff [1024]byte
1919	ringBuffer := smithyio.NewRingBuffer(buff[:])
1920
1921	body := io.TeeReader(response.Body, ringBuffer)
1922
1923	decoder := json.NewDecoder(body)
1924	decoder.UseNumber()
1925	var shape interface{}
1926	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
1927		var snapshot bytes.Buffer
1928		io.Copy(&snapshot, ringBuffer)
1929		err = &smithy.DeserializationError{
1930			Err:      fmt.Errorf("failed to decode response body, %w", err),
1931			Snapshot: snapshot.Bytes(),
1932		}
1933		return out, metadata, err
1934	}
1935
1936	err = awsRestjson1_deserializeOpDocumentCreateAppInstanceOutput(&output, shape)
1937	if err != nil {
1938		var snapshot bytes.Buffer
1939		io.Copy(&snapshot, ringBuffer)
1940		return out, metadata, &smithy.DeserializationError{
1941			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
1942			Snapshot: snapshot.Bytes(),
1943		}
1944	}
1945
1946	return out, metadata, err
1947}
1948
1949func awsRestjson1_deserializeOpErrorCreateAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
1950	var errorBuffer bytes.Buffer
1951	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
1952		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
1953	}
1954	errorBody := bytes.NewReader(errorBuffer.Bytes())
1955
1956	errorCode := "UnknownError"
1957	errorMessage := errorCode
1958
1959	code := response.Header.Get("X-Amzn-ErrorType")
1960	if len(code) != 0 {
1961		errorCode = restjson.SanitizeErrorCode(code)
1962	}
1963
1964	var buff [1024]byte
1965	ringBuffer := smithyio.NewRingBuffer(buff[:])
1966
1967	body := io.TeeReader(errorBody, ringBuffer)
1968	decoder := json.NewDecoder(body)
1969	decoder.UseNumber()
1970	code, message, err := restjson.GetErrorInfo(decoder)
1971	if err != nil {
1972		var snapshot bytes.Buffer
1973		io.Copy(&snapshot, ringBuffer)
1974		err = &smithy.DeserializationError{
1975			Err:      fmt.Errorf("failed to decode response body, %w", err),
1976			Snapshot: snapshot.Bytes(),
1977		}
1978		return err
1979	}
1980
1981	errorBody.Seek(0, io.SeekStart)
1982	if len(code) != 0 {
1983		errorCode = restjson.SanitizeErrorCode(code)
1984	}
1985	if len(message) != 0 {
1986		errorMessage = message
1987	}
1988
1989	switch {
1990	case strings.EqualFold("BadRequestException", errorCode):
1991		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
1992
1993	case strings.EqualFold("ConflictException", errorCode):
1994		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
1995
1996	case strings.EqualFold("ForbiddenException", errorCode):
1997		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
1998
1999	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2000		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2001
2002	case strings.EqualFold("ServiceFailureException", errorCode):
2003		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2004
2005	case strings.EqualFold("ServiceUnavailableException", errorCode):
2006		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2007
2008	case strings.EqualFold("ThrottledClientException", errorCode):
2009		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2010
2011	case strings.EqualFold("UnauthorizedClientException", errorCode):
2012		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2013
2014	default:
2015		genericError := &smithy.GenericAPIError{
2016			Code:    errorCode,
2017			Message: errorMessage,
2018		}
2019		return genericError
2020
2021	}
2022}
2023
2024func awsRestjson1_deserializeOpDocumentCreateAppInstanceOutput(v **CreateAppInstanceOutput, value interface{}) error {
2025	if v == nil {
2026		return fmt.Errorf("unexpected nil of type %T", v)
2027	}
2028	if value == nil {
2029		return nil
2030	}
2031
2032	shape, ok := value.(map[string]interface{})
2033	if !ok {
2034		return fmt.Errorf("unexpected JSON type %v", value)
2035	}
2036
2037	var sv *CreateAppInstanceOutput
2038	if *v == nil {
2039		sv = &CreateAppInstanceOutput{}
2040	} else {
2041		sv = *v
2042	}
2043
2044	for key, value := range shape {
2045		switch key {
2046		case "AppInstanceArn":
2047			if value != nil {
2048				jtv, ok := value.(string)
2049				if !ok {
2050					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2051				}
2052				sv.AppInstanceArn = ptr.String(jtv)
2053			}
2054
2055		default:
2056			_, _ = key, value
2057
2058		}
2059	}
2060	*v = sv
2061	return nil
2062}
2063
2064type awsRestjson1_deserializeOpCreateAppInstanceAdmin struct {
2065}
2066
2067func (*awsRestjson1_deserializeOpCreateAppInstanceAdmin) ID() string {
2068	return "OperationDeserializer"
2069}
2070
2071func (m *awsRestjson1_deserializeOpCreateAppInstanceAdmin) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2072	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2073) {
2074	out, metadata, err = next.HandleDeserialize(ctx, in)
2075	if err != nil {
2076		return out, metadata, err
2077	}
2078
2079	response, ok := out.RawResponse.(*smithyhttp.Response)
2080	if !ok {
2081		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2082	}
2083
2084	if response.StatusCode < 200 || response.StatusCode >= 300 {
2085		return out, metadata, awsRestjson1_deserializeOpErrorCreateAppInstanceAdmin(response, &metadata)
2086	}
2087	output := &CreateAppInstanceAdminOutput{}
2088	out.Result = output
2089
2090	var buff [1024]byte
2091	ringBuffer := smithyio.NewRingBuffer(buff[:])
2092
2093	body := io.TeeReader(response.Body, ringBuffer)
2094
2095	decoder := json.NewDecoder(body)
2096	decoder.UseNumber()
2097	var shape interface{}
2098	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2099		var snapshot bytes.Buffer
2100		io.Copy(&snapshot, ringBuffer)
2101		err = &smithy.DeserializationError{
2102			Err:      fmt.Errorf("failed to decode response body, %w", err),
2103			Snapshot: snapshot.Bytes(),
2104		}
2105		return out, metadata, err
2106	}
2107
2108	err = awsRestjson1_deserializeOpDocumentCreateAppInstanceAdminOutput(&output, shape)
2109	if err != nil {
2110		var snapshot bytes.Buffer
2111		io.Copy(&snapshot, ringBuffer)
2112		return out, metadata, &smithy.DeserializationError{
2113			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2114			Snapshot: snapshot.Bytes(),
2115		}
2116	}
2117
2118	return out, metadata, err
2119}
2120
2121func awsRestjson1_deserializeOpErrorCreateAppInstanceAdmin(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2122	var errorBuffer bytes.Buffer
2123	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2124		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2125	}
2126	errorBody := bytes.NewReader(errorBuffer.Bytes())
2127
2128	errorCode := "UnknownError"
2129	errorMessage := errorCode
2130
2131	code := response.Header.Get("X-Amzn-ErrorType")
2132	if len(code) != 0 {
2133		errorCode = restjson.SanitizeErrorCode(code)
2134	}
2135
2136	var buff [1024]byte
2137	ringBuffer := smithyio.NewRingBuffer(buff[:])
2138
2139	body := io.TeeReader(errorBody, ringBuffer)
2140	decoder := json.NewDecoder(body)
2141	decoder.UseNumber()
2142	code, message, err := restjson.GetErrorInfo(decoder)
2143	if err != nil {
2144		var snapshot bytes.Buffer
2145		io.Copy(&snapshot, ringBuffer)
2146		err = &smithy.DeserializationError{
2147			Err:      fmt.Errorf("failed to decode response body, %w", err),
2148			Snapshot: snapshot.Bytes(),
2149		}
2150		return err
2151	}
2152
2153	errorBody.Seek(0, io.SeekStart)
2154	if len(code) != 0 {
2155		errorCode = restjson.SanitizeErrorCode(code)
2156	}
2157	if len(message) != 0 {
2158		errorMessage = message
2159	}
2160
2161	switch {
2162	case strings.EqualFold("BadRequestException", errorCode):
2163		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2164
2165	case strings.EqualFold("ConflictException", errorCode):
2166		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
2167
2168	case strings.EqualFold("ForbiddenException", errorCode):
2169		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2170
2171	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2172		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2173
2174	case strings.EqualFold("ServiceFailureException", errorCode):
2175		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2176
2177	case strings.EqualFold("ServiceUnavailableException", errorCode):
2178		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2179
2180	case strings.EqualFold("ThrottledClientException", errorCode):
2181		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2182
2183	case strings.EqualFold("UnauthorizedClientException", errorCode):
2184		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2185
2186	default:
2187		genericError := &smithy.GenericAPIError{
2188			Code:    errorCode,
2189			Message: errorMessage,
2190		}
2191		return genericError
2192
2193	}
2194}
2195
2196func awsRestjson1_deserializeOpDocumentCreateAppInstanceAdminOutput(v **CreateAppInstanceAdminOutput, value interface{}) error {
2197	if v == nil {
2198		return fmt.Errorf("unexpected nil of type %T", v)
2199	}
2200	if value == nil {
2201		return nil
2202	}
2203
2204	shape, ok := value.(map[string]interface{})
2205	if !ok {
2206		return fmt.Errorf("unexpected JSON type %v", value)
2207	}
2208
2209	var sv *CreateAppInstanceAdminOutput
2210	if *v == nil {
2211		sv = &CreateAppInstanceAdminOutput{}
2212	} else {
2213		sv = *v
2214	}
2215
2216	for key, value := range shape {
2217		switch key {
2218		case "AppInstanceAdmin":
2219			if err := awsRestjson1_deserializeDocumentIdentity(&sv.AppInstanceAdmin, value); err != nil {
2220				return err
2221			}
2222
2223		case "AppInstanceArn":
2224			if value != nil {
2225				jtv, ok := value.(string)
2226				if !ok {
2227					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2228				}
2229				sv.AppInstanceArn = ptr.String(jtv)
2230			}
2231
2232		default:
2233			_, _ = key, value
2234
2235		}
2236	}
2237	*v = sv
2238	return nil
2239}
2240
2241type awsRestjson1_deserializeOpCreateAppInstanceUser struct {
2242}
2243
2244func (*awsRestjson1_deserializeOpCreateAppInstanceUser) ID() string {
2245	return "OperationDeserializer"
2246}
2247
2248func (m *awsRestjson1_deserializeOpCreateAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2249	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2250) {
2251	out, metadata, err = next.HandleDeserialize(ctx, in)
2252	if err != nil {
2253		return out, metadata, err
2254	}
2255
2256	response, ok := out.RawResponse.(*smithyhttp.Response)
2257	if !ok {
2258		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2259	}
2260
2261	if response.StatusCode < 200 || response.StatusCode >= 300 {
2262		return out, metadata, awsRestjson1_deserializeOpErrorCreateAppInstanceUser(response, &metadata)
2263	}
2264	output := &CreateAppInstanceUserOutput{}
2265	out.Result = output
2266
2267	var buff [1024]byte
2268	ringBuffer := smithyio.NewRingBuffer(buff[:])
2269
2270	body := io.TeeReader(response.Body, ringBuffer)
2271
2272	decoder := json.NewDecoder(body)
2273	decoder.UseNumber()
2274	var shape interface{}
2275	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2276		var snapshot bytes.Buffer
2277		io.Copy(&snapshot, ringBuffer)
2278		err = &smithy.DeserializationError{
2279			Err:      fmt.Errorf("failed to decode response body, %w", err),
2280			Snapshot: snapshot.Bytes(),
2281		}
2282		return out, metadata, err
2283	}
2284
2285	err = awsRestjson1_deserializeOpDocumentCreateAppInstanceUserOutput(&output, shape)
2286	if err != nil {
2287		var snapshot bytes.Buffer
2288		io.Copy(&snapshot, ringBuffer)
2289		return out, metadata, &smithy.DeserializationError{
2290			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2291			Snapshot: snapshot.Bytes(),
2292		}
2293	}
2294
2295	return out, metadata, err
2296}
2297
2298func awsRestjson1_deserializeOpErrorCreateAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2299	var errorBuffer bytes.Buffer
2300	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2301		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2302	}
2303	errorBody := bytes.NewReader(errorBuffer.Bytes())
2304
2305	errorCode := "UnknownError"
2306	errorMessage := errorCode
2307
2308	code := response.Header.Get("X-Amzn-ErrorType")
2309	if len(code) != 0 {
2310		errorCode = restjson.SanitizeErrorCode(code)
2311	}
2312
2313	var buff [1024]byte
2314	ringBuffer := smithyio.NewRingBuffer(buff[:])
2315
2316	body := io.TeeReader(errorBody, ringBuffer)
2317	decoder := json.NewDecoder(body)
2318	decoder.UseNumber()
2319	code, message, err := restjson.GetErrorInfo(decoder)
2320	if err != nil {
2321		var snapshot bytes.Buffer
2322		io.Copy(&snapshot, ringBuffer)
2323		err = &smithy.DeserializationError{
2324			Err:      fmt.Errorf("failed to decode response body, %w", err),
2325			Snapshot: snapshot.Bytes(),
2326		}
2327		return err
2328	}
2329
2330	errorBody.Seek(0, io.SeekStart)
2331	if len(code) != 0 {
2332		errorCode = restjson.SanitizeErrorCode(code)
2333	}
2334	if len(message) != 0 {
2335		errorMessage = message
2336	}
2337
2338	switch {
2339	case strings.EqualFold("BadRequestException", errorCode):
2340		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2341
2342	case strings.EqualFold("ConflictException", errorCode):
2343		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
2344
2345	case strings.EqualFold("ForbiddenException", errorCode):
2346		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2347
2348	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2349		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2350
2351	case strings.EqualFold("ServiceFailureException", errorCode):
2352		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2353
2354	case strings.EqualFold("ServiceUnavailableException", errorCode):
2355		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2356
2357	case strings.EqualFold("ThrottledClientException", errorCode):
2358		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2359
2360	case strings.EqualFold("UnauthorizedClientException", errorCode):
2361		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2362
2363	default:
2364		genericError := &smithy.GenericAPIError{
2365			Code:    errorCode,
2366			Message: errorMessage,
2367		}
2368		return genericError
2369
2370	}
2371}
2372
2373func awsRestjson1_deserializeOpDocumentCreateAppInstanceUserOutput(v **CreateAppInstanceUserOutput, value interface{}) error {
2374	if v == nil {
2375		return fmt.Errorf("unexpected nil of type %T", v)
2376	}
2377	if value == nil {
2378		return nil
2379	}
2380
2381	shape, ok := value.(map[string]interface{})
2382	if !ok {
2383		return fmt.Errorf("unexpected JSON type %v", value)
2384	}
2385
2386	var sv *CreateAppInstanceUserOutput
2387	if *v == nil {
2388		sv = &CreateAppInstanceUserOutput{}
2389	} else {
2390		sv = *v
2391	}
2392
2393	for key, value := range shape {
2394		switch key {
2395		case "AppInstanceUserArn":
2396			if value != nil {
2397				jtv, ok := value.(string)
2398				if !ok {
2399					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2400				}
2401				sv.AppInstanceUserArn = ptr.String(jtv)
2402			}
2403
2404		default:
2405			_, _ = key, value
2406
2407		}
2408	}
2409	*v = sv
2410	return nil
2411}
2412
2413type awsRestjson1_deserializeOpCreateAttendee struct {
2414}
2415
2416func (*awsRestjson1_deserializeOpCreateAttendee) ID() string {
2417	return "OperationDeserializer"
2418}
2419
2420func (m *awsRestjson1_deserializeOpCreateAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2421	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2422) {
2423	out, metadata, err = next.HandleDeserialize(ctx, in)
2424	if err != nil {
2425		return out, metadata, err
2426	}
2427
2428	response, ok := out.RawResponse.(*smithyhttp.Response)
2429	if !ok {
2430		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2431	}
2432
2433	if response.StatusCode < 200 || response.StatusCode >= 300 {
2434		return out, metadata, awsRestjson1_deserializeOpErrorCreateAttendee(response, &metadata)
2435	}
2436	output := &CreateAttendeeOutput{}
2437	out.Result = output
2438
2439	var buff [1024]byte
2440	ringBuffer := smithyio.NewRingBuffer(buff[:])
2441
2442	body := io.TeeReader(response.Body, ringBuffer)
2443
2444	decoder := json.NewDecoder(body)
2445	decoder.UseNumber()
2446	var shape interface{}
2447	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2448		var snapshot bytes.Buffer
2449		io.Copy(&snapshot, ringBuffer)
2450		err = &smithy.DeserializationError{
2451			Err:      fmt.Errorf("failed to decode response body, %w", err),
2452			Snapshot: snapshot.Bytes(),
2453		}
2454		return out, metadata, err
2455	}
2456
2457	err = awsRestjson1_deserializeOpDocumentCreateAttendeeOutput(&output, shape)
2458	if err != nil {
2459		var snapshot bytes.Buffer
2460		io.Copy(&snapshot, ringBuffer)
2461		return out, metadata, &smithy.DeserializationError{
2462			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2463			Snapshot: snapshot.Bytes(),
2464		}
2465	}
2466
2467	return out, metadata, err
2468}
2469
2470func awsRestjson1_deserializeOpErrorCreateAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2471	var errorBuffer bytes.Buffer
2472	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2473		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2474	}
2475	errorBody := bytes.NewReader(errorBuffer.Bytes())
2476
2477	errorCode := "UnknownError"
2478	errorMessage := errorCode
2479
2480	code := response.Header.Get("X-Amzn-ErrorType")
2481	if len(code) != 0 {
2482		errorCode = restjson.SanitizeErrorCode(code)
2483	}
2484
2485	var buff [1024]byte
2486	ringBuffer := smithyio.NewRingBuffer(buff[:])
2487
2488	body := io.TeeReader(errorBody, ringBuffer)
2489	decoder := json.NewDecoder(body)
2490	decoder.UseNumber()
2491	code, message, err := restjson.GetErrorInfo(decoder)
2492	if err != nil {
2493		var snapshot bytes.Buffer
2494		io.Copy(&snapshot, ringBuffer)
2495		err = &smithy.DeserializationError{
2496			Err:      fmt.Errorf("failed to decode response body, %w", err),
2497			Snapshot: snapshot.Bytes(),
2498		}
2499		return err
2500	}
2501
2502	errorBody.Seek(0, io.SeekStart)
2503	if len(code) != 0 {
2504		errorCode = restjson.SanitizeErrorCode(code)
2505	}
2506	if len(message) != 0 {
2507		errorMessage = message
2508	}
2509
2510	switch {
2511	case strings.EqualFold("BadRequestException", errorCode):
2512		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2513
2514	case strings.EqualFold("ForbiddenException", errorCode):
2515		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2516
2517	case strings.EqualFold("NotFoundException", errorCode):
2518		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
2519
2520	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2521		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2522
2523	case strings.EqualFold("ServiceFailureException", errorCode):
2524		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2525
2526	case strings.EqualFold("ServiceUnavailableException", errorCode):
2527		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2528
2529	case strings.EqualFold("ThrottledClientException", errorCode):
2530		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2531
2532	case strings.EqualFold("UnauthorizedClientException", errorCode):
2533		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2534
2535	default:
2536		genericError := &smithy.GenericAPIError{
2537			Code:    errorCode,
2538			Message: errorMessage,
2539		}
2540		return genericError
2541
2542	}
2543}
2544
2545func awsRestjson1_deserializeOpDocumentCreateAttendeeOutput(v **CreateAttendeeOutput, value interface{}) error {
2546	if v == nil {
2547		return fmt.Errorf("unexpected nil of type %T", v)
2548	}
2549	if value == nil {
2550		return nil
2551	}
2552
2553	shape, ok := value.(map[string]interface{})
2554	if !ok {
2555		return fmt.Errorf("unexpected JSON type %v", value)
2556	}
2557
2558	var sv *CreateAttendeeOutput
2559	if *v == nil {
2560		sv = &CreateAttendeeOutput{}
2561	} else {
2562		sv = *v
2563	}
2564
2565	for key, value := range shape {
2566		switch key {
2567		case "Attendee":
2568			if err := awsRestjson1_deserializeDocumentAttendee(&sv.Attendee, value); err != nil {
2569				return err
2570			}
2571
2572		default:
2573			_, _ = key, value
2574
2575		}
2576	}
2577	*v = sv
2578	return nil
2579}
2580
2581type awsRestjson1_deserializeOpCreateBot struct {
2582}
2583
2584func (*awsRestjson1_deserializeOpCreateBot) ID() string {
2585	return "OperationDeserializer"
2586}
2587
2588func (m *awsRestjson1_deserializeOpCreateBot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2589	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2590) {
2591	out, metadata, err = next.HandleDeserialize(ctx, in)
2592	if err != nil {
2593		return out, metadata, err
2594	}
2595
2596	response, ok := out.RawResponse.(*smithyhttp.Response)
2597	if !ok {
2598		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2599	}
2600
2601	if response.StatusCode < 200 || response.StatusCode >= 300 {
2602		return out, metadata, awsRestjson1_deserializeOpErrorCreateBot(response, &metadata)
2603	}
2604	output := &CreateBotOutput{}
2605	out.Result = output
2606
2607	var buff [1024]byte
2608	ringBuffer := smithyio.NewRingBuffer(buff[:])
2609
2610	body := io.TeeReader(response.Body, ringBuffer)
2611
2612	decoder := json.NewDecoder(body)
2613	decoder.UseNumber()
2614	var shape interface{}
2615	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2616		var snapshot bytes.Buffer
2617		io.Copy(&snapshot, ringBuffer)
2618		err = &smithy.DeserializationError{
2619			Err:      fmt.Errorf("failed to decode response body, %w", err),
2620			Snapshot: snapshot.Bytes(),
2621		}
2622		return out, metadata, err
2623	}
2624
2625	err = awsRestjson1_deserializeOpDocumentCreateBotOutput(&output, shape)
2626	if err != nil {
2627		var snapshot bytes.Buffer
2628		io.Copy(&snapshot, ringBuffer)
2629		return out, metadata, &smithy.DeserializationError{
2630			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2631			Snapshot: snapshot.Bytes(),
2632		}
2633	}
2634
2635	return out, metadata, err
2636}
2637
2638func awsRestjson1_deserializeOpErrorCreateBot(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2639	var errorBuffer bytes.Buffer
2640	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2641		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2642	}
2643	errorBody := bytes.NewReader(errorBuffer.Bytes())
2644
2645	errorCode := "UnknownError"
2646	errorMessage := errorCode
2647
2648	code := response.Header.Get("X-Amzn-ErrorType")
2649	if len(code) != 0 {
2650		errorCode = restjson.SanitizeErrorCode(code)
2651	}
2652
2653	var buff [1024]byte
2654	ringBuffer := smithyio.NewRingBuffer(buff[:])
2655
2656	body := io.TeeReader(errorBody, ringBuffer)
2657	decoder := json.NewDecoder(body)
2658	decoder.UseNumber()
2659	code, message, err := restjson.GetErrorInfo(decoder)
2660	if err != nil {
2661		var snapshot bytes.Buffer
2662		io.Copy(&snapshot, ringBuffer)
2663		err = &smithy.DeserializationError{
2664			Err:      fmt.Errorf("failed to decode response body, %w", err),
2665			Snapshot: snapshot.Bytes(),
2666		}
2667		return err
2668	}
2669
2670	errorBody.Seek(0, io.SeekStart)
2671	if len(code) != 0 {
2672		errorCode = restjson.SanitizeErrorCode(code)
2673	}
2674	if len(message) != 0 {
2675		errorMessage = message
2676	}
2677
2678	switch {
2679	case strings.EqualFold("BadRequestException", errorCode):
2680		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2681
2682	case strings.EqualFold("ForbiddenException", errorCode):
2683		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2684
2685	case strings.EqualFold("NotFoundException", errorCode):
2686		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
2687
2688	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2689		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2690
2691	case strings.EqualFold("ServiceFailureException", errorCode):
2692		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2693
2694	case strings.EqualFold("ServiceUnavailableException", errorCode):
2695		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2696
2697	case strings.EqualFold("ThrottledClientException", errorCode):
2698		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2699
2700	case strings.EqualFold("UnauthorizedClientException", errorCode):
2701		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2702
2703	default:
2704		genericError := &smithy.GenericAPIError{
2705			Code:    errorCode,
2706			Message: errorMessage,
2707		}
2708		return genericError
2709
2710	}
2711}
2712
2713func awsRestjson1_deserializeOpDocumentCreateBotOutput(v **CreateBotOutput, value interface{}) error {
2714	if v == nil {
2715		return fmt.Errorf("unexpected nil of type %T", v)
2716	}
2717	if value == nil {
2718		return nil
2719	}
2720
2721	shape, ok := value.(map[string]interface{})
2722	if !ok {
2723		return fmt.Errorf("unexpected JSON type %v", value)
2724	}
2725
2726	var sv *CreateBotOutput
2727	if *v == nil {
2728		sv = &CreateBotOutput{}
2729	} else {
2730		sv = *v
2731	}
2732
2733	for key, value := range shape {
2734		switch key {
2735		case "Bot":
2736			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
2737				return err
2738			}
2739
2740		default:
2741			_, _ = key, value
2742
2743		}
2744	}
2745	*v = sv
2746	return nil
2747}
2748
2749type awsRestjson1_deserializeOpCreateChannel struct {
2750}
2751
2752func (*awsRestjson1_deserializeOpCreateChannel) ID() string {
2753	return "OperationDeserializer"
2754}
2755
2756func (m *awsRestjson1_deserializeOpCreateChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2757	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2758) {
2759	out, metadata, err = next.HandleDeserialize(ctx, in)
2760	if err != nil {
2761		return out, metadata, err
2762	}
2763
2764	response, ok := out.RawResponse.(*smithyhttp.Response)
2765	if !ok {
2766		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2767	}
2768
2769	if response.StatusCode < 200 || response.StatusCode >= 300 {
2770		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannel(response, &metadata)
2771	}
2772	output := &CreateChannelOutput{}
2773	out.Result = output
2774
2775	var buff [1024]byte
2776	ringBuffer := smithyio.NewRingBuffer(buff[:])
2777
2778	body := io.TeeReader(response.Body, ringBuffer)
2779
2780	decoder := json.NewDecoder(body)
2781	decoder.UseNumber()
2782	var shape interface{}
2783	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2784		var snapshot bytes.Buffer
2785		io.Copy(&snapshot, ringBuffer)
2786		err = &smithy.DeserializationError{
2787			Err:      fmt.Errorf("failed to decode response body, %w", err),
2788			Snapshot: snapshot.Bytes(),
2789		}
2790		return out, metadata, err
2791	}
2792
2793	err = awsRestjson1_deserializeOpDocumentCreateChannelOutput(&output, shape)
2794	if err != nil {
2795		var snapshot bytes.Buffer
2796		io.Copy(&snapshot, ringBuffer)
2797		return out, metadata, &smithy.DeserializationError{
2798			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2799			Snapshot: snapshot.Bytes(),
2800		}
2801	}
2802
2803	return out, metadata, err
2804}
2805
2806func awsRestjson1_deserializeOpErrorCreateChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2807	var errorBuffer bytes.Buffer
2808	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2809		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2810	}
2811	errorBody := bytes.NewReader(errorBuffer.Bytes())
2812
2813	errorCode := "UnknownError"
2814	errorMessage := errorCode
2815
2816	code := response.Header.Get("X-Amzn-ErrorType")
2817	if len(code) != 0 {
2818		errorCode = restjson.SanitizeErrorCode(code)
2819	}
2820
2821	var buff [1024]byte
2822	ringBuffer := smithyio.NewRingBuffer(buff[:])
2823
2824	body := io.TeeReader(errorBody, ringBuffer)
2825	decoder := json.NewDecoder(body)
2826	decoder.UseNumber()
2827	code, message, err := restjson.GetErrorInfo(decoder)
2828	if err != nil {
2829		var snapshot bytes.Buffer
2830		io.Copy(&snapshot, ringBuffer)
2831		err = &smithy.DeserializationError{
2832			Err:      fmt.Errorf("failed to decode response body, %w", err),
2833			Snapshot: snapshot.Bytes(),
2834		}
2835		return err
2836	}
2837
2838	errorBody.Seek(0, io.SeekStart)
2839	if len(code) != 0 {
2840		errorCode = restjson.SanitizeErrorCode(code)
2841	}
2842	if len(message) != 0 {
2843		errorMessage = message
2844	}
2845
2846	switch {
2847	case strings.EqualFold("BadRequestException", errorCode):
2848		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
2849
2850	case strings.EqualFold("ConflictException", errorCode):
2851		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
2852
2853	case strings.EqualFold("ForbiddenException", errorCode):
2854		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
2855
2856	case strings.EqualFold("ResourceLimitExceededException", errorCode):
2857		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
2858
2859	case strings.EqualFold("ServiceFailureException", errorCode):
2860		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
2861
2862	case strings.EqualFold("ServiceUnavailableException", errorCode):
2863		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
2864
2865	case strings.EqualFold("ThrottledClientException", errorCode):
2866		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
2867
2868	case strings.EqualFold("UnauthorizedClientException", errorCode):
2869		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
2870
2871	default:
2872		genericError := &smithy.GenericAPIError{
2873			Code:    errorCode,
2874			Message: errorMessage,
2875		}
2876		return genericError
2877
2878	}
2879}
2880
2881func awsRestjson1_deserializeOpDocumentCreateChannelOutput(v **CreateChannelOutput, value interface{}) error {
2882	if v == nil {
2883		return fmt.Errorf("unexpected nil of type %T", v)
2884	}
2885	if value == nil {
2886		return nil
2887	}
2888
2889	shape, ok := value.(map[string]interface{})
2890	if !ok {
2891		return fmt.Errorf("unexpected JSON type %v", value)
2892	}
2893
2894	var sv *CreateChannelOutput
2895	if *v == nil {
2896		sv = &CreateChannelOutput{}
2897	} else {
2898		sv = *v
2899	}
2900
2901	for key, value := range shape {
2902		switch key {
2903		case "ChannelArn":
2904			if value != nil {
2905				jtv, ok := value.(string)
2906				if !ok {
2907					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
2908				}
2909				sv.ChannelArn = ptr.String(jtv)
2910			}
2911
2912		default:
2913			_, _ = key, value
2914
2915		}
2916	}
2917	*v = sv
2918	return nil
2919}
2920
2921type awsRestjson1_deserializeOpCreateChannelBan struct {
2922}
2923
2924func (*awsRestjson1_deserializeOpCreateChannelBan) ID() string {
2925	return "OperationDeserializer"
2926}
2927
2928func (m *awsRestjson1_deserializeOpCreateChannelBan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
2929	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
2930) {
2931	out, metadata, err = next.HandleDeserialize(ctx, in)
2932	if err != nil {
2933		return out, metadata, err
2934	}
2935
2936	response, ok := out.RawResponse.(*smithyhttp.Response)
2937	if !ok {
2938		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
2939	}
2940
2941	if response.StatusCode < 200 || response.StatusCode >= 300 {
2942		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannelBan(response, &metadata)
2943	}
2944	output := &CreateChannelBanOutput{}
2945	out.Result = output
2946
2947	var buff [1024]byte
2948	ringBuffer := smithyio.NewRingBuffer(buff[:])
2949
2950	body := io.TeeReader(response.Body, ringBuffer)
2951
2952	decoder := json.NewDecoder(body)
2953	decoder.UseNumber()
2954	var shape interface{}
2955	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
2956		var snapshot bytes.Buffer
2957		io.Copy(&snapshot, ringBuffer)
2958		err = &smithy.DeserializationError{
2959			Err:      fmt.Errorf("failed to decode response body, %w", err),
2960			Snapshot: snapshot.Bytes(),
2961		}
2962		return out, metadata, err
2963	}
2964
2965	err = awsRestjson1_deserializeOpDocumentCreateChannelBanOutput(&output, shape)
2966	if err != nil {
2967		var snapshot bytes.Buffer
2968		io.Copy(&snapshot, ringBuffer)
2969		return out, metadata, &smithy.DeserializationError{
2970			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
2971			Snapshot: snapshot.Bytes(),
2972		}
2973	}
2974
2975	return out, metadata, err
2976}
2977
2978func awsRestjson1_deserializeOpErrorCreateChannelBan(response *smithyhttp.Response, metadata *middleware.Metadata) error {
2979	var errorBuffer bytes.Buffer
2980	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
2981		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
2982	}
2983	errorBody := bytes.NewReader(errorBuffer.Bytes())
2984
2985	errorCode := "UnknownError"
2986	errorMessage := errorCode
2987
2988	code := response.Header.Get("X-Amzn-ErrorType")
2989	if len(code) != 0 {
2990		errorCode = restjson.SanitizeErrorCode(code)
2991	}
2992
2993	var buff [1024]byte
2994	ringBuffer := smithyio.NewRingBuffer(buff[:])
2995
2996	body := io.TeeReader(errorBody, ringBuffer)
2997	decoder := json.NewDecoder(body)
2998	decoder.UseNumber()
2999	code, message, err := restjson.GetErrorInfo(decoder)
3000	if err != nil {
3001		var snapshot bytes.Buffer
3002		io.Copy(&snapshot, ringBuffer)
3003		err = &smithy.DeserializationError{
3004			Err:      fmt.Errorf("failed to decode response body, %w", err),
3005			Snapshot: snapshot.Bytes(),
3006		}
3007		return err
3008	}
3009
3010	errorBody.Seek(0, io.SeekStart)
3011	if len(code) != 0 {
3012		errorCode = restjson.SanitizeErrorCode(code)
3013	}
3014	if len(message) != 0 {
3015		errorMessage = message
3016	}
3017
3018	switch {
3019	case strings.EqualFold("BadRequestException", errorCode):
3020		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3021
3022	case strings.EqualFold("ConflictException", errorCode):
3023		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3024
3025	case strings.EqualFold("ForbiddenException", errorCode):
3026		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3027
3028	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3029		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3030
3031	case strings.EqualFold("ServiceFailureException", errorCode):
3032		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3033
3034	case strings.EqualFold("ServiceUnavailableException", errorCode):
3035		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3036
3037	case strings.EqualFold("ThrottledClientException", errorCode):
3038		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3039
3040	case strings.EqualFold("UnauthorizedClientException", errorCode):
3041		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3042
3043	default:
3044		genericError := &smithy.GenericAPIError{
3045			Code:    errorCode,
3046			Message: errorMessage,
3047		}
3048		return genericError
3049
3050	}
3051}
3052
3053func awsRestjson1_deserializeOpDocumentCreateChannelBanOutput(v **CreateChannelBanOutput, value interface{}) error {
3054	if v == nil {
3055		return fmt.Errorf("unexpected nil of type %T", v)
3056	}
3057	if value == nil {
3058		return nil
3059	}
3060
3061	shape, ok := value.(map[string]interface{})
3062	if !ok {
3063		return fmt.Errorf("unexpected JSON type %v", value)
3064	}
3065
3066	var sv *CreateChannelBanOutput
3067	if *v == nil {
3068		sv = &CreateChannelBanOutput{}
3069	} else {
3070		sv = *v
3071	}
3072
3073	for key, value := range shape {
3074		switch key {
3075		case "ChannelArn":
3076			if value != nil {
3077				jtv, ok := value.(string)
3078				if !ok {
3079					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3080				}
3081				sv.ChannelArn = ptr.String(jtv)
3082			}
3083
3084		case "Member":
3085			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
3086				return err
3087			}
3088
3089		default:
3090			_, _ = key, value
3091
3092		}
3093	}
3094	*v = sv
3095	return nil
3096}
3097
3098type awsRestjson1_deserializeOpCreateChannelMembership struct {
3099}
3100
3101func (*awsRestjson1_deserializeOpCreateChannelMembership) ID() string {
3102	return "OperationDeserializer"
3103}
3104
3105func (m *awsRestjson1_deserializeOpCreateChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3106	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3107) {
3108	out, metadata, err = next.HandleDeserialize(ctx, in)
3109	if err != nil {
3110		return out, metadata, err
3111	}
3112
3113	response, ok := out.RawResponse.(*smithyhttp.Response)
3114	if !ok {
3115		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3116	}
3117
3118	if response.StatusCode < 200 || response.StatusCode >= 300 {
3119		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannelMembership(response, &metadata)
3120	}
3121	output := &CreateChannelMembershipOutput{}
3122	out.Result = output
3123
3124	var buff [1024]byte
3125	ringBuffer := smithyio.NewRingBuffer(buff[:])
3126
3127	body := io.TeeReader(response.Body, ringBuffer)
3128
3129	decoder := json.NewDecoder(body)
3130	decoder.UseNumber()
3131	var shape interface{}
3132	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3133		var snapshot bytes.Buffer
3134		io.Copy(&snapshot, ringBuffer)
3135		err = &smithy.DeserializationError{
3136			Err:      fmt.Errorf("failed to decode response body, %w", err),
3137			Snapshot: snapshot.Bytes(),
3138		}
3139		return out, metadata, err
3140	}
3141
3142	err = awsRestjson1_deserializeOpDocumentCreateChannelMembershipOutput(&output, shape)
3143	if err != nil {
3144		var snapshot bytes.Buffer
3145		io.Copy(&snapshot, ringBuffer)
3146		return out, metadata, &smithy.DeserializationError{
3147			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3148			Snapshot: snapshot.Bytes(),
3149		}
3150	}
3151
3152	return out, metadata, err
3153}
3154
3155func awsRestjson1_deserializeOpErrorCreateChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3156	var errorBuffer bytes.Buffer
3157	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3158		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3159	}
3160	errorBody := bytes.NewReader(errorBuffer.Bytes())
3161
3162	errorCode := "UnknownError"
3163	errorMessage := errorCode
3164
3165	code := response.Header.Get("X-Amzn-ErrorType")
3166	if len(code) != 0 {
3167		errorCode = restjson.SanitizeErrorCode(code)
3168	}
3169
3170	var buff [1024]byte
3171	ringBuffer := smithyio.NewRingBuffer(buff[:])
3172
3173	body := io.TeeReader(errorBody, ringBuffer)
3174	decoder := json.NewDecoder(body)
3175	decoder.UseNumber()
3176	code, message, err := restjson.GetErrorInfo(decoder)
3177	if err != nil {
3178		var snapshot bytes.Buffer
3179		io.Copy(&snapshot, ringBuffer)
3180		err = &smithy.DeserializationError{
3181			Err:      fmt.Errorf("failed to decode response body, %w", err),
3182			Snapshot: snapshot.Bytes(),
3183		}
3184		return err
3185	}
3186
3187	errorBody.Seek(0, io.SeekStart)
3188	if len(code) != 0 {
3189		errorCode = restjson.SanitizeErrorCode(code)
3190	}
3191	if len(message) != 0 {
3192		errorMessage = message
3193	}
3194
3195	switch {
3196	case strings.EqualFold("BadRequestException", errorCode):
3197		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3198
3199	case strings.EqualFold("ConflictException", errorCode):
3200		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3201
3202	case strings.EqualFold("ForbiddenException", errorCode):
3203		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3204
3205	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3206		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3207
3208	case strings.EqualFold("ServiceFailureException", errorCode):
3209		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3210
3211	case strings.EqualFold("ServiceUnavailableException", errorCode):
3212		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3213
3214	case strings.EqualFold("ThrottledClientException", errorCode):
3215		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3216
3217	case strings.EqualFold("UnauthorizedClientException", errorCode):
3218		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3219
3220	default:
3221		genericError := &smithy.GenericAPIError{
3222			Code:    errorCode,
3223			Message: errorMessage,
3224		}
3225		return genericError
3226
3227	}
3228}
3229
3230func awsRestjson1_deserializeOpDocumentCreateChannelMembershipOutput(v **CreateChannelMembershipOutput, value interface{}) error {
3231	if v == nil {
3232		return fmt.Errorf("unexpected nil of type %T", v)
3233	}
3234	if value == nil {
3235		return nil
3236	}
3237
3238	shape, ok := value.(map[string]interface{})
3239	if !ok {
3240		return fmt.Errorf("unexpected JSON type %v", value)
3241	}
3242
3243	var sv *CreateChannelMembershipOutput
3244	if *v == nil {
3245		sv = &CreateChannelMembershipOutput{}
3246	} else {
3247		sv = *v
3248	}
3249
3250	for key, value := range shape {
3251		switch key {
3252		case "ChannelArn":
3253			if value != nil {
3254				jtv, ok := value.(string)
3255				if !ok {
3256					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3257				}
3258				sv.ChannelArn = ptr.String(jtv)
3259			}
3260
3261		case "Member":
3262			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
3263				return err
3264			}
3265
3266		default:
3267			_, _ = key, value
3268
3269		}
3270	}
3271	*v = sv
3272	return nil
3273}
3274
3275type awsRestjson1_deserializeOpCreateChannelModerator struct {
3276}
3277
3278func (*awsRestjson1_deserializeOpCreateChannelModerator) ID() string {
3279	return "OperationDeserializer"
3280}
3281
3282func (m *awsRestjson1_deserializeOpCreateChannelModerator) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3283	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3284) {
3285	out, metadata, err = next.HandleDeserialize(ctx, in)
3286	if err != nil {
3287		return out, metadata, err
3288	}
3289
3290	response, ok := out.RawResponse.(*smithyhttp.Response)
3291	if !ok {
3292		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3293	}
3294
3295	if response.StatusCode < 200 || response.StatusCode >= 300 {
3296		return out, metadata, awsRestjson1_deserializeOpErrorCreateChannelModerator(response, &metadata)
3297	}
3298	output := &CreateChannelModeratorOutput{}
3299	out.Result = output
3300
3301	var buff [1024]byte
3302	ringBuffer := smithyio.NewRingBuffer(buff[:])
3303
3304	body := io.TeeReader(response.Body, ringBuffer)
3305
3306	decoder := json.NewDecoder(body)
3307	decoder.UseNumber()
3308	var shape interface{}
3309	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3310		var snapshot bytes.Buffer
3311		io.Copy(&snapshot, ringBuffer)
3312		err = &smithy.DeserializationError{
3313			Err:      fmt.Errorf("failed to decode response body, %w", err),
3314			Snapshot: snapshot.Bytes(),
3315		}
3316		return out, metadata, err
3317	}
3318
3319	err = awsRestjson1_deserializeOpDocumentCreateChannelModeratorOutput(&output, shape)
3320	if err != nil {
3321		var snapshot bytes.Buffer
3322		io.Copy(&snapshot, ringBuffer)
3323		return out, metadata, &smithy.DeserializationError{
3324			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3325			Snapshot: snapshot.Bytes(),
3326		}
3327	}
3328
3329	return out, metadata, err
3330}
3331
3332func awsRestjson1_deserializeOpErrorCreateChannelModerator(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3333	var errorBuffer bytes.Buffer
3334	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3335		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3336	}
3337	errorBody := bytes.NewReader(errorBuffer.Bytes())
3338
3339	errorCode := "UnknownError"
3340	errorMessage := errorCode
3341
3342	code := response.Header.Get("X-Amzn-ErrorType")
3343	if len(code) != 0 {
3344		errorCode = restjson.SanitizeErrorCode(code)
3345	}
3346
3347	var buff [1024]byte
3348	ringBuffer := smithyio.NewRingBuffer(buff[:])
3349
3350	body := io.TeeReader(errorBody, ringBuffer)
3351	decoder := json.NewDecoder(body)
3352	decoder.UseNumber()
3353	code, message, err := restjson.GetErrorInfo(decoder)
3354	if err != nil {
3355		var snapshot bytes.Buffer
3356		io.Copy(&snapshot, ringBuffer)
3357		err = &smithy.DeserializationError{
3358			Err:      fmt.Errorf("failed to decode response body, %w", err),
3359			Snapshot: snapshot.Bytes(),
3360		}
3361		return err
3362	}
3363
3364	errorBody.Seek(0, io.SeekStart)
3365	if len(code) != 0 {
3366		errorCode = restjson.SanitizeErrorCode(code)
3367	}
3368	if len(message) != 0 {
3369		errorMessage = message
3370	}
3371
3372	switch {
3373	case strings.EqualFold("BadRequestException", errorCode):
3374		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3375
3376	case strings.EqualFold("ConflictException", errorCode):
3377		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
3378
3379	case strings.EqualFold("ForbiddenException", errorCode):
3380		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3381
3382	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3383		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3384
3385	case strings.EqualFold("ServiceFailureException", errorCode):
3386		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3387
3388	case strings.EqualFold("ServiceUnavailableException", errorCode):
3389		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3390
3391	case strings.EqualFold("ThrottledClientException", errorCode):
3392		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3393
3394	case strings.EqualFold("UnauthorizedClientException", errorCode):
3395		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3396
3397	default:
3398		genericError := &smithy.GenericAPIError{
3399			Code:    errorCode,
3400			Message: errorMessage,
3401		}
3402		return genericError
3403
3404	}
3405}
3406
3407func awsRestjson1_deserializeOpDocumentCreateChannelModeratorOutput(v **CreateChannelModeratorOutput, value interface{}) error {
3408	if v == nil {
3409		return fmt.Errorf("unexpected nil of type %T", v)
3410	}
3411	if value == nil {
3412		return nil
3413	}
3414
3415	shape, ok := value.(map[string]interface{})
3416	if !ok {
3417		return fmt.Errorf("unexpected JSON type %v", value)
3418	}
3419
3420	var sv *CreateChannelModeratorOutput
3421	if *v == nil {
3422		sv = &CreateChannelModeratorOutput{}
3423	} else {
3424		sv = *v
3425	}
3426
3427	for key, value := range shape {
3428		switch key {
3429		case "ChannelArn":
3430			if value != nil {
3431				jtv, ok := value.(string)
3432				if !ok {
3433					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
3434				}
3435				sv.ChannelArn = ptr.String(jtv)
3436			}
3437
3438		case "ChannelModerator":
3439			if err := awsRestjson1_deserializeDocumentIdentity(&sv.ChannelModerator, value); err != nil {
3440				return err
3441			}
3442
3443		default:
3444			_, _ = key, value
3445
3446		}
3447	}
3448	*v = sv
3449	return nil
3450}
3451
3452type awsRestjson1_deserializeOpCreateMeeting struct {
3453}
3454
3455func (*awsRestjson1_deserializeOpCreateMeeting) ID() string {
3456	return "OperationDeserializer"
3457}
3458
3459func (m *awsRestjson1_deserializeOpCreateMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3460	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3461) {
3462	out, metadata, err = next.HandleDeserialize(ctx, in)
3463	if err != nil {
3464		return out, metadata, err
3465	}
3466
3467	response, ok := out.RawResponse.(*smithyhttp.Response)
3468	if !ok {
3469		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3470	}
3471
3472	if response.StatusCode < 200 || response.StatusCode >= 300 {
3473		return out, metadata, awsRestjson1_deserializeOpErrorCreateMeeting(response, &metadata)
3474	}
3475	output := &CreateMeetingOutput{}
3476	out.Result = output
3477
3478	var buff [1024]byte
3479	ringBuffer := smithyio.NewRingBuffer(buff[:])
3480
3481	body := io.TeeReader(response.Body, ringBuffer)
3482
3483	decoder := json.NewDecoder(body)
3484	decoder.UseNumber()
3485	var shape interface{}
3486	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3487		var snapshot bytes.Buffer
3488		io.Copy(&snapshot, ringBuffer)
3489		err = &smithy.DeserializationError{
3490			Err:      fmt.Errorf("failed to decode response body, %w", err),
3491			Snapshot: snapshot.Bytes(),
3492		}
3493		return out, metadata, err
3494	}
3495
3496	err = awsRestjson1_deserializeOpDocumentCreateMeetingOutput(&output, shape)
3497	if err != nil {
3498		var snapshot bytes.Buffer
3499		io.Copy(&snapshot, ringBuffer)
3500		return out, metadata, &smithy.DeserializationError{
3501			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3502			Snapshot: snapshot.Bytes(),
3503		}
3504	}
3505
3506	return out, metadata, err
3507}
3508
3509func awsRestjson1_deserializeOpErrorCreateMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3510	var errorBuffer bytes.Buffer
3511	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3512		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3513	}
3514	errorBody := bytes.NewReader(errorBuffer.Bytes())
3515
3516	errorCode := "UnknownError"
3517	errorMessage := errorCode
3518
3519	code := response.Header.Get("X-Amzn-ErrorType")
3520	if len(code) != 0 {
3521		errorCode = restjson.SanitizeErrorCode(code)
3522	}
3523
3524	var buff [1024]byte
3525	ringBuffer := smithyio.NewRingBuffer(buff[:])
3526
3527	body := io.TeeReader(errorBody, ringBuffer)
3528	decoder := json.NewDecoder(body)
3529	decoder.UseNumber()
3530	code, message, err := restjson.GetErrorInfo(decoder)
3531	if err != nil {
3532		var snapshot bytes.Buffer
3533		io.Copy(&snapshot, ringBuffer)
3534		err = &smithy.DeserializationError{
3535			Err:      fmt.Errorf("failed to decode response body, %w", err),
3536			Snapshot: snapshot.Bytes(),
3537		}
3538		return err
3539	}
3540
3541	errorBody.Seek(0, io.SeekStart)
3542	if len(code) != 0 {
3543		errorCode = restjson.SanitizeErrorCode(code)
3544	}
3545	if len(message) != 0 {
3546		errorMessage = message
3547	}
3548
3549	switch {
3550	case strings.EqualFold("BadRequestException", errorCode):
3551		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3552
3553	case strings.EqualFold("ForbiddenException", errorCode):
3554		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3555
3556	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3557		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3558
3559	case strings.EqualFold("ServiceFailureException", errorCode):
3560		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3561
3562	case strings.EqualFold("ServiceUnavailableException", errorCode):
3563		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3564
3565	case strings.EqualFold("ThrottledClientException", errorCode):
3566		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3567
3568	case strings.EqualFold("UnauthorizedClientException", errorCode):
3569		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3570
3571	default:
3572		genericError := &smithy.GenericAPIError{
3573			Code:    errorCode,
3574			Message: errorMessage,
3575		}
3576		return genericError
3577
3578	}
3579}
3580
3581func awsRestjson1_deserializeOpDocumentCreateMeetingOutput(v **CreateMeetingOutput, value interface{}) error {
3582	if v == nil {
3583		return fmt.Errorf("unexpected nil of type %T", v)
3584	}
3585	if value == nil {
3586		return nil
3587	}
3588
3589	shape, ok := value.(map[string]interface{})
3590	if !ok {
3591		return fmt.Errorf("unexpected JSON type %v", value)
3592	}
3593
3594	var sv *CreateMeetingOutput
3595	if *v == nil {
3596		sv = &CreateMeetingOutput{}
3597	} else {
3598		sv = *v
3599	}
3600
3601	for key, value := range shape {
3602		switch key {
3603		case "Meeting":
3604			if err := awsRestjson1_deserializeDocumentMeeting(&sv.Meeting, value); err != nil {
3605				return err
3606			}
3607
3608		default:
3609			_, _ = key, value
3610
3611		}
3612	}
3613	*v = sv
3614	return nil
3615}
3616
3617type awsRestjson1_deserializeOpCreateMeetingDialOut struct {
3618}
3619
3620func (*awsRestjson1_deserializeOpCreateMeetingDialOut) ID() string {
3621	return "OperationDeserializer"
3622}
3623
3624func (m *awsRestjson1_deserializeOpCreateMeetingDialOut) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3625	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3626) {
3627	out, metadata, err = next.HandleDeserialize(ctx, in)
3628	if err != nil {
3629		return out, metadata, err
3630	}
3631
3632	response, ok := out.RawResponse.(*smithyhttp.Response)
3633	if !ok {
3634		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3635	}
3636
3637	if response.StatusCode < 200 || response.StatusCode >= 300 {
3638		return out, metadata, awsRestjson1_deserializeOpErrorCreateMeetingDialOut(response, &metadata)
3639	}
3640	output := &CreateMeetingDialOutOutput{}
3641	out.Result = output
3642
3643	var buff [1024]byte
3644	ringBuffer := smithyio.NewRingBuffer(buff[:])
3645
3646	body := io.TeeReader(response.Body, ringBuffer)
3647
3648	decoder := json.NewDecoder(body)
3649	decoder.UseNumber()
3650	var shape interface{}
3651	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3652		var snapshot bytes.Buffer
3653		io.Copy(&snapshot, ringBuffer)
3654		err = &smithy.DeserializationError{
3655			Err:      fmt.Errorf("failed to decode response body, %w", err),
3656			Snapshot: snapshot.Bytes(),
3657		}
3658		return out, metadata, err
3659	}
3660
3661	err = awsRestjson1_deserializeOpDocumentCreateMeetingDialOutOutput(&output, shape)
3662	if err != nil {
3663		var snapshot bytes.Buffer
3664		io.Copy(&snapshot, ringBuffer)
3665		return out, metadata, &smithy.DeserializationError{
3666			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3667			Snapshot: snapshot.Bytes(),
3668		}
3669	}
3670
3671	return out, metadata, err
3672}
3673
3674func awsRestjson1_deserializeOpErrorCreateMeetingDialOut(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3675	var errorBuffer bytes.Buffer
3676	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3677		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3678	}
3679	errorBody := bytes.NewReader(errorBuffer.Bytes())
3680
3681	errorCode := "UnknownError"
3682	errorMessage := errorCode
3683
3684	code := response.Header.Get("X-Amzn-ErrorType")
3685	if len(code) != 0 {
3686		errorCode = restjson.SanitizeErrorCode(code)
3687	}
3688
3689	var buff [1024]byte
3690	ringBuffer := smithyio.NewRingBuffer(buff[:])
3691
3692	body := io.TeeReader(errorBody, ringBuffer)
3693	decoder := json.NewDecoder(body)
3694	decoder.UseNumber()
3695	code, message, err := restjson.GetErrorInfo(decoder)
3696	if err != nil {
3697		var snapshot bytes.Buffer
3698		io.Copy(&snapshot, ringBuffer)
3699		err = &smithy.DeserializationError{
3700			Err:      fmt.Errorf("failed to decode response body, %w", err),
3701			Snapshot: snapshot.Bytes(),
3702		}
3703		return err
3704	}
3705
3706	errorBody.Seek(0, io.SeekStart)
3707	if len(code) != 0 {
3708		errorCode = restjson.SanitizeErrorCode(code)
3709	}
3710	if len(message) != 0 {
3711		errorMessage = message
3712	}
3713
3714	switch {
3715	case strings.EqualFold("BadRequestException", errorCode):
3716		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3717
3718	case strings.EqualFold("ForbiddenException", errorCode):
3719		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3720
3721	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3722		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3723
3724	case strings.EqualFold("ServiceFailureException", errorCode):
3725		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3726
3727	case strings.EqualFold("ServiceUnavailableException", errorCode):
3728		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3729
3730	case strings.EqualFold("ThrottledClientException", errorCode):
3731		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3732
3733	case strings.EqualFold("UnauthorizedClientException", errorCode):
3734		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3735
3736	default:
3737		genericError := &smithy.GenericAPIError{
3738			Code:    errorCode,
3739			Message: errorMessage,
3740		}
3741		return genericError
3742
3743	}
3744}
3745
3746func awsRestjson1_deserializeOpDocumentCreateMeetingDialOutOutput(v **CreateMeetingDialOutOutput, value interface{}) error {
3747	if v == nil {
3748		return fmt.Errorf("unexpected nil of type %T", v)
3749	}
3750	if value == nil {
3751		return nil
3752	}
3753
3754	shape, ok := value.(map[string]interface{})
3755	if !ok {
3756		return fmt.Errorf("unexpected JSON type %v", value)
3757	}
3758
3759	var sv *CreateMeetingDialOutOutput
3760	if *v == nil {
3761		sv = &CreateMeetingDialOutOutput{}
3762	} else {
3763		sv = *v
3764	}
3765
3766	for key, value := range shape {
3767		switch key {
3768		case "TransactionId":
3769			if value != nil {
3770				jtv, ok := value.(string)
3771				if !ok {
3772					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
3773				}
3774				sv.TransactionId = ptr.String(jtv)
3775			}
3776
3777		default:
3778			_, _ = key, value
3779
3780		}
3781	}
3782	*v = sv
3783	return nil
3784}
3785
3786type awsRestjson1_deserializeOpCreateMeetingWithAttendees struct {
3787}
3788
3789func (*awsRestjson1_deserializeOpCreateMeetingWithAttendees) ID() string {
3790	return "OperationDeserializer"
3791}
3792
3793func (m *awsRestjson1_deserializeOpCreateMeetingWithAttendees) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3794	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3795) {
3796	out, metadata, err = next.HandleDeserialize(ctx, in)
3797	if err != nil {
3798		return out, metadata, err
3799	}
3800
3801	response, ok := out.RawResponse.(*smithyhttp.Response)
3802	if !ok {
3803		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3804	}
3805
3806	if response.StatusCode < 200 || response.StatusCode >= 300 {
3807		return out, metadata, awsRestjson1_deserializeOpErrorCreateMeetingWithAttendees(response, &metadata)
3808	}
3809	output := &CreateMeetingWithAttendeesOutput{}
3810	out.Result = output
3811
3812	var buff [1024]byte
3813	ringBuffer := smithyio.NewRingBuffer(buff[:])
3814
3815	body := io.TeeReader(response.Body, ringBuffer)
3816
3817	decoder := json.NewDecoder(body)
3818	decoder.UseNumber()
3819	var shape interface{}
3820	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3821		var snapshot bytes.Buffer
3822		io.Copy(&snapshot, ringBuffer)
3823		err = &smithy.DeserializationError{
3824			Err:      fmt.Errorf("failed to decode response body, %w", err),
3825			Snapshot: snapshot.Bytes(),
3826		}
3827		return out, metadata, err
3828	}
3829
3830	err = awsRestjson1_deserializeOpDocumentCreateMeetingWithAttendeesOutput(&output, shape)
3831	if err != nil {
3832		var snapshot bytes.Buffer
3833		io.Copy(&snapshot, ringBuffer)
3834		return out, metadata, &smithy.DeserializationError{
3835			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
3836			Snapshot: snapshot.Bytes(),
3837		}
3838	}
3839
3840	return out, metadata, err
3841}
3842
3843func awsRestjson1_deserializeOpErrorCreateMeetingWithAttendees(response *smithyhttp.Response, metadata *middleware.Metadata) error {
3844	var errorBuffer bytes.Buffer
3845	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
3846		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
3847	}
3848	errorBody := bytes.NewReader(errorBuffer.Bytes())
3849
3850	errorCode := "UnknownError"
3851	errorMessage := errorCode
3852
3853	code := response.Header.Get("X-Amzn-ErrorType")
3854	if len(code) != 0 {
3855		errorCode = restjson.SanitizeErrorCode(code)
3856	}
3857
3858	var buff [1024]byte
3859	ringBuffer := smithyio.NewRingBuffer(buff[:])
3860
3861	body := io.TeeReader(errorBody, ringBuffer)
3862	decoder := json.NewDecoder(body)
3863	decoder.UseNumber()
3864	code, message, err := restjson.GetErrorInfo(decoder)
3865	if err != nil {
3866		var snapshot bytes.Buffer
3867		io.Copy(&snapshot, ringBuffer)
3868		err = &smithy.DeserializationError{
3869			Err:      fmt.Errorf("failed to decode response body, %w", err),
3870			Snapshot: snapshot.Bytes(),
3871		}
3872		return err
3873	}
3874
3875	errorBody.Seek(0, io.SeekStart)
3876	if len(code) != 0 {
3877		errorCode = restjson.SanitizeErrorCode(code)
3878	}
3879	if len(message) != 0 {
3880		errorMessage = message
3881	}
3882
3883	switch {
3884	case strings.EqualFold("BadRequestException", errorCode):
3885		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
3886
3887	case strings.EqualFold("ForbiddenException", errorCode):
3888		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
3889
3890	case strings.EqualFold("ResourceLimitExceededException", errorCode):
3891		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
3892
3893	case strings.EqualFold("ServiceFailureException", errorCode):
3894		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
3895
3896	case strings.EqualFold("ServiceUnavailableException", errorCode):
3897		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
3898
3899	case strings.EqualFold("ThrottledClientException", errorCode):
3900		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
3901
3902	case strings.EqualFold("UnauthorizedClientException", errorCode):
3903		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
3904
3905	default:
3906		genericError := &smithy.GenericAPIError{
3907			Code:    errorCode,
3908			Message: errorMessage,
3909		}
3910		return genericError
3911
3912	}
3913}
3914
3915func awsRestjson1_deserializeOpDocumentCreateMeetingWithAttendeesOutput(v **CreateMeetingWithAttendeesOutput, value interface{}) error {
3916	if v == nil {
3917		return fmt.Errorf("unexpected nil of type %T", v)
3918	}
3919	if value == nil {
3920		return nil
3921	}
3922
3923	shape, ok := value.(map[string]interface{})
3924	if !ok {
3925		return fmt.Errorf("unexpected JSON type %v", value)
3926	}
3927
3928	var sv *CreateMeetingWithAttendeesOutput
3929	if *v == nil {
3930		sv = &CreateMeetingWithAttendeesOutput{}
3931	} else {
3932		sv = *v
3933	}
3934
3935	for key, value := range shape {
3936		switch key {
3937		case "Attendees":
3938			if err := awsRestjson1_deserializeDocumentAttendeeList(&sv.Attendees, value); err != nil {
3939				return err
3940			}
3941
3942		case "Errors":
3943			if err := awsRestjson1_deserializeDocumentBatchCreateAttendeeErrorList(&sv.Errors, value); err != nil {
3944				return err
3945			}
3946
3947		case "Meeting":
3948			if err := awsRestjson1_deserializeDocumentMeeting(&sv.Meeting, value); err != nil {
3949				return err
3950			}
3951
3952		default:
3953			_, _ = key, value
3954
3955		}
3956	}
3957	*v = sv
3958	return nil
3959}
3960
3961type awsRestjson1_deserializeOpCreatePhoneNumberOrder struct {
3962}
3963
3964func (*awsRestjson1_deserializeOpCreatePhoneNumberOrder) ID() string {
3965	return "OperationDeserializer"
3966}
3967
3968func (m *awsRestjson1_deserializeOpCreatePhoneNumberOrder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
3969	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
3970) {
3971	out, metadata, err = next.HandleDeserialize(ctx, in)
3972	if err != nil {
3973		return out, metadata, err
3974	}
3975
3976	response, ok := out.RawResponse.(*smithyhttp.Response)
3977	if !ok {
3978		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
3979	}
3980
3981	if response.StatusCode < 200 || response.StatusCode >= 300 {
3982		return out, metadata, awsRestjson1_deserializeOpErrorCreatePhoneNumberOrder(response, &metadata)
3983	}
3984	output := &CreatePhoneNumberOrderOutput{}
3985	out.Result = output
3986
3987	var buff [1024]byte
3988	ringBuffer := smithyio.NewRingBuffer(buff[:])
3989
3990	body := io.TeeReader(response.Body, ringBuffer)
3991
3992	decoder := json.NewDecoder(body)
3993	decoder.UseNumber()
3994	var shape interface{}
3995	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
3996		var snapshot bytes.Buffer
3997		io.Copy(&snapshot, ringBuffer)
3998		err = &smithy.DeserializationError{
3999			Err:      fmt.Errorf("failed to decode response body, %w", err),
4000			Snapshot: snapshot.Bytes(),
4001		}
4002		return out, metadata, err
4003	}
4004
4005	err = awsRestjson1_deserializeOpDocumentCreatePhoneNumberOrderOutput(&output, shape)
4006	if err != nil {
4007		var snapshot bytes.Buffer
4008		io.Copy(&snapshot, ringBuffer)
4009		return out, metadata, &smithy.DeserializationError{
4010			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4011			Snapshot: snapshot.Bytes(),
4012		}
4013	}
4014
4015	return out, metadata, err
4016}
4017
4018func awsRestjson1_deserializeOpErrorCreatePhoneNumberOrder(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4019	var errorBuffer bytes.Buffer
4020	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4021		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4022	}
4023	errorBody := bytes.NewReader(errorBuffer.Bytes())
4024
4025	errorCode := "UnknownError"
4026	errorMessage := errorCode
4027
4028	code := response.Header.Get("X-Amzn-ErrorType")
4029	if len(code) != 0 {
4030		errorCode = restjson.SanitizeErrorCode(code)
4031	}
4032
4033	var buff [1024]byte
4034	ringBuffer := smithyio.NewRingBuffer(buff[:])
4035
4036	body := io.TeeReader(errorBody, ringBuffer)
4037	decoder := json.NewDecoder(body)
4038	decoder.UseNumber()
4039	code, message, err := restjson.GetErrorInfo(decoder)
4040	if err != nil {
4041		var snapshot bytes.Buffer
4042		io.Copy(&snapshot, ringBuffer)
4043		err = &smithy.DeserializationError{
4044			Err:      fmt.Errorf("failed to decode response body, %w", err),
4045			Snapshot: snapshot.Bytes(),
4046		}
4047		return err
4048	}
4049
4050	errorBody.Seek(0, io.SeekStart)
4051	if len(code) != 0 {
4052		errorCode = restjson.SanitizeErrorCode(code)
4053	}
4054	if len(message) != 0 {
4055		errorMessage = message
4056	}
4057
4058	switch {
4059	case strings.EqualFold("AccessDeniedException", errorCode):
4060		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
4061
4062	case strings.EqualFold("BadRequestException", errorCode):
4063		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4064
4065	case strings.EqualFold("ForbiddenException", errorCode):
4066		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4067
4068	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4069		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4070
4071	case strings.EqualFold("ServiceFailureException", errorCode):
4072		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4073
4074	case strings.EqualFold("ServiceUnavailableException", errorCode):
4075		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4076
4077	case strings.EqualFold("ThrottledClientException", errorCode):
4078		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4079
4080	case strings.EqualFold("UnauthorizedClientException", errorCode):
4081		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4082
4083	default:
4084		genericError := &smithy.GenericAPIError{
4085			Code:    errorCode,
4086			Message: errorMessage,
4087		}
4088		return genericError
4089
4090	}
4091}
4092
4093func awsRestjson1_deserializeOpDocumentCreatePhoneNumberOrderOutput(v **CreatePhoneNumberOrderOutput, value interface{}) error {
4094	if v == nil {
4095		return fmt.Errorf("unexpected nil of type %T", v)
4096	}
4097	if value == nil {
4098		return nil
4099	}
4100
4101	shape, ok := value.(map[string]interface{})
4102	if !ok {
4103		return fmt.Errorf("unexpected JSON type %v", value)
4104	}
4105
4106	var sv *CreatePhoneNumberOrderOutput
4107	if *v == nil {
4108		sv = &CreatePhoneNumberOrderOutput{}
4109	} else {
4110		sv = *v
4111	}
4112
4113	for key, value := range shape {
4114		switch key {
4115		case "PhoneNumberOrder":
4116			if err := awsRestjson1_deserializeDocumentPhoneNumberOrder(&sv.PhoneNumberOrder, value); err != nil {
4117				return err
4118			}
4119
4120		default:
4121			_, _ = key, value
4122
4123		}
4124	}
4125	*v = sv
4126	return nil
4127}
4128
4129type awsRestjson1_deserializeOpCreateProxySession struct {
4130}
4131
4132func (*awsRestjson1_deserializeOpCreateProxySession) ID() string {
4133	return "OperationDeserializer"
4134}
4135
4136func (m *awsRestjson1_deserializeOpCreateProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4137	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4138) {
4139	out, metadata, err = next.HandleDeserialize(ctx, in)
4140	if err != nil {
4141		return out, metadata, err
4142	}
4143
4144	response, ok := out.RawResponse.(*smithyhttp.Response)
4145	if !ok {
4146		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4147	}
4148
4149	if response.StatusCode < 200 || response.StatusCode >= 300 {
4150		return out, metadata, awsRestjson1_deserializeOpErrorCreateProxySession(response, &metadata)
4151	}
4152	output := &CreateProxySessionOutput{}
4153	out.Result = output
4154
4155	var buff [1024]byte
4156	ringBuffer := smithyio.NewRingBuffer(buff[:])
4157
4158	body := io.TeeReader(response.Body, ringBuffer)
4159
4160	decoder := json.NewDecoder(body)
4161	decoder.UseNumber()
4162	var shape interface{}
4163	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4164		var snapshot bytes.Buffer
4165		io.Copy(&snapshot, ringBuffer)
4166		err = &smithy.DeserializationError{
4167			Err:      fmt.Errorf("failed to decode response body, %w", err),
4168			Snapshot: snapshot.Bytes(),
4169		}
4170		return out, metadata, err
4171	}
4172
4173	err = awsRestjson1_deserializeOpDocumentCreateProxySessionOutput(&output, shape)
4174	if err != nil {
4175		var snapshot bytes.Buffer
4176		io.Copy(&snapshot, ringBuffer)
4177		return out, metadata, &smithy.DeserializationError{
4178			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4179			Snapshot: snapshot.Bytes(),
4180		}
4181	}
4182
4183	return out, metadata, err
4184}
4185
4186func awsRestjson1_deserializeOpErrorCreateProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4187	var errorBuffer bytes.Buffer
4188	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4189		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4190	}
4191	errorBody := bytes.NewReader(errorBuffer.Bytes())
4192
4193	errorCode := "UnknownError"
4194	errorMessage := errorCode
4195
4196	code := response.Header.Get("X-Amzn-ErrorType")
4197	if len(code) != 0 {
4198		errorCode = restjson.SanitizeErrorCode(code)
4199	}
4200
4201	var buff [1024]byte
4202	ringBuffer := smithyio.NewRingBuffer(buff[:])
4203
4204	body := io.TeeReader(errorBody, ringBuffer)
4205	decoder := json.NewDecoder(body)
4206	decoder.UseNumber()
4207	code, message, err := restjson.GetErrorInfo(decoder)
4208	if err != nil {
4209		var snapshot bytes.Buffer
4210		io.Copy(&snapshot, ringBuffer)
4211		err = &smithy.DeserializationError{
4212			Err:      fmt.Errorf("failed to decode response body, %w", err),
4213			Snapshot: snapshot.Bytes(),
4214		}
4215		return err
4216	}
4217
4218	errorBody.Seek(0, io.SeekStart)
4219	if len(code) != 0 {
4220		errorCode = restjson.SanitizeErrorCode(code)
4221	}
4222	if len(message) != 0 {
4223		errorMessage = message
4224	}
4225
4226	switch {
4227	case strings.EqualFold("BadRequestException", errorCode):
4228		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4229
4230	case strings.EqualFold("ForbiddenException", errorCode):
4231		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4232
4233	case strings.EqualFold("NotFoundException", errorCode):
4234		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
4235
4236	case strings.EqualFold("ServiceFailureException", errorCode):
4237		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4238
4239	case strings.EqualFold("ServiceUnavailableException", errorCode):
4240		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4241
4242	case strings.EqualFold("ThrottledClientException", errorCode):
4243		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4244
4245	case strings.EqualFold("UnauthorizedClientException", errorCode):
4246		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4247
4248	default:
4249		genericError := &smithy.GenericAPIError{
4250			Code:    errorCode,
4251			Message: errorMessage,
4252		}
4253		return genericError
4254
4255	}
4256}
4257
4258func awsRestjson1_deserializeOpDocumentCreateProxySessionOutput(v **CreateProxySessionOutput, value interface{}) error {
4259	if v == nil {
4260		return fmt.Errorf("unexpected nil of type %T", v)
4261	}
4262	if value == nil {
4263		return nil
4264	}
4265
4266	shape, ok := value.(map[string]interface{})
4267	if !ok {
4268		return fmt.Errorf("unexpected JSON type %v", value)
4269	}
4270
4271	var sv *CreateProxySessionOutput
4272	if *v == nil {
4273		sv = &CreateProxySessionOutput{}
4274	} else {
4275		sv = *v
4276	}
4277
4278	for key, value := range shape {
4279		switch key {
4280		case "ProxySession":
4281			if err := awsRestjson1_deserializeDocumentProxySession(&sv.ProxySession, value); err != nil {
4282				return err
4283			}
4284
4285		default:
4286			_, _ = key, value
4287
4288		}
4289	}
4290	*v = sv
4291	return nil
4292}
4293
4294type awsRestjson1_deserializeOpCreateRoom struct {
4295}
4296
4297func (*awsRestjson1_deserializeOpCreateRoom) ID() string {
4298	return "OperationDeserializer"
4299}
4300
4301func (m *awsRestjson1_deserializeOpCreateRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4302	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4303) {
4304	out, metadata, err = next.HandleDeserialize(ctx, in)
4305	if err != nil {
4306		return out, metadata, err
4307	}
4308
4309	response, ok := out.RawResponse.(*smithyhttp.Response)
4310	if !ok {
4311		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4312	}
4313
4314	if response.StatusCode < 200 || response.StatusCode >= 300 {
4315		return out, metadata, awsRestjson1_deserializeOpErrorCreateRoom(response, &metadata)
4316	}
4317	output := &CreateRoomOutput{}
4318	out.Result = output
4319
4320	var buff [1024]byte
4321	ringBuffer := smithyio.NewRingBuffer(buff[:])
4322
4323	body := io.TeeReader(response.Body, ringBuffer)
4324
4325	decoder := json.NewDecoder(body)
4326	decoder.UseNumber()
4327	var shape interface{}
4328	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4329		var snapshot bytes.Buffer
4330		io.Copy(&snapshot, ringBuffer)
4331		err = &smithy.DeserializationError{
4332			Err:      fmt.Errorf("failed to decode response body, %w", err),
4333			Snapshot: snapshot.Bytes(),
4334		}
4335		return out, metadata, err
4336	}
4337
4338	err = awsRestjson1_deserializeOpDocumentCreateRoomOutput(&output, shape)
4339	if err != nil {
4340		var snapshot bytes.Buffer
4341		io.Copy(&snapshot, ringBuffer)
4342		return out, metadata, &smithy.DeserializationError{
4343			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4344			Snapshot: snapshot.Bytes(),
4345		}
4346	}
4347
4348	return out, metadata, err
4349}
4350
4351func awsRestjson1_deserializeOpErrorCreateRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4352	var errorBuffer bytes.Buffer
4353	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4354		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4355	}
4356	errorBody := bytes.NewReader(errorBuffer.Bytes())
4357
4358	errorCode := "UnknownError"
4359	errorMessage := errorCode
4360
4361	code := response.Header.Get("X-Amzn-ErrorType")
4362	if len(code) != 0 {
4363		errorCode = restjson.SanitizeErrorCode(code)
4364	}
4365
4366	var buff [1024]byte
4367	ringBuffer := smithyio.NewRingBuffer(buff[:])
4368
4369	body := io.TeeReader(errorBody, ringBuffer)
4370	decoder := json.NewDecoder(body)
4371	decoder.UseNumber()
4372	code, message, err := restjson.GetErrorInfo(decoder)
4373	if err != nil {
4374		var snapshot bytes.Buffer
4375		io.Copy(&snapshot, ringBuffer)
4376		err = &smithy.DeserializationError{
4377			Err:      fmt.Errorf("failed to decode response body, %w", err),
4378			Snapshot: snapshot.Bytes(),
4379		}
4380		return err
4381	}
4382
4383	errorBody.Seek(0, io.SeekStart)
4384	if len(code) != 0 {
4385		errorCode = restjson.SanitizeErrorCode(code)
4386	}
4387	if len(message) != 0 {
4388		errorMessage = message
4389	}
4390
4391	switch {
4392	case strings.EqualFold("BadRequestException", errorCode):
4393		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4394
4395	case strings.EqualFold("ForbiddenException", errorCode):
4396		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4397
4398	case strings.EqualFold("NotFoundException", errorCode):
4399		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
4400
4401	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4402		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4403
4404	case strings.EqualFold("ServiceFailureException", errorCode):
4405		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4406
4407	case strings.EqualFold("ServiceUnavailableException", errorCode):
4408		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4409
4410	case strings.EqualFold("ThrottledClientException", errorCode):
4411		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4412
4413	case strings.EqualFold("UnauthorizedClientException", errorCode):
4414		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4415
4416	default:
4417		genericError := &smithy.GenericAPIError{
4418			Code:    errorCode,
4419			Message: errorMessage,
4420		}
4421		return genericError
4422
4423	}
4424}
4425
4426func awsRestjson1_deserializeOpDocumentCreateRoomOutput(v **CreateRoomOutput, value interface{}) error {
4427	if v == nil {
4428		return fmt.Errorf("unexpected nil of type %T", v)
4429	}
4430	if value == nil {
4431		return nil
4432	}
4433
4434	shape, ok := value.(map[string]interface{})
4435	if !ok {
4436		return fmt.Errorf("unexpected JSON type %v", value)
4437	}
4438
4439	var sv *CreateRoomOutput
4440	if *v == nil {
4441		sv = &CreateRoomOutput{}
4442	} else {
4443		sv = *v
4444	}
4445
4446	for key, value := range shape {
4447		switch key {
4448		case "Room":
4449			if err := awsRestjson1_deserializeDocumentRoom(&sv.Room, value); err != nil {
4450				return err
4451			}
4452
4453		default:
4454			_, _ = key, value
4455
4456		}
4457	}
4458	*v = sv
4459	return nil
4460}
4461
4462type awsRestjson1_deserializeOpCreateRoomMembership struct {
4463}
4464
4465func (*awsRestjson1_deserializeOpCreateRoomMembership) ID() string {
4466	return "OperationDeserializer"
4467}
4468
4469func (m *awsRestjson1_deserializeOpCreateRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4470	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4471) {
4472	out, metadata, err = next.HandleDeserialize(ctx, in)
4473	if err != nil {
4474		return out, metadata, err
4475	}
4476
4477	response, ok := out.RawResponse.(*smithyhttp.Response)
4478	if !ok {
4479		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4480	}
4481
4482	if response.StatusCode < 200 || response.StatusCode >= 300 {
4483		return out, metadata, awsRestjson1_deserializeOpErrorCreateRoomMembership(response, &metadata)
4484	}
4485	output := &CreateRoomMembershipOutput{}
4486	out.Result = output
4487
4488	var buff [1024]byte
4489	ringBuffer := smithyio.NewRingBuffer(buff[:])
4490
4491	body := io.TeeReader(response.Body, ringBuffer)
4492
4493	decoder := json.NewDecoder(body)
4494	decoder.UseNumber()
4495	var shape interface{}
4496	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4497		var snapshot bytes.Buffer
4498		io.Copy(&snapshot, ringBuffer)
4499		err = &smithy.DeserializationError{
4500			Err:      fmt.Errorf("failed to decode response body, %w", err),
4501			Snapshot: snapshot.Bytes(),
4502		}
4503		return out, metadata, err
4504	}
4505
4506	err = awsRestjson1_deserializeOpDocumentCreateRoomMembershipOutput(&output, shape)
4507	if err != nil {
4508		var snapshot bytes.Buffer
4509		io.Copy(&snapshot, ringBuffer)
4510		return out, metadata, &smithy.DeserializationError{
4511			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4512			Snapshot: snapshot.Bytes(),
4513		}
4514	}
4515
4516	return out, metadata, err
4517}
4518
4519func awsRestjson1_deserializeOpErrorCreateRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4520	var errorBuffer bytes.Buffer
4521	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4522		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4523	}
4524	errorBody := bytes.NewReader(errorBuffer.Bytes())
4525
4526	errorCode := "UnknownError"
4527	errorMessage := errorCode
4528
4529	code := response.Header.Get("X-Amzn-ErrorType")
4530	if len(code) != 0 {
4531		errorCode = restjson.SanitizeErrorCode(code)
4532	}
4533
4534	var buff [1024]byte
4535	ringBuffer := smithyio.NewRingBuffer(buff[:])
4536
4537	body := io.TeeReader(errorBody, ringBuffer)
4538	decoder := json.NewDecoder(body)
4539	decoder.UseNumber()
4540	code, message, err := restjson.GetErrorInfo(decoder)
4541	if err != nil {
4542		var snapshot bytes.Buffer
4543		io.Copy(&snapshot, ringBuffer)
4544		err = &smithy.DeserializationError{
4545			Err:      fmt.Errorf("failed to decode response body, %w", err),
4546			Snapshot: snapshot.Bytes(),
4547		}
4548		return err
4549	}
4550
4551	errorBody.Seek(0, io.SeekStart)
4552	if len(code) != 0 {
4553		errorCode = restjson.SanitizeErrorCode(code)
4554	}
4555	if len(message) != 0 {
4556		errorMessage = message
4557	}
4558
4559	switch {
4560	case strings.EqualFold("BadRequestException", errorCode):
4561		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4562
4563	case strings.EqualFold("ConflictException", errorCode):
4564		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
4565
4566	case strings.EqualFold("ForbiddenException", errorCode):
4567		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4568
4569	case strings.EqualFold("NotFoundException", errorCode):
4570		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
4571
4572	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4573		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4574
4575	case strings.EqualFold("ServiceFailureException", errorCode):
4576		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4577
4578	case strings.EqualFold("ServiceUnavailableException", errorCode):
4579		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4580
4581	case strings.EqualFold("ThrottledClientException", errorCode):
4582		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4583
4584	case strings.EqualFold("UnauthorizedClientException", errorCode):
4585		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4586
4587	default:
4588		genericError := &smithy.GenericAPIError{
4589			Code:    errorCode,
4590			Message: errorMessage,
4591		}
4592		return genericError
4593
4594	}
4595}
4596
4597func awsRestjson1_deserializeOpDocumentCreateRoomMembershipOutput(v **CreateRoomMembershipOutput, value interface{}) error {
4598	if v == nil {
4599		return fmt.Errorf("unexpected nil of type %T", v)
4600	}
4601	if value == nil {
4602		return nil
4603	}
4604
4605	shape, ok := value.(map[string]interface{})
4606	if !ok {
4607		return fmt.Errorf("unexpected JSON type %v", value)
4608	}
4609
4610	var sv *CreateRoomMembershipOutput
4611	if *v == nil {
4612		sv = &CreateRoomMembershipOutput{}
4613	} else {
4614		sv = *v
4615	}
4616
4617	for key, value := range shape {
4618		switch key {
4619		case "RoomMembership":
4620			if err := awsRestjson1_deserializeDocumentRoomMembership(&sv.RoomMembership, value); err != nil {
4621				return err
4622			}
4623
4624		default:
4625			_, _ = key, value
4626
4627		}
4628	}
4629	*v = sv
4630	return nil
4631}
4632
4633type awsRestjson1_deserializeOpCreateSipMediaApplication struct {
4634}
4635
4636func (*awsRestjson1_deserializeOpCreateSipMediaApplication) ID() string {
4637	return "OperationDeserializer"
4638}
4639
4640func (m *awsRestjson1_deserializeOpCreateSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4641	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4642) {
4643	out, metadata, err = next.HandleDeserialize(ctx, in)
4644	if err != nil {
4645		return out, metadata, err
4646	}
4647
4648	response, ok := out.RawResponse.(*smithyhttp.Response)
4649	if !ok {
4650		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4651	}
4652
4653	if response.StatusCode < 200 || response.StatusCode >= 300 {
4654		return out, metadata, awsRestjson1_deserializeOpErrorCreateSipMediaApplication(response, &metadata)
4655	}
4656	output := &CreateSipMediaApplicationOutput{}
4657	out.Result = output
4658
4659	var buff [1024]byte
4660	ringBuffer := smithyio.NewRingBuffer(buff[:])
4661
4662	body := io.TeeReader(response.Body, ringBuffer)
4663
4664	decoder := json.NewDecoder(body)
4665	decoder.UseNumber()
4666	var shape interface{}
4667	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4668		var snapshot bytes.Buffer
4669		io.Copy(&snapshot, ringBuffer)
4670		err = &smithy.DeserializationError{
4671			Err:      fmt.Errorf("failed to decode response body, %w", err),
4672			Snapshot: snapshot.Bytes(),
4673		}
4674		return out, metadata, err
4675	}
4676
4677	err = awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationOutput(&output, shape)
4678	if err != nil {
4679		var snapshot bytes.Buffer
4680		io.Copy(&snapshot, ringBuffer)
4681		return out, metadata, &smithy.DeserializationError{
4682			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4683			Snapshot: snapshot.Bytes(),
4684		}
4685	}
4686
4687	return out, metadata, err
4688}
4689
4690func awsRestjson1_deserializeOpErrorCreateSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4691	var errorBuffer bytes.Buffer
4692	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4693		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4694	}
4695	errorBody := bytes.NewReader(errorBuffer.Bytes())
4696
4697	errorCode := "UnknownError"
4698	errorMessage := errorCode
4699
4700	code := response.Header.Get("X-Amzn-ErrorType")
4701	if len(code) != 0 {
4702		errorCode = restjson.SanitizeErrorCode(code)
4703	}
4704
4705	var buff [1024]byte
4706	ringBuffer := smithyio.NewRingBuffer(buff[:])
4707
4708	body := io.TeeReader(errorBody, ringBuffer)
4709	decoder := json.NewDecoder(body)
4710	decoder.UseNumber()
4711	code, message, err := restjson.GetErrorInfo(decoder)
4712	if err != nil {
4713		var snapshot bytes.Buffer
4714		io.Copy(&snapshot, ringBuffer)
4715		err = &smithy.DeserializationError{
4716			Err:      fmt.Errorf("failed to decode response body, %w", err),
4717			Snapshot: snapshot.Bytes(),
4718		}
4719		return err
4720	}
4721
4722	errorBody.Seek(0, io.SeekStart)
4723	if len(code) != 0 {
4724		errorCode = restjson.SanitizeErrorCode(code)
4725	}
4726	if len(message) != 0 {
4727		errorMessage = message
4728	}
4729
4730	switch {
4731	case strings.EqualFold("AccessDeniedException", errorCode):
4732		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
4733
4734	case strings.EqualFold("BadRequestException", errorCode):
4735		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4736
4737	case strings.EqualFold("ConflictException", errorCode):
4738		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
4739
4740	case strings.EqualFold("ForbiddenException", errorCode):
4741		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4742
4743	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4744		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4745
4746	case strings.EqualFold("ServiceFailureException", errorCode):
4747		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4748
4749	case strings.EqualFold("ServiceUnavailableException", errorCode):
4750		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4751
4752	case strings.EqualFold("ThrottledClientException", errorCode):
4753		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4754
4755	case strings.EqualFold("UnauthorizedClientException", errorCode):
4756		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4757
4758	default:
4759		genericError := &smithy.GenericAPIError{
4760			Code:    errorCode,
4761			Message: errorMessage,
4762		}
4763		return genericError
4764
4765	}
4766}
4767
4768func awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationOutput(v **CreateSipMediaApplicationOutput, value interface{}) error {
4769	if v == nil {
4770		return fmt.Errorf("unexpected nil of type %T", v)
4771	}
4772	if value == nil {
4773		return nil
4774	}
4775
4776	shape, ok := value.(map[string]interface{})
4777	if !ok {
4778		return fmt.Errorf("unexpected JSON type %v", value)
4779	}
4780
4781	var sv *CreateSipMediaApplicationOutput
4782	if *v == nil {
4783		sv = &CreateSipMediaApplicationOutput{}
4784	} else {
4785		sv = *v
4786	}
4787
4788	for key, value := range shape {
4789		switch key {
4790		case "SipMediaApplication":
4791			if err := awsRestjson1_deserializeDocumentSipMediaApplication(&sv.SipMediaApplication, value); err != nil {
4792				return err
4793			}
4794
4795		default:
4796			_, _ = key, value
4797
4798		}
4799	}
4800	*v = sv
4801	return nil
4802}
4803
4804type awsRestjson1_deserializeOpCreateSipMediaApplicationCall struct {
4805}
4806
4807func (*awsRestjson1_deserializeOpCreateSipMediaApplicationCall) ID() string {
4808	return "OperationDeserializer"
4809}
4810
4811func (m *awsRestjson1_deserializeOpCreateSipMediaApplicationCall) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4812	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4813) {
4814	out, metadata, err = next.HandleDeserialize(ctx, in)
4815	if err != nil {
4816		return out, metadata, err
4817	}
4818
4819	response, ok := out.RawResponse.(*smithyhttp.Response)
4820	if !ok {
4821		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4822	}
4823
4824	if response.StatusCode < 200 || response.StatusCode >= 300 {
4825		return out, metadata, awsRestjson1_deserializeOpErrorCreateSipMediaApplicationCall(response, &metadata)
4826	}
4827	output := &CreateSipMediaApplicationCallOutput{}
4828	out.Result = output
4829
4830	var buff [1024]byte
4831	ringBuffer := smithyio.NewRingBuffer(buff[:])
4832
4833	body := io.TeeReader(response.Body, ringBuffer)
4834
4835	decoder := json.NewDecoder(body)
4836	decoder.UseNumber()
4837	var shape interface{}
4838	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
4839		var snapshot bytes.Buffer
4840		io.Copy(&snapshot, ringBuffer)
4841		err = &smithy.DeserializationError{
4842			Err:      fmt.Errorf("failed to decode response body, %w", err),
4843			Snapshot: snapshot.Bytes(),
4844		}
4845		return out, metadata, err
4846	}
4847
4848	err = awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationCallOutput(&output, shape)
4849	if err != nil {
4850		var snapshot bytes.Buffer
4851		io.Copy(&snapshot, ringBuffer)
4852		return out, metadata, &smithy.DeserializationError{
4853			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
4854			Snapshot: snapshot.Bytes(),
4855		}
4856	}
4857
4858	return out, metadata, err
4859}
4860
4861func awsRestjson1_deserializeOpErrorCreateSipMediaApplicationCall(response *smithyhttp.Response, metadata *middleware.Metadata) error {
4862	var errorBuffer bytes.Buffer
4863	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
4864		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
4865	}
4866	errorBody := bytes.NewReader(errorBuffer.Bytes())
4867
4868	errorCode := "UnknownError"
4869	errorMessage := errorCode
4870
4871	code := response.Header.Get("X-Amzn-ErrorType")
4872	if len(code) != 0 {
4873		errorCode = restjson.SanitizeErrorCode(code)
4874	}
4875
4876	var buff [1024]byte
4877	ringBuffer := smithyio.NewRingBuffer(buff[:])
4878
4879	body := io.TeeReader(errorBody, ringBuffer)
4880	decoder := json.NewDecoder(body)
4881	decoder.UseNumber()
4882	code, message, err := restjson.GetErrorInfo(decoder)
4883	if err != nil {
4884		var snapshot bytes.Buffer
4885		io.Copy(&snapshot, ringBuffer)
4886		err = &smithy.DeserializationError{
4887			Err:      fmt.Errorf("failed to decode response body, %w", err),
4888			Snapshot: snapshot.Bytes(),
4889		}
4890		return err
4891	}
4892
4893	errorBody.Seek(0, io.SeekStart)
4894	if len(code) != 0 {
4895		errorCode = restjson.SanitizeErrorCode(code)
4896	}
4897	if len(message) != 0 {
4898		errorMessage = message
4899	}
4900
4901	switch {
4902	case strings.EqualFold("BadRequestException", errorCode):
4903		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
4904
4905	case strings.EqualFold("ForbiddenException", errorCode):
4906		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
4907
4908	case strings.EqualFold("ResourceLimitExceededException", errorCode):
4909		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
4910
4911	case strings.EqualFold("ServiceFailureException", errorCode):
4912		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
4913
4914	case strings.EqualFold("ServiceUnavailableException", errorCode):
4915		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
4916
4917	case strings.EqualFold("ThrottledClientException", errorCode):
4918		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
4919
4920	case strings.EqualFold("UnauthorizedClientException", errorCode):
4921		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
4922
4923	default:
4924		genericError := &smithy.GenericAPIError{
4925			Code:    errorCode,
4926			Message: errorMessage,
4927		}
4928		return genericError
4929
4930	}
4931}
4932
4933func awsRestjson1_deserializeOpDocumentCreateSipMediaApplicationCallOutput(v **CreateSipMediaApplicationCallOutput, value interface{}) error {
4934	if v == nil {
4935		return fmt.Errorf("unexpected nil of type %T", v)
4936	}
4937	if value == nil {
4938		return nil
4939	}
4940
4941	shape, ok := value.(map[string]interface{})
4942	if !ok {
4943		return fmt.Errorf("unexpected JSON type %v", value)
4944	}
4945
4946	var sv *CreateSipMediaApplicationCallOutput
4947	if *v == nil {
4948		sv = &CreateSipMediaApplicationCallOutput{}
4949	} else {
4950		sv = *v
4951	}
4952
4953	for key, value := range shape {
4954		switch key {
4955		case "SipMediaApplicationCall":
4956			if err := awsRestjson1_deserializeDocumentSipMediaApplicationCall(&sv.SipMediaApplicationCall, value); err != nil {
4957				return err
4958			}
4959
4960		default:
4961			_, _ = key, value
4962
4963		}
4964	}
4965	*v = sv
4966	return nil
4967}
4968
4969type awsRestjson1_deserializeOpCreateSipRule struct {
4970}
4971
4972func (*awsRestjson1_deserializeOpCreateSipRule) ID() string {
4973	return "OperationDeserializer"
4974}
4975
4976func (m *awsRestjson1_deserializeOpCreateSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
4977	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
4978) {
4979	out, metadata, err = next.HandleDeserialize(ctx, in)
4980	if err != nil {
4981		return out, metadata, err
4982	}
4983
4984	response, ok := out.RawResponse.(*smithyhttp.Response)
4985	if !ok {
4986		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
4987	}
4988
4989	if response.StatusCode < 200 || response.StatusCode >= 300 {
4990		return out, metadata, awsRestjson1_deserializeOpErrorCreateSipRule(response, &metadata)
4991	}
4992	output := &CreateSipRuleOutput{}
4993	out.Result = output
4994
4995	var buff [1024]byte
4996	ringBuffer := smithyio.NewRingBuffer(buff[:])
4997
4998	body := io.TeeReader(response.Body, ringBuffer)
4999
5000	decoder := json.NewDecoder(body)
5001	decoder.UseNumber()
5002	var shape interface{}
5003	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5004		var snapshot bytes.Buffer
5005		io.Copy(&snapshot, ringBuffer)
5006		err = &smithy.DeserializationError{
5007			Err:      fmt.Errorf("failed to decode response body, %w", err),
5008			Snapshot: snapshot.Bytes(),
5009		}
5010		return out, metadata, err
5011	}
5012
5013	err = awsRestjson1_deserializeOpDocumentCreateSipRuleOutput(&output, shape)
5014	if err != nil {
5015		var snapshot bytes.Buffer
5016		io.Copy(&snapshot, ringBuffer)
5017		return out, metadata, &smithy.DeserializationError{
5018			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5019			Snapshot: snapshot.Bytes(),
5020		}
5021	}
5022
5023	return out, metadata, err
5024}
5025
5026func awsRestjson1_deserializeOpErrorCreateSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5027	var errorBuffer bytes.Buffer
5028	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5029		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5030	}
5031	errorBody := bytes.NewReader(errorBuffer.Bytes())
5032
5033	errorCode := "UnknownError"
5034	errorMessage := errorCode
5035
5036	code := response.Header.Get("X-Amzn-ErrorType")
5037	if len(code) != 0 {
5038		errorCode = restjson.SanitizeErrorCode(code)
5039	}
5040
5041	var buff [1024]byte
5042	ringBuffer := smithyio.NewRingBuffer(buff[:])
5043
5044	body := io.TeeReader(errorBody, ringBuffer)
5045	decoder := json.NewDecoder(body)
5046	decoder.UseNumber()
5047	code, message, err := restjson.GetErrorInfo(decoder)
5048	if err != nil {
5049		var snapshot bytes.Buffer
5050		io.Copy(&snapshot, ringBuffer)
5051		err = &smithy.DeserializationError{
5052			Err:      fmt.Errorf("failed to decode response body, %w", err),
5053			Snapshot: snapshot.Bytes(),
5054		}
5055		return err
5056	}
5057
5058	errorBody.Seek(0, io.SeekStart)
5059	if len(code) != 0 {
5060		errorCode = restjson.SanitizeErrorCode(code)
5061	}
5062	if len(message) != 0 {
5063		errorMessage = message
5064	}
5065
5066	switch {
5067	case strings.EqualFold("AccessDeniedException", errorCode):
5068		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5069
5070	case strings.EqualFold("BadRequestException", errorCode):
5071		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5072
5073	case strings.EqualFold("ConflictException", errorCode):
5074		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
5075
5076	case strings.EqualFold("ForbiddenException", errorCode):
5077		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5078
5079	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5080		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5081
5082	case strings.EqualFold("ServiceFailureException", errorCode):
5083		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5084
5085	case strings.EqualFold("ServiceUnavailableException", errorCode):
5086		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5087
5088	case strings.EqualFold("ThrottledClientException", errorCode):
5089		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5090
5091	case strings.EqualFold("UnauthorizedClientException", errorCode):
5092		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5093
5094	default:
5095		genericError := &smithy.GenericAPIError{
5096			Code:    errorCode,
5097			Message: errorMessage,
5098		}
5099		return genericError
5100
5101	}
5102}
5103
5104func awsRestjson1_deserializeOpDocumentCreateSipRuleOutput(v **CreateSipRuleOutput, value interface{}) error {
5105	if v == nil {
5106		return fmt.Errorf("unexpected nil of type %T", v)
5107	}
5108	if value == nil {
5109		return nil
5110	}
5111
5112	shape, ok := value.(map[string]interface{})
5113	if !ok {
5114		return fmt.Errorf("unexpected JSON type %v", value)
5115	}
5116
5117	var sv *CreateSipRuleOutput
5118	if *v == nil {
5119		sv = &CreateSipRuleOutput{}
5120	} else {
5121		sv = *v
5122	}
5123
5124	for key, value := range shape {
5125		switch key {
5126		case "SipRule":
5127			if err := awsRestjson1_deserializeDocumentSipRule(&sv.SipRule, value); err != nil {
5128				return err
5129			}
5130
5131		default:
5132			_, _ = key, value
5133
5134		}
5135	}
5136	*v = sv
5137	return nil
5138}
5139
5140type awsRestjson1_deserializeOpCreateUser struct {
5141}
5142
5143func (*awsRestjson1_deserializeOpCreateUser) ID() string {
5144	return "OperationDeserializer"
5145}
5146
5147func (m *awsRestjson1_deserializeOpCreateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5148	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5149) {
5150	out, metadata, err = next.HandleDeserialize(ctx, in)
5151	if err != nil {
5152		return out, metadata, err
5153	}
5154
5155	response, ok := out.RawResponse.(*smithyhttp.Response)
5156	if !ok {
5157		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5158	}
5159
5160	if response.StatusCode < 200 || response.StatusCode >= 300 {
5161		return out, metadata, awsRestjson1_deserializeOpErrorCreateUser(response, &metadata)
5162	}
5163	output := &CreateUserOutput{}
5164	out.Result = output
5165
5166	var buff [1024]byte
5167	ringBuffer := smithyio.NewRingBuffer(buff[:])
5168
5169	body := io.TeeReader(response.Body, ringBuffer)
5170
5171	decoder := json.NewDecoder(body)
5172	decoder.UseNumber()
5173	var shape interface{}
5174	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5175		var snapshot bytes.Buffer
5176		io.Copy(&snapshot, ringBuffer)
5177		err = &smithy.DeserializationError{
5178			Err:      fmt.Errorf("failed to decode response body, %w", err),
5179			Snapshot: snapshot.Bytes(),
5180		}
5181		return out, metadata, err
5182	}
5183
5184	err = awsRestjson1_deserializeOpDocumentCreateUserOutput(&output, shape)
5185	if err != nil {
5186		var snapshot bytes.Buffer
5187		io.Copy(&snapshot, ringBuffer)
5188		return out, metadata, &smithy.DeserializationError{
5189			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5190			Snapshot: snapshot.Bytes(),
5191		}
5192	}
5193
5194	return out, metadata, err
5195}
5196
5197func awsRestjson1_deserializeOpErrorCreateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5198	var errorBuffer bytes.Buffer
5199	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5200		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5201	}
5202	errorBody := bytes.NewReader(errorBuffer.Bytes())
5203
5204	errorCode := "UnknownError"
5205	errorMessage := errorCode
5206
5207	code := response.Header.Get("X-Amzn-ErrorType")
5208	if len(code) != 0 {
5209		errorCode = restjson.SanitizeErrorCode(code)
5210	}
5211
5212	var buff [1024]byte
5213	ringBuffer := smithyio.NewRingBuffer(buff[:])
5214
5215	body := io.TeeReader(errorBody, ringBuffer)
5216	decoder := json.NewDecoder(body)
5217	decoder.UseNumber()
5218	code, message, err := restjson.GetErrorInfo(decoder)
5219	if err != nil {
5220		var snapshot bytes.Buffer
5221		io.Copy(&snapshot, ringBuffer)
5222		err = &smithy.DeserializationError{
5223			Err:      fmt.Errorf("failed to decode response body, %w", err),
5224			Snapshot: snapshot.Bytes(),
5225		}
5226		return err
5227	}
5228
5229	errorBody.Seek(0, io.SeekStart)
5230	if len(code) != 0 {
5231		errorCode = restjson.SanitizeErrorCode(code)
5232	}
5233	if len(message) != 0 {
5234		errorMessage = message
5235	}
5236
5237	switch {
5238	case strings.EqualFold("BadRequestException", errorCode):
5239		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5240
5241	case strings.EqualFold("ConflictException", errorCode):
5242		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
5243
5244	case strings.EqualFold("ForbiddenException", errorCode):
5245		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5246
5247	case strings.EqualFold("NotFoundException", errorCode):
5248		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
5249
5250	case strings.EqualFold("ServiceFailureException", errorCode):
5251		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5252
5253	case strings.EqualFold("ServiceUnavailableException", errorCode):
5254		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5255
5256	case strings.EqualFold("ThrottledClientException", errorCode):
5257		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5258
5259	case strings.EqualFold("UnauthorizedClientException", errorCode):
5260		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5261
5262	default:
5263		genericError := &smithy.GenericAPIError{
5264			Code:    errorCode,
5265			Message: errorMessage,
5266		}
5267		return genericError
5268
5269	}
5270}
5271
5272func awsRestjson1_deserializeOpDocumentCreateUserOutput(v **CreateUserOutput, value interface{}) error {
5273	if v == nil {
5274		return fmt.Errorf("unexpected nil of type %T", v)
5275	}
5276	if value == nil {
5277		return nil
5278	}
5279
5280	shape, ok := value.(map[string]interface{})
5281	if !ok {
5282		return fmt.Errorf("unexpected JSON type %v", value)
5283	}
5284
5285	var sv *CreateUserOutput
5286	if *v == nil {
5287		sv = &CreateUserOutput{}
5288	} else {
5289		sv = *v
5290	}
5291
5292	for key, value := range shape {
5293		switch key {
5294		case "User":
5295			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
5296				return err
5297			}
5298
5299		default:
5300			_, _ = key, value
5301
5302		}
5303	}
5304	*v = sv
5305	return nil
5306}
5307
5308type awsRestjson1_deserializeOpCreateVoiceConnector struct {
5309}
5310
5311func (*awsRestjson1_deserializeOpCreateVoiceConnector) ID() string {
5312	return "OperationDeserializer"
5313}
5314
5315func (m *awsRestjson1_deserializeOpCreateVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5316	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5317) {
5318	out, metadata, err = next.HandleDeserialize(ctx, in)
5319	if err != nil {
5320		return out, metadata, err
5321	}
5322
5323	response, ok := out.RawResponse.(*smithyhttp.Response)
5324	if !ok {
5325		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5326	}
5327
5328	if response.StatusCode < 200 || response.StatusCode >= 300 {
5329		return out, metadata, awsRestjson1_deserializeOpErrorCreateVoiceConnector(response, &metadata)
5330	}
5331	output := &CreateVoiceConnectorOutput{}
5332	out.Result = output
5333
5334	var buff [1024]byte
5335	ringBuffer := smithyio.NewRingBuffer(buff[:])
5336
5337	body := io.TeeReader(response.Body, ringBuffer)
5338
5339	decoder := json.NewDecoder(body)
5340	decoder.UseNumber()
5341	var shape interface{}
5342	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5343		var snapshot bytes.Buffer
5344		io.Copy(&snapshot, ringBuffer)
5345		err = &smithy.DeserializationError{
5346			Err:      fmt.Errorf("failed to decode response body, %w", err),
5347			Snapshot: snapshot.Bytes(),
5348		}
5349		return out, metadata, err
5350	}
5351
5352	err = awsRestjson1_deserializeOpDocumentCreateVoiceConnectorOutput(&output, shape)
5353	if err != nil {
5354		var snapshot bytes.Buffer
5355		io.Copy(&snapshot, ringBuffer)
5356		return out, metadata, &smithy.DeserializationError{
5357			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5358			Snapshot: snapshot.Bytes(),
5359		}
5360	}
5361
5362	return out, metadata, err
5363}
5364
5365func awsRestjson1_deserializeOpErrorCreateVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5366	var errorBuffer bytes.Buffer
5367	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5368		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5369	}
5370	errorBody := bytes.NewReader(errorBuffer.Bytes())
5371
5372	errorCode := "UnknownError"
5373	errorMessage := errorCode
5374
5375	code := response.Header.Get("X-Amzn-ErrorType")
5376	if len(code) != 0 {
5377		errorCode = restjson.SanitizeErrorCode(code)
5378	}
5379
5380	var buff [1024]byte
5381	ringBuffer := smithyio.NewRingBuffer(buff[:])
5382
5383	body := io.TeeReader(errorBody, ringBuffer)
5384	decoder := json.NewDecoder(body)
5385	decoder.UseNumber()
5386	code, message, err := restjson.GetErrorInfo(decoder)
5387	if err != nil {
5388		var snapshot bytes.Buffer
5389		io.Copy(&snapshot, ringBuffer)
5390		err = &smithy.DeserializationError{
5391			Err:      fmt.Errorf("failed to decode response body, %w", err),
5392			Snapshot: snapshot.Bytes(),
5393		}
5394		return err
5395	}
5396
5397	errorBody.Seek(0, io.SeekStart)
5398	if len(code) != 0 {
5399		errorCode = restjson.SanitizeErrorCode(code)
5400	}
5401	if len(message) != 0 {
5402		errorMessage = message
5403	}
5404
5405	switch {
5406	case strings.EqualFold("AccessDeniedException", errorCode):
5407		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5408
5409	case strings.EqualFold("BadRequestException", errorCode):
5410		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5411
5412	case strings.EqualFold("ForbiddenException", errorCode):
5413		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5414
5415	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5416		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5417
5418	case strings.EqualFold("ServiceFailureException", errorCode):
5419		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5420
5421	case strings.EqualFold("ServiceUnavailableException", errorCode):
5422		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5423
5424	case strings.EqualFold("ThrottledClientException", errorCode):
5425		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5426
5427	case strings.EqualFold("UnauthorizedClientException", errorCode):
5428		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5429
5430	default:
5431		genericError := &smithy.GenericAPIError{
5432			Code:    errorCode,
5433			Message: errorMessage,
5434		}
5435		return genericError
5436
5437	}
5438}
5439
5440func awsRestjson1_deserializeOpDocumentCreateVoiceConnectorOutput(v **CreateVoiceConnectorOutput, value interface{}) error {
5441	if v == nil {
5442		return fmt.Errorf("unexpected nil of type %T", v)
5443	}
5444	if value == nil {
5445		return nil
5446	}
5447
5448	shape, ok := value.(map[string]interface{})
5449	if !ok {
5450		return fmt.Errorf("unexpected JSON type %v", value)
5451	}
5452
5453	var sv *CreateVoiceConnectorOutput
5454	if *v == nil {
5455		sv = &CreateVoiceConnectorOutput{}
5456	} else {
5457		sv = *v
5458	}
5459
5460	for key, value := range shape {
5461		switch key {
5462		case "VoiceConnector":
5463			if err := awsRestjson1_deserializeDocumentVoiceConnector(&sv.VoiceConnector, value); err != nil {
5464				return err
5465			}
5466
5467		default:
5468			_, _ = key, value
5469
5470		}
5471	}
5472	*v = sv
5473	return nil
5474}
5475
5476type awsRestjson1_deserializeOpCreateVoiceConnectorGroup struct {
5477}
5478
5479func (*awsRestjson1_deserializeOpCreateVoiceConnectorGroup) ID() string {
5480	return "OperationDeserializer"
5481}
5482
5483func (m *awsRestjson1_deserializeOpCreateVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5484	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5485) {
5486	out, metadata, err = next.HandleDeserialize(ctx, in)
5487	if err != nil {
5488		return out, metadata, err
5489	}
5490
5491	response, ok := out.RawResponse.(*smithyhttp.Response)
5492	if !ok {
5493		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5494	}
5495
5496	if response.StatusCode < 200 || response.StatusCode >= 300 {
5497		return out, metadata, awsRestjson1_deserializeOpErrorCreateVoiceConnectorGroup(response, &metadata)
5498	}
5499	output := &CreateVoiceConnectorGroupOutput{}
5500	out.Result = output
5501
5502	var buff [1024]byte
5503	ringBuffer := smithyio.NewRingBuffer(buff[:])
5504
5505	body := io.TeeReader(response.Body, ringBuffer)
5506
5507	decoder := json.NewDecoder(body)
5508	decoder.UseNumber()
5509	var shape interface{}
5510	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
5511		var snapshot bytes.Buffer
5512		io.Copy(&snapshot, ringBuffer)
5513		err = &smithy.DeserializationError{
5514			Err:      fmt.Errorf("failed to decode response body, %w", err),
5515			Snapshot: snapshot.Bytes(),
5516		}
5517		return out, metadata, err
5518	}
5519
5520	err = awsRestjson1_deserializeOpDocumentCreateVoiceConnectorGroupOutput(&output, shape)
5521	if err != nil {
5522		var snapshot bytes.Buffer
5523		io.Copy(&snapshot, ringBuffer)
5524		return out, metadata, &smithy.DeserializationError{
5525			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
5526			Snapshot: snapshot.Bytes(),
5527		}
5528	}
5529
5530	return out, metadata, err
5531}
5532
5533func awsRestjson1_deserializeOpErrorCreateVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5534	var errorBuffer bytes.Buffer
5535	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5536		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5537	}
5538	errorBody := bytes.NewReader(errorBuffer.Bytes())
5539
5540	errorCode := "UnknownError"
5541	errorMessage := errorCode
5542
5543	code := response.Header.Get("X-Amzn-ErrorType")
5544	if len(code) != 0 {
5545		errorCode = restjson.SanitizeErrorCode(code)
5546	}
5547
5548	var buff [1024]byte
5549	ringBuffer := smithyio.NewRingBuffer(buff[:])
5550
5551	body := io.TeeReader(errorBody, ringBuffer)
5552	decoder := json.NewDecoder(body)
5553	decoder.UseNumber()
5554	code, message, err := restjson.GetErrorInfo(decoder)
5555	if err != nil {
5556		var snapshot bytes.Buffer
5557		io.Copy(&snapshot, ringBuffer)
5558		err = &smithy.DeserializationError{
5559			Err:      fmt.Errorf("failed to decode response body, %w", err),
5560			Snapshot: snapshot.Bytes(),
5561		}
5562		return err
5563	}
5564
5565	errorBody.Seek(0, io.SeekStart)
5566	if len(code) != 0 {
5567		errorCode = restjson.SanitizeErrorCode(code)
5568	}
5569	if len(message) != 0 {
5570		errorMessage = message
5571	}
5572
5573	switch {
5574	case strings.EqualFold("AccessDeniedException", errorCode):
5575		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
5576
5577	case strings.EqualFold("BadRequestException", errorCode):
5578		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5579
5580	case strings.EqualFold("ForbiddenException", errorCode):
5581		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5582
5583	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5584		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5585
5586	case strings.EqualFold("ServiceFailureException", errorCode):
5587		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5588
5589	case strings.EqualFold("ServiceUnavailableException", errorCode):
5590		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5591
5592	case strings.EqualFold("ThrottledClientException", errorCode):
5593		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5594
5595	case strings.EqualFold("UnauthorizedClientException", errorCode):
5596		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5597
5598	default:
5599		genericError := &smithy.GenericAPIError{
5600			Code:    errorCode,
5601			Message: errorMessage,
5602		}
5603		return genericError
5604
5605	}
5606}
5607
5608func awsRestjson1_deserializeOpDocumentCreateVoiceConnectorGroupOutput(v **CreateVoiceConnectorGroupOutput, value interface{}) error {
5609	if v == nil {
5610		return fmt.Errorf("unexpected nil of type %T", v)
5611	}
5612	if value == nil {
5613		return nil
5614	}
5615
5616	shape, ok := value.(map[string]interface{})
5617	if !ok {
5618		return fmt.Errorf("unexpected JSON type %v", value)
5619	}
5620
5621	var sv *CreateVoiceConnectorGroupOutput
5622	if *v == nil {
5623		sv = &CreateVoiceConnectorGroupOutput{}
5624	} else {
5625		sv = *v
5626	}
5627
5628	for key, value := range shape {
5629		switch key {
5630		case "VoiceConnectorGroup":
5631			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&sv.VoiceConnectorGroup, value); err != nil {
5632				return err
5633			}
5634
5635		default:
5636			_, _ = key, value
5637
5638		}
5639	}
5640	*v = sv
5641	return nil
5642}
5643
5644type awsRestjson1_deserializeOpDeleteAccount struct {
5645}
5646
5647func (*awsRestjson1_deserializeOpDeleteAccount) ID() string {
5648	return "OperationDeserializer"
5649}
5650
5651func (m *awsRestjson1_deserializeOpDeleteAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5652	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5653) {
5654	out, metadata, err = next.HandleDeserialize(ctx, in)
5655	if err != nil {
5656		return out, metadata, err
5657	}
5658
5659	response, ok := out.RawResponse.(*smithyhttp.Response)
5660	if !ok {
5661		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5662	}
5663
5664	if response.StatusCode < 200 || response.StatusCode >= 300 {
5665		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAccount(response, &metadata)
5666	}
5667	output := &DeleteAccountOutput{}
5668	out.Result = output
5669
5670	return out, metadata, err
5671}
5672
5673func awsRestjson1_deserializeOpErrorDeleteAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5674	var errorBuffer bytes.Buffer
5675	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5676		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5677	}
5678	errorBody := bytes.NewReader(errorBuffer.Bytes())
5679
5680	errorCode := "UnknownError"
5681	errorMessage := errorCode
5682
5683	code := response.Header.Get("X-Amzn-ErrorType")
5684	if len(code) != 0 {
5685		errorCode = restjson.SanitizeErrorCode(code)
5686	}
5687
5688	var buff [1024]byte
5689	ringBuffer := smithyio.NewRingBuffer(buff[:])
5690
5691	body := io.TeeReader(errorBody, ringBuffer)
5692	decoder := json.NewDecoder(body)
5693	decoder.UseNumber()
5694	code, message, err := restjson.GetErrorInfo(decoder)
5695	if err != nil {
5696		var snapshot bytes.Buffer
5697		io.Copy(&snapshot, ringBuffer)
5698		err = &smithy.DeserializationError{
5699			Err:      fmt.Errorf("failed to decode response body, %w", err),
5700			Snapshot: snapshot.Bytes(),
5701		}
5702		return err
5703	}
5704
5705	errorBody.Seek(0, io.SeekStart)
5706	if len(code) != 0 {
5707		errorCode = restjson.SanitizeErrorCode(code)
5708	}
5709	if len(message) != 0 {
5710		errorMessage = message
5711	}
5712
5713	switch {
5714	case strings.EqualFold("BadRequestException", errorCode):
5715		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5716
5717	case strings.EqualFold("ForbiddenException", errorCode):
5718		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5719
5720	case strings.EqualFold("NotFoundException", errorCode):
5721		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
5722
5723	case strings.EqualFold("ServiceFailureException", errorCode):
5724		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5725
5726	case strings.EqualFold("ServiceUnavailableException", errorCode):
5727		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5728
5729	case strings.EqualFold("ThrottledClientException", errorCode):
5730		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5731
5732	case strings.EqualFold("UnauthorizedClientException", errorCode):
5733		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5734
5735	case strings.EqualFold("UnprocessableEntityException", errorCode):
5736		return awsRestjson1_deserializeErrorUnprocessableEntityException(response, errorBody)
5737
5738	default:
5739		genericError := &smithy.GenericAPIError{
5740			Code:    errorCode,
5741			Message: errorMessage,
5742		}
5743		return genericError
5744
5745	}
5746}
5747
5748type awsRestjson1_deserializeOpDeleteAppInstance struct {
5749}
5750
5751func (*awsRestjson1_deserializeOpDeleteAppInstance) ID() string {
5752	return "OperationDeserializer"
5753}
5754
5755func (m *awsRestjson1_deserializeOpDeleteAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5756	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5757) {
5758	out, metadata, err = next.HandleDeserialize(ctx, in)
5759	if err != nil {
5760		return out, metadata, err
5761	}
5762
5763	response, ok := out.RawResponse.(*smithyhttp.Response)
5764	if !ok {
5765		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5766	}
5767
5768	if response.StatusCode < 200 || response.StatusCode >= 300 {
5769		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstance(response, &metadata)
5770	}
5771	output := &DeleteAppInstanceOutput{}
5772	out.Result = output
5773
5774	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
5775		return out, metadata, &smithy.DeserializationError{
5776			Err: fmt.Errorf("failed to discard response body, %w", err),
5777		}
5778	}
5779
5780	return out, metadata, err
5781}
5782
5783func awsRestjson1_deserializeOpErrorDeleteAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5784	var errorBuffer bytes.Buffer
5785	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5786		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5787	}
5788	errorBody := bytes.NewReader(errorBuffer.Bytes())
5789
5790	errorCode := "UnknownError"
5791	errorMessage := errorCode
5792
5793	code := response.Header.Get("X-Amzn-ErrorType")
5794	if len(code) != 0 {
5795		errorCode = restjson.SanitizeErrorCode(code)
5796	}
5797
5798	var buff [1024]byte
5799	ringBuffer := smithyio.NewRingBuffer(buff[:])
5800
5801	body := io.TeeReader(errorBody, ringBuffer)
5802	decoder := json.NewDecoder(body)
5803	decoder.UseNumber()
5804	code, message, err := restjson.GetErrorInfo(decoder)
5805	if err != nil {
5806		var snapshot bytes.Buffer
5807		io.Copy(&snapshot, ringBuffer)
5808		err = &smithy.DeserializationError{
5809			Err:      fmt.Errorf("failed to decode response body, %w", err),
5810			Snapshot: snapshot.Bytes(),
5811		}
5812		return err
5813	}
5814
5815	errorBody.Seek(0, io.SeekStart)
5816	if len(code) != 0 {
5817		errorCode = restjson.SanitizeErrorCode(code)
5818	}
5819	if len(message) != 0 {
5820		errorMessage = message
5821	}
5822
5823	switch {
5824	case strings.EqualFold("BadRequestException", errorCode):
5825		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5826
5827	case strings.EqualFold("ForbiddenException", errorCode):
5828		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5829
5830	case strings.EqualFold("ServiceFailureException", errorCode):
5831		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5832
5833	case strings.EqualFold("ServiceUnavailableException", errorCode):
5834		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5835
5836	case strings.EqualFold("ThrottledClientException", errorCode):
5837		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5838
5839	case strings.EqualFold("UnauthorizedClientException", errorCode):
5840		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5841
5842	default:
5843		genericError := &smithy.GenericAPIError{
5844			Code:    errorCode,
5845			Message: errorMessage,
5846		}
5847		return genericError
5848
5849	}
5850}
5851
5852type awsRestjson1_deserializeOpDeleteAppInstanceAdmin struct {
5853}
5854
5855func (*awsRestjson1_deserializeOpDeleteAppInstanceAdmin) ID() string {
5856	return "OperationDeserializer"
5857}
5858
5859func (m *awsRestjson1_deserializeOpDeleteAppInstanceAdmin) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5860	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5861) {
5862	out, metadata, err = next.HandleDeserialize(ctx, in)
5863	if err != nil {
5864		return out, metadata, err
5865	}
5866
5867	response, ok := out.RawResponse.(*smithyhttp.Response)
5868	if !ok {
5869		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5870	}
5871
5872	if response.StatusCode < 200 || response.StatusCode >= 300 {
5873		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstanceAdmin(response, &metadata)
5874	}
5875	output := &DeleteAppInstanceAdminOutput{}
5876	out.Result = output
5877
5878	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
5879		return out, metadata, &smithy.DeserializationError{
5880			Err: fmt.Errorf("failed to discard response body, %w", err),
5881		}
5882	}
5883
5884	return out, metadata, err
5885}
5886
5887func awsRestjson1_deserializeOpErrorDeleteAppInstanceAdmin(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5888	var errorBuffer bytes.Buffer
5889	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
5890		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
5891	}
5892	errorBody := bytes.NewReader(errorBuffer.Bytes())
5893
5894	errorCode := "UnknownError"
5895	errorMessage := errorCode
5896
5897	code := response.Header.Get("X-Amzn-ErrorType")
5898	if len(code) != 0 {
5899		errorCode = restjson.SanitizeErrorCode(code)
5900	}
5901
5902	var buff [1024]byte
5903	ringBuffer := smithyio.NewRingBuffer(buff[:])
5904
5905	body := io.TeeReader(errorBody, ringBuffer)
5906	decoder := json.NewDecoder(body)
5907	decoder.UseNumber()
5908	code, message, err := restjson.GetErrorInfo(decoder)
5909	if err != nil {
5910		var snapshot bytes.Buffer
5911		io.Copy(&snapshot, ringBuffer)
5912		err = &smithy.DeserializationError{
5913			Err:      fmt.Errorf("failed to decode response body, %w", err),
5914			Snapshot: snapshot.Bytes(),
5915		}
5916		return err
5917	}
5918
5919	errorBody.Seek(0, io.SeekStart)
5920	if len(code) != 0 {
5921		errorCode = restjson.SanitizeErrorCode(code)
5922	}
5923	if len(message) != 0 {
5924		errorMessage = message
5925	}
5926
5927	switch {
5928	case strings.EqualFold("BadRequestException", errorCode):
5929		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
5930
5931	case strings.EqualFold("ConflictException", errorCode):
5932		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
5933
5934	case strings.EqualFold("ForbiddenException", errorCode):
5935		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
5936
5937	case strings.EqualFold("ResourceLimitExceededException", errorCode):
5938		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
5939
5940	case strings.EqualFold("ServiceFailureException", errorCode):
5941		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
5942
5943	case strings.EqualFold("ServiceUnavailableException", errorCode):
5944		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
5945
5946	case strings.EqualFold("ThrottledClientException", errorCode):
5947		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
5948
5949	case strings.EqualFold("UnauthorizedClientException", errorCode):
5950		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
5951
5952	default:
5953		genericError := &smithy.GenericAPIError{
5954			Code:    errorCode,
5955			Message: errorMessage,
5956		}
5957		return genericError
5958
5959	}
5960}
5961
5962type awsRestjson1_deserializeOpDeleteAppInstanceStreamingConfigurations struct {
5963}
5964
5965func (*awsRestjson1_deserializeOpDeleteAppInstanceStreamingConfigurations) ID() string {
5966	return "OperationDeserializer"
5967}
5968
5969func (m *awsRestjson1_deserializeOpDeleteAppInstanceStreamingConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
5970	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
5971) {
5972	out, metadata, err = next.HandleDeserialize(ctx, in)
5973	if err != nil {
5974		return out, metadata, err
5975	}
5976
5977	response, ok := out.RawResponse.(*smithyhttp.Response)
5978	if !ok {
5979		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
5980	}
5981
5982	if response.StatusCode < 200 || response.StatusCode >= 300 {
5983		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstanceStreamingConfigurations(response, &metadata)
5984	}
5985	output := &DeleteAppInstanceStreamingConfigurationsOutput{}
5986	out.Result = output
5987
5988	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
5989		return out, metadata, &smithy.DeserializationError{
5990			Err: fmt.Errorf("failed to discard response body, %w", err),
5991		}
5992	}
5993
5994	return out, metadata, err
5995}
5996
5997func awsRestjson1_deserializeOpErrorDeleteAppInstanceStreamingConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
5998	var errorBuffer bytes.Buffer
5999	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6000		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6001	}
6002	errorBody := bytes.NewReader(errorBuffer.Bytes())
6003
6004	errorCode := "UnknownError"
6005	errorMessage := errorCode
6006
6007	code := response.Header.Get("X-Amzn-ErrorType")
6008	if len(code) != 0 {
6009		errorCode = restjson.SanitizeErrorCode(code)
6010	}
6011
6012	var buff [1024]byte
6013	ringBuffer := smithyio.NewRingBuffer(buff[:])
6014
6015	body := io.TeeReader(errorBody, ringBuffer)
6016	decoder := json.NewDecoder(body)
6017	decoder.UseNumber()
6018	code, message, err := restjson.GetErrorInfo(decoder)
6019	if err != nil {
6020		var snapshot bytes.Buffer
6021		io.Copy(&snapshot, ringBuffer)
6022		err = &smithy.DeserializationError{
6023			Err:      fmt.Errorf("failed to decode response body, %w", err),
6024			Snapshot: snapshot.Bytes(),
6025		}
6026		return err
6027	}
6028
6029	errorBody.Seek(0, io.SeekStart)
6030	if len(code) != 0 {
6031		errorCode = restjson.SanitizeErrorCode(code)
6032	}
6033	if len(message) != 0 {
6034		errorMessage = message
6035	}
6036
6037	switch {
6038	case strings.EqualFold("BadRequestException", errorCode):
6039		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6040
6041	case strings.EqualFold("ForbiddenException", errorCode):
6042		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6043
6044	case strings.EqualFold("NotFoundException", errorCode):
6045		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
6046
6047	case strings.EqualFold("ServiceFailureException", errorCode):
6048		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6049
6050	case strings.EqualFold("ServiceUnavailableException", errorCode):
6051		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6052
6053	case strings.EqualFold("ThrottledClientException", errorCode):
6054		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6055
6056	case strings.EqualFold("UnauthorizedClientException", errorCode):
6057		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6058
6059	default:
6060		genericError := &smithy.GenericAPIError{
6061			Code:    errorCode,
6062			Message: errorMessage,
6063		}
6064		return genericError
6065
6066	}
6067}
6068
6069type awsRestjson1_deserializeOpDeleteAppInstanceUser struct {
6070}
6071
6072func (*awsRestjson1_deserializeOpDeleteAppInstanceUser) ID() string {
6073	return "OperationDeserializer"
6074}
6075
6076func (m *awsRestjson1_deserializeOpDeleteAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6077	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6078) {
6079	out, metadata, err = next.HandleDeserialize(ctx, in)
6080	if err != nil {
6081		return out, metadata, err
6082	}
6083
6084	response, ok := out.RawResponse.(*smithyhttp.Response)
6085	if !ok {
6086		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6087	}
6088
6089	if response.StatusCode < 200 || response.StatusCode >= 300 {
6090		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAppInstanceUser(response, &metadata)
6091	}
6092	output := &DeleteAppInstanceUserOutput{}
6093	out.Result = output
6094
6095	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6096		return out, metadata, &smithy.DeserializationError{
6097			Err: fmt.Errorf("failed to discard response body, %w", err),
6098		}
6099	}
6100
6101	return out, metadata, err
6102}
6103
6104func awsRestjson1_deserializeOpErrorDeleteAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6105	var errorBuffer bytes.Buffer
6106	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6107		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6108	}
6109	errorBody := bytes.NewReader(errorBuffer.Bytes())
6110
6111	errorCode := "UnknownError"
6112	errorMessage := errorCode
6113
6114	code := response.Header.Get("X-Amzn-ErrorType")
6115	if len(code) != 0 {
6116		errorCode = restjson.SanitizeErrorCode(code)
6117	}
6118
6119	var buff [1024]byte
6120	ringBuffer := smithyio.NewRingBuffer(buff[:])
6121
6122	body := io.TeeReader(errorBody, ringBuffer)
6123	decoder := json.NewDecoder(body)
6124	decoder.UseNumber()
6125	code, message, err := restjson.GetErrorInfo(decoder)
6126	if err != nil {
6127		var snapshot bytes.Buffer
6128		io.Copy(&snapshot, ringBuffer)
6129		err = &smithy.DeserializationError{
6130			Err:      fmt.Errorf("failed to decode response body, %w", err),
6131			Snapshot: snapshot.Bytes(),
6132		}
6133		return err
6134	}
6135
6136	errorBody.Seek(0, io.SeekStart)
6137	if len(code) != 0 {
6138		errorCode = restjson.SanitizeErrorCode(code)
6139	}
6140	if len(message) != 0 {
6141		errorMessage = message
6142	}
6143
6144	switch {
6145	case strings.EqualFold("BadRequestException", errorCode):
6146		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6147
6148	case strings.EqualFold("ForbiddenException", errorCode):
6149		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6150
6151	case strings.EqualFold("ServiceFailureException", errorCode):
6152		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6153
6154	case strings.EqualFold("ServiceUnavailableException", errorCode):
6155		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6156
6157	case strings.EqualFold("ThrottledClientException", errorCode):
6158		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6159
6160	case strings.EqualFold("UnauthorizedClientException", errorCode):
6161		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6162
6163	default:
6164		genericError := &smithy.GenericAPIError{
6165			Code:    errorCode,
6166			Message: errorMessage,
6167		}
6168		return genericError
6169
6170	}
6171}
6172
6173type awsRestjson1_deserializeOpDeleteAttendee struct {
6174}
6175
6176func (*awsRestjson1_deserializeOpDeleteAttendee) ID() string {
6177	return "OperationDeserializer"
6178}
6179
6180func (m *awsRestjson1_deserializeOpDeleteAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6181	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6182) {
6183	out, metadata, err = next.HandleDeserialize(ctx, in)
6184	if err != nil {
6185		return out, metadata, err
6186	}
6187
6188	response, ok := out.RawResponse.(*smithyhttp.Response)
6189	if !ok {
6190		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6191	}
6192
6193	if response.StatusCode < 200 || response.StatusCode >= 300 {
6194		return out, metadata, awsRestjson1_deserializeOpErrorDeleteAttendee(response, &metadata)
6195	}
6196	output := &DeleteAttendeeOutput{}
6197	out.Result = output
6198
6199	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6200		return out, metadata, &smithy.DeserializationError{
6201			Err: fmt.Errorf("failed to discard response body, %w", err),
6202		}
6203	}
6204
6205	return out, metadata, err
6206}
6207
6208func awsRestjson1_deserializeOpErrorDeleteAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6209	var errorBuffer bytes.Buffer
6210	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6211		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6212	}
6213	errorBody := bytes.NewReader(errorBuffer.Bytes())
6214
6215	errorCode := "UnknownError"
6216	errorMessage := errorCode
6217
6218	code := response.Header.Get("X-Amzn-ErrorType")
6219	if len(code) != 0 {
6220		errorCode = restjson.SanitizeErrorCode(code)
6221	}
6222
6223	var buff [1024]byte
6224	ringBuffer := smithyio.NewRingBuffer(buff[:])
6225
6226	body := io.TeeReader(errorBody, ringBuffer)
6227	decoder := json.NewDecoder(body)
6228	decoder.UseNumber()
6229	code, message, err := restjson.GetErrorInfo(decoder)
6230	if err != nil {
6231		var snapshot bytes.Buffer
6232		io.Copy(&snapshot, ringBuffer)
6233		err = &smithy.DeserializationError{
6234			Err:      fmt.Errorf("failed to decode response body, %w", err),
6235			Snapshot: snapshot.Bytes(),
6236		}
6237		return err
6238	}
6239
6240	errorBody.Seek(0, io.SeekStart)
6241	if len(code) != 0 {
6242		errorCode = restjson.SanitizeErrorCode(code)
6243	}
6244	if len(message) != 0 {
6245		errorMessage = message
6246	}
6247
6248	switch {
6249	case strings.EqualFold("BadRequestException", errorCode):
6250		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6251
6252	case strings.EqualFold("ForbiddenException", errorCode):
6253		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6254
6255	case strings.EqualFold("NotFoundException", errorCode):
6256		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
6257
6258	case strings.EqualFold("ServiceFailureException", errorCode):
6259		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6260
6261	case strings.EqualFold("ServiceUnavailableException", errorCode):
6262		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6263
6264	case strings.EqualFold("ThrottledClientException", errorCode):
6265		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6266
6267	case strings.EqualFold("UnauthorizedClientException", errorCode):
6268		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6269
6270	default:
6271		genericError := &smithy.GenericAPIError{
6272			Code:    errorCode,
6273			Message: errorMessage,
6274		}
6275		return genericError
6276
6277	}
6278}
6279
6280type awsRestjson1_deserializeOpDeleteChannel struct {
6281}
6282
6283func (*awsRestjson1_deserializeOpDeleteChannel) ID() string {
6284	return "OperationDeserializer"
6285}
6286
6287func (m *awsRestjson1_deserializeOpDeleteChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6288	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6289) {
6290	out, metadata, err = next.HandleDeserialize(ctx, in)
6291	if err != nil {
6292		return out, metadata, err
6293	}
6294
6295	response, ok := out.RawResponse.(*smithyhttp.Response)
6296	if !ok {
6297		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6298	}
6299
6300	if response.StatusCode < 200 || response.StatusCode >= 300 {
6301		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannel(response, &metadata)
6302	}
6303	output := &DeleteChannelOutput{}
6304	out.Result = output
6305
6306	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6307		return out, metadata, &smithy.DeserializationError{
6308			Err: fmt.Errorf("failed to discard response body, %w", err),
6309		}
6310	}
6311
6312	return out, metadata, err
6313}
6314
6315func awsRestjson1_deserializeOpErrorDeleteChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6316	var errorBuffer bytes.Buffer
6317	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6318		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6319	}
6320	errorBody := bytes.NewReader(errorBuffer.Bytes())
6321
6322	errorCode := "UnknownError"
6323	errorMessage := errorCode
6324
6325	code := response.Header.Get("X-Amzn-ErrorType")
6326	if len(code) != 0 {
6327		errorCode = restjson.SanitizeErrorCode(code)
6328	}
6329
6330	var buff [1024]byte
6331	ringBuffer := smithyio.NewRingBuffer(buff[:])
6332
6333	body := io.TeeReader(errorBody, ringBuffer)
6334	decoder := json.NewDecoder(body)
6335	decoder.UseNumber()
6336	code, message, err := restjson.GetErrorInfo(decoder)
6337	if err != nil {
6338		var snapshot bytes.Buffer
6339		io.Copy(&snapshot, ringBuffer)
6340		err = &smithy.DeserializationError{
6341			Err:      fmt.Errorf("failed to decode response body, %w", err),
6342			Snapshot: snapshot.Bytes(),
6343		}
6344		return err
6345	}
6346
6347	errorBody.Seek(0, io.SeekStart)
6348	if len(code) != 0 {
6349		errorCode = restjson.SanitizeErrorCode(code)
6350	}
6351	if len(message) != 0 {
6352		errorMessage = message
6353	}
6354
6355	switch {
6356	case strings.EqualFold("BadRequestException", errorCode):
6357		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6358
6359	case strings.EqualFold("ForbiddenException", errorCode):
6360		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6361
6362	case strings.EqualFold("ServiceFailureException", errorCode):
6363		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6364
6365	case strings.EqualFold("ServiceUnavailableException", errorCode):
6366		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6367
6368	case strings.EqualFold("ThrottledClientException", errorCode):
6369		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6370
6371	case strings.EqualFold("UnauthorizedClientException", errorCode):
6372		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6373
6374	default:
6375		genericError := &smithy.GenericAPIError{
6376			Code:    errorCode,
6377			Message: errorMessage,
6378		}
6379		return genericError
6380
6381	}
6382}
6383
6384type awsRestjson1_deserializeOpDeleteChannelBan struct {
6385}
6386
6387func (*awsRestjson1_deserializeOpDeleteChannelBan) ID() string {
6388	return "OperationDeserializer"
6389}
6390
6391func (m *awsRestjson1_deserializeOpDeleteChannelBan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6392	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6393) {
6394	out, metadata, err = next.HandleDeserialize(ctx, in)
6395	if err != nil {
6396		return out, metadata, err
6397	}
6398
6399	response, ok := out.RawResponse.(*smithyhttp.Response)
6400	if !ok {
6401		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6402	}
6403
6404	if response.StatusCode < 200 || response.StatusCode >= 300 {
6405		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelBan(response, &metadata)
6406	}
6407	output := &DeleteChannelBanOutput{}
6408	out.Result = output
6409
6410	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6411		return out, metadata, &smithy.DeserializationError{
6412			Err: fmt.Errorf("failed to discard response body, %w", err),
6413		}
6414	}
6415
6416	return out, metadata, err
6417}
6418
6419func awsRestjson1_deserializeOpErrorDeleteChannelBan(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6420	var errorBuffer bytes.Buffer
6421	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6422		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6423	}
6424	errorBody := bytes.NewReader(errorBuffer.Bytes())
6425
6426	errorCode := "UnknownError"
6427	errorMessage := errorCode
6428
6429	code := response.Header.Get("X-Amzn-ErrorType")
6430	if len(code) != 0 {
6431		errorCode = restjson.SanitizeErrorCode(code)
6432	}
6433
6434	var buff [1024]byte
6435	ringBuffer := smithyio.NewRingBuffer(buff[:])
6436
6437	body := io.TeeReader(errorBody, ringBuffer)
6438	decoder := json.NewDecoder(body)
6439	decoder.UseNumber()
6440	code, message, err := restjson.GetErrorInfo(decoder)
6441	if err != nil {
6442		var snapshot bytes.Buffer
6443		io.Copy(&snapshot, ringBuffer)
6444		err = &smithy.DeserializationError{
6445			Err:      fmt.Errorf("failed to decode response body, %w", err),
6446			Snapshot: snapshot.Bytes(),
6447		}
6448		return err
6449	}
6450
6451	errorBody.Seek(0, io.SeekStart)
6452	if len(code) != 0 {
6453		errorCode = restjson.SanitizeErrorCode(code)
6454	}
6455	if len(message) != 0 {
6456		errorMessage = message
6457	}
6458
6459	switch {
6460	case strings.EqualFold("BadRequestException", errorCode):
6461		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6462
6463	case strings.EqualFold("ForbiddenException", errorCode):
6464		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6465
6466	case strings.EqualFold("ServiceFailureException", errorCode):
6467		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6468
6469	case strings.EqualFold("ServiceUnavailableException", errorCode):
6470		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6471
6472	case strings.EqualFold("ThrottledClientException", errorCode):
6473		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6474
6475	case strings.EqualFold("UnauthorizedClientException", errorCode):
6476		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6477
6478	default:
6479		genericError := &smithy.GenericAPIError{
6480			Code:    errorCode,
6481			Message: errorMessage,
6482		}
6483		return genericError
6484
6485	}
6486}
6487
6488type awsRestjson1_deserializeOpDeleteChannelMembership struct {
6489}
6490
6491func (*awsRestjson1_deserializeOpDeleteChannelMembership) ID() string {
6492	return "OperationDeserializer"
6493}
6494
6495func (m *awsRestjson1_deserializeOpDeleteChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6496	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6497) {
6498	out, metadata, err = next.HandleDeserialize(ctx, in)
6499	if err != nil {
6500		return out, metadata, err
6501	}
6502
6503	response, ok := out.RawResponse.(*smithyhttp.Response)
6504	if !ok {
6505		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6506	}
6507
6508	if response.StatusCode < 200 || response.StatusCode >= 300 {
6509		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelMembership(response, &metadata)
6510	}
6511	output := &DeleteChannelMembershipOutput{}
6512	out.Result = output
6513
6514	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6515		return out, metadata, &smithy.DeserializationError{
6516			Err: fmt.Errorf("failed to discard response body, %w", err),
6517		}
6518	}
6519
6520	return out, metadata, err
6521}
6522
6523func awsRestjson1_deserializeOpErrorDeleteChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6524	var errorBuffer bytes.Buffer
6525	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6526		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6527	}
6528	errorBody := bytes.NewReader(errorBuffer.Bytes())
6529
6530	errorCode := "UnknownError"
6531	errorMessage := errorCode
6532
6533	code := response.Header.Get("X-Amzn-ErrorType")
6534	if len(code) != 0 {
6535		errorCode = restjson.SanitizeErrorCode(code)
6536	}
6537
6538	var buff [1024]byte
6539	ringBuffer := smithyio.NewRingBuffer(buff[:])
6540
6541	body := io.TeeReader(errorBody, ringBuffer)
6542	decoder := json.NewDecoder(body)
6543	decoder.UseNumber()
6544	code, message, err := restjson.GetErrorInfo(decoder)
6545	if err != nil {
6546		var snapshot bytes.Buffer
6547		io.Copy(&snapshot, ringBuffer)
6548		err = &smithy.DeserializationError{
6549			Err:      fmt.Errorf("failed to decode response body, %w", err),
6550			Snapshot: snapshot.Bytes(),
6551		}
6552		return err
6553	}
6554
6555	errorBody.Seek(0, io.SeekStart)
6556	if len(code) != 0 {
6557		errorCode = restjson.SanitizeErrorCode(code)
6558	}
6559	if len(message) != 0 {
6560		errorMessage = message
6561	}
6562
6563	switch {
6564	case strings.EqualFold("BadRequestException", errorCode):
6565		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6566
6567	case strings.EqualFold("ForbiddenException", errorCode):
6568		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6569
6570	case strings.EqualFold("ServiceFailureException", errorCode):
6571		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6572
6573	case strings.EqualFold("ServiceUnavailableException", errorCode):
6574		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6575
6576	case strings.EqualFold("ThrottledClientException", errorCode):
6577		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6578
6579	case strings.EqualFold("UnauthorizedClientException", errorCode):
6580		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6581
6582	default:
6583		genericError := &smithy.GenericAPIError{
6584			Code:    errorCode,
6585			Message: errorMessage,
6586		}
6587		return genericError
6588
6589	}
6590}
6591
6592type awsRestjson1_deserializeOpDeleteChannelMessage struct {
6593}
6594
6595func (*awsRestjson1_deserializeOpDeleteChannelMessage) ID() string {
6596	return "OperationDeserializer"
6597}
6598
6599func (m *awsRestjson1_deserializeOpDeleteChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6600	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6601) {
6602	out, metadata, err = next.HandleDeserialize(ctx, in)
6603	if err != nil {
6604		return out, metadata, err
6605	}
6606
6607	response, ok := out.RawResponse.(*smithyhttp.Response)
6608	if !ok {
6609		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6610	}
6611
6612	if response.StatusCode < 200 || response.StatusCode >= 300 {
6613		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelMessage(response, &metadata)
6614	}
6615	output := &DeleteChannelMessageOutput{}
6616	out.Result = output
6617
6618	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6619		return out, metadata, &smithy.DeserializationError{
6620			Err: fmt.Errorf("failed to discard response body, %w", err),
6621		}
6622	}
6623
6624	return out, metadata, err
6625}
6626
6627func awsRestjson1_deserializeOpErrorDeleteChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6628	var errorBuffer bytes.Buffer
6629	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6630		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6631	}
6632	errorBody := bytes.NewReader(errorBuffer.Bytes())
6633
6634	errorCode := "UnknownError"
6635	errorMessage := errorCode
6636
6637	code := response.Header.Get("X-Amzn-ErrorType")
6638	if len(code) != 0 {
6639		errorCode = restjson.SanitizeErrorCode(code)
6640	}
6641
6642	var buff [1024]byte
6643	ringBuffer := smithyio.NewRingBuffer(buff[:])
6644
6645	body := io.TeeReader(errorBody, ringBuffer)
6646	decoder := json.NewDecoder(body)
6647	decoder.UseNumber()
6648	code, message, err := restjson.GetErrorInfo(decoder)
6649	if err != nil {
6650		var snapshot bytes.Buffer
6651		io.Copy(&snapshot, ringBuffer)
6652		err = &smithy.DeserializationError{
6653			Err:      fmt.Errorf("failed to decode response body, %w", err),
6654			Snapshot: snapshot.Bytes(),
6655		}
6656		return err
6657	}
6658
6659	errorBody.Seek(0, io.SeekStart)
6660	if len(code) != 0 {
6661		errorCode = restjson.SanitizeErrorCode(code)
6662	}
6663	if len(message) != 0 {
6664		errorMessage = message
6665	}
6666
6667	switch {
6668	case strings.EqualFold("BadRequestException", errorCode):
6669		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6670
6671	case strings.EqualFold("ForbiddenException", errorCode):
6672		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6673
6674	case strings.EqualFold("ServiceFailureException", errorCode):
6675		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6676
6677	case strings.EqualFold("ServiceUnavailableException", errorCode):
6678		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6679
6680	case strings.EqualFold("ThrottledClientException", errorCode):
6681		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6682
6683	case strings.EqualFold("UnauthorizedClientException", errorCode):
6684		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6685
6686	default:
6687		genericError := &smithy.GenericAPIError{
6688			Code:    errorCode,
6689			Message: errorMessage,
6690		}
6691		return genericError
6692
6693	}
6694}
6695
6696type awsRestjson1_deserializeOpDeleteChannelModerator struct {
6697}
6698
6699func (*awsRestjson1_deserializeOpDeleteChannelModerator) ID() string {
6700	return "OperationDeserializer"
6701}
6702
6703func (m *awsRestjson1_deserializeOpDeleteChannelModerator) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6704	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6705) {
6706	out, metadata, err = next.HandleDeserialize(ctx, in)
6707	if err != nil {
6708		return out, metadata, err
6709	}
6710
6711	response, ok := out.RawResponse.(*smithyhttp.Response)
6712	if !ok {
6713		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6714	}
6715
6716	if response.StatusCode < 200 || response.StatusCode >= 300 {
6717		return out, metadata, awsRestjson1_deserializeOpErrorDeleteChannelModerator(response, &metadata)
6718	}
6719	output := &DeleteChannelModeratorOutput{}
6720	out.Result = output
6721
6722	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6723		return out, metadata, &smithy.DeserializationError{
6724			Err: fmt.Errorf("failed to discard response body, %w", err),
6725		}
6726	}
6727
6728	return out, metadata, err
6729}
6730
6731func awsRestjson1_deserializeOpErrorDeleteChannelModerator(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6732	var errorBuffer bytes.Buffer
6733	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6734		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6735	}
6736	errorBody := bytes.NewReader(errorBuffer.Bytes())
6737
6738	errorCode := "UnknownError"
6739	errorMessage := errorCode
6740
6741	code := response.Header.Get("X-Amzn-ErrorType")
6742	if len(code) != 0 {
6743		errorCode = restjson.SanitizeErrorCode(code)
6744	}
6745
6746	var buff [1024]byte
6747	ringBuffer := smithyio.NewRingBuffer(buff[:])
6748
6749	body := io.TeeReader(errorBody, ringBuffer)
6750	decoder := json.NewDecoder(body)
6751	decoder.UseNumber()
6752	code, message, err := restjson.GetErrorInfo(decoder)
6753	if err != nil {
6754		var snapshot bytes.Buffer
6755		io.Copy(&snapshot, ringBuffer)
6756		err = &smithy.DeserializationError{
6757			Err:      fmt.Errorf("failed to decode response body, %w", err),
6758			Snapshot: snapshot.Bytes(),
6759		}
6760		return err
6761	}
6762
6763	errorBody.Seek(0, io.SeekStart)
6764	if len(code) != 0 {
6765		errorCode = restjson.SanitizeErrorCode(code)
6766	}
6767	if len(message) != 0 {
6768		errorMessage = message
6769	}
6770
6771	switch {
6772	case strings.EqualFold("BadRequestException", errorCode):
6773		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6774
6775	case strings.EqualFold("ForbiddenException", errorCode):
6776		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6777
6778	case strings.EqualFold("ServiceFailureException", errorCode):
6779		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6780
6781	case strings.EqualFold("ServiceUnavailableException", errorCode):
6782		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6783
6784	case strings.EqualFold("ThrottledClientException", errorCode):
6785		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6786
6787	case strings.EqualFold("UnauthorizedClientException", errorCode):
6788		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6789
6790	default:
6791		genericError := &smithy.GenericAPIError{
6792			Code:    errorCode,
6793			Message: errorMessage,
6794		}
6795		return genericError
6796
6797	}
6798}
6799
6800type awsRestjson1_deserializeOpDeleteEventsConfiguration struct {
6801}
6802
6803func (*awsRestjson1_deserializeOpDeleteEventsConfiguration) ID() string {
6804	return "OperationDeserializer"
6805}
6806
6807func (m *awsRestjson1_deserializeOpDeleteEventsConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6808	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6809) {
6810	out, metadata, err = next.HandleDeserialize(ctx, in)
6811	if err != nil {
6812		return out, metadata, err
6813	}
6814
6815	response, ok := out.RawResponse.(*smithyhttp.Response)
6816	if !ok {
6817		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6818	}
6819
6820	if response.StatusCode < 200 || response.StatusCode >= 300 {
6821		return out, metadata, awsRestjson1_deserializeOpErrorDeleteEventsConfiguration(response, &metadata)
6822	}
6823	output := &DeleteEventsConfigurationOutput{}
6824	out.Result = output
6825
6826	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6827		return out, metadata, &smithy.DeserializationError{
6828			Err: fmt.Errorf("failed to discard response body, %w", err),
6829		}
6830	}
6831
6832	return out, metadata, err
6833}
6834
6835func awsRestjson1_deserializeOpErrorDeleteEventsConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6836	var errorBuffer bytes.Buffer
6837	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6838		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6839	}
6840	errorBody := bytes.NewReader(errorBuffer.Bytes())
6841
6842	errorCode := "UnknownError"
6843	errorMessage := errorCode
6844
6845	code := response.Header.Get("X-Amzn-ErrorType")
6846	if len(code) != 0 {
6847		errorCode = restjson.SanitizeErrorCode(code)
6848	}
6849
6850	var buff [1024]byte
6851	ringBuffer := smithyio.NewRingBuffer(buff[:])
6852
6853	body := io.TeeReader(errorBody, ringBuffer)
6854	decoder := json.NewDecoder(body)
6855	decoder.UseNumber()
6856	code, message, err := restjson.GetErrorInfo(decoder)
6857	if err != nil {
6858		var snapshot bytes.Buffer
6859		io.Copy(&snapshot, ringBuffer)
6860		err = &smithy.DeserializationError{
6861			Err:      fmt.Errorf("failed to decode response body, %w", err),
6862			Snapshot: snapshot.Bytes(),
6863		}
6864		return err
6865	}
6866
6867	errorBody.Seek(0, io.SeekStart)
6868	if len(code) != 0 {
6869		errorCode = restjson.SanitizeErrorCode(code)
6870	}
6871	if len(message) != 0 {
6872		errorMessage = message
6873	}
6874
6875	switch {
6876	case strings.EqualFold("BadRequestException", errorCode):
6877		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6878
6879	case strings.EqualFold("ForbiddenException", errorCode):
6880		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6881
6882	case strings.EqualFold("ResourceLimitExceededException", errorCode):
6883		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
6884
6885	case strings.EqualFold("ServiceFailureException", errorCode):
6886		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6887
6888	case strings.EqualFold("ServiceUnavailableException", errorCode):
6889		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6890
6891	case strings.EqualFold("UnauthorizedClientException", errorCode):
6892		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
6893
6894	default:
6895		genericError := &smithy.GenericAPIError{
6896			Code:    errorCode,
6897			Message: errorMessage,
6898		}
6899		return genericError
6900
6901	}
6902}
6903
6904type awsRestjson1_deserializeOpDeleteMeeting struct {
6905}
6906
6907func (*awsRestjson1_deserializeOpDeleteMeeting) ID() string {
6908	return "OperationDeserializer"
6909}
6910
6911func (m *awsRestjson1_deserializeOpDeleteMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
6912	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
6913) {
6914	out, metadata, err = next.HandleDeserialize(ctx, in)
6915	if err != nil {
6916		return out, metadata, err
6917	}
6918
6919	response, ok := out.RawResponse.(*smithyhttp.Response)
6920	if !ok {
6921		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
6922	}
6923
6924	if response.StatusCode < 200 || response.StatusCode >= 300 {
6925		return out, metadata, awsRestjson1_deserializeOpErrorDeleteMeeting(response, &metadata)
6926	}
6927	output := &DeleteMeetingOutput{}
6928	out.Result = output
6929
6930	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
6931		return out, metadata, &smithy.DeserializationError{
6932			Err: fmt.Errorf("failed to discard response body, %w", err),
6933		}
6934	}
6935
6936	return out, metadata, err
6937}
6938
6939func awsRestjson1_deserializeOpErrorDeleteMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
6940	var errorBuffer bytes.Buffer
6941	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
6942		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
6943	}
6944	errorBody := bytes.NewReader(errorBuffer.Bytes())
6945
6946	errorCode := "UnknownError"
6947	errorMessage := errorCode
6948
6949	code := response.Header.Get("X-Amzn-ErrorType")
6950	if len(code) != 0 {
6951		errorCode = restjson.SanitizeErrorCode(code)
6952	}
6953
6954	var buff [1024]byte
6955	ringBuffer := smithyio.NewRingBuffer(buff[:])
6956
6957	body := io.TeeReader(errorBody, ringBuffer)
6958	decoder := json.NewDecoder(body)
6959	decoder.UseNumber()
6960	code, message, err := restjson.GetErrorInfo(decoder)
6961	if err != nil {
6962		var snapshot bytes.Buffer
6963		io.Copy(&snapshot, ringBuffer)
6964		err = &smithy.DeserializationError{
6965			Err:      fmt.Errorf("failed to decode response body, %w", err),
6966			Snapshot: snapshot.Bytes(),
6967		}
6968		return err
6969	}
6970
6971	errorBody.Seek(0, io.SeekStart)
6972	if len(code) != 0 {
6973		errorCode = restjson.SanitizeErrorCode(code)
6974	}
6975	if len(message) != 0 {
6976		errorMessage = message
6977	}
6978
6979	switch {
6980	case strings.EqualFold("BadRequestException", errorCode):
6981		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
6982
6983	case strings.EqualFold("ForbiddenException", errorCode):
6984		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
6985
6986	case strings.EqualFold("NotFoundException", errorCode):
6987		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
6988
6989	case strings.EqualFold("ServiceFailureException", errorCode):
6990		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
6991
6992	case strings.EqualFold("ServiceUnavailableException", errorCode):
6993		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
6994
6995	case strings.EqualFold("ThrottledClientException", errorCode):
6996		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
6997
6998	case strings.EqualFold("UnauthorizedClientException", errorCode):
6999		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7000
7001	default:
7002		genericError := &smithy.GenericAPIError{
7003			Code:    errorCode,
7004			Message: errorMessage,
7005		}
7006		return genericError
7007
7008	}
7009}
7010
7011type awsRestjson1_deserializeOpDeletePhoneNumber struct {
7012}
7013
7014func (*awsRestjson1_deserializeOpDeletePhoneNumber) ID() string {
7015	return "OperationDeserializer"
7016}
7017
7018func (m *awsRestjson1_deserializeOpDeletePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7019	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7020) {
7021	out, metadata, err = next.HandleDeserialize(ctx, in)
7022	if err != nil {
7023		return out, metadata, err
7024	}
7025
7026	response, ok := out.RawResponse.(*smithyhttp.Response)
7027	if !ok {
7028		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7029	}
7030
7031	if response.StatusCode < 200 || response.StatusCode >= 300 {
7032		return out, metadata, awsRestjson1_deserializeOpErrorDeletePhoneNumber(response, &metadata)
7033	}
7034	output := &DeletePhoneNumberOutput{}
7035	out.Result = output
7036
7037	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7038		return out, metadata, &smithy.DeserializationError{
7039			Err: fmt.Errorf("failed to discard response body, %w", err),
7040		}
7041	}
7042
7043	return out, metadata, err
7044}
7045
7046func awsRestjson1_deserializeOpErrorDeletePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7047	var errorBuffer bytes.Buffer
7048	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7049		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7050	}
7051	errorBody := bytes.NewReader(errorBuffer.Bytes())
7052
7053	errorCode := "UnknownError"
7054	errorMessage := errorCode
7055
7056	code := response.Header.Get("X-Amzn-ErrorType")
7057	if len(code) != 0 {
7058		errorCode = restjson.SanitizeErrorCode(code)
7059	}
7060
7061	var buff [1024]byte
7062	ringBuffer := smithyio.NewRingBuffer(buff[:])
7063
7064	body := io.TeeReader(errorBody, ringBuffer)
7065	decoder := json.NewDecoder(body)
7066	decoder.UseNumber()
7067	code, message, err := restjson.GetErrorInfo(decoder)
7068	if err != nil {
7069		var snapshot bytes.Buffer
7070		io.Copy(&snapshot, ringBuffer)
7071		err = &smithy.DeserializationError{
7072			Err:      fmt.Errorf("failed to decode response body, %w", err),
7073			Snapshot: snapshot.Bytes(),
7074		}
7075		return err
7076	}
7077
7078	errorBody.Seek(0, io.SeekStart)
7079	if len(code) != 0 {
7080		errorCode = restjson.SanitizeErrorCode(code)
7081	}
7082	if len(message) != 0 {
7083		errorMessage = message
7084	}
7085
7086	switch {
7087	case strings.EqualFold("BadRequestException", errorCode):
7088		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7089
7090	case strings.EqualFold("ForbiddenException", errorCode):
7091		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7092
7093	case strings.EqualFold("NotFoundException", errorCode):
7094		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7095
7096	case strings.EqualFold("ServiceFailureException", errorCode):
7097		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7098
7099	case strings.EqualFold("ServiceUnavailableException", errorCode):
7100		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7101
7102	case strings.EqualFold("ThrottledClientException", errorCode):
7103		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7104
7105	case strings.EqualFold("UnauthorizedClientException", errorCode):
7106		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7107
7108	default:
7109		genericError := &smithy.GenericAPIError{
7110			Code:    errorCode,
7111			Message: errorMessage,
7112		}
7113		return genericError
7114
7115	}
7116}
7117
7118type awsRestjson1_deserializeOpDeleteProxySession struct {
7119}
7120
7121func (*awsRestjson1_deserializeOpDeleteProxySession) ID() string {
7122	return "OperationDeserializer"
7123}
7124
7125func (m *awsRestjson1_deserializeOpDeleteProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7126	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7127) {
7128	out, metadata, err = next.HandleDeserialize(ctx, in)
7129	if err != nil {
7130		return out, metadata, err
7131	}
7132
7133	response, ok := out.RawResponse.(*smithyhttp.Response)
7134	if !ok {
7135		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7136	}
7137
7138	if response.StatusCode < 200 || response.StatusCode >= 300 {
7139		return out, metadata, awsRestjson1_deserializeOpErrorDeleteProxySession(response, &metadata)
7140	}
7141	output := &DeleteProxySessionOutput{}
7142	out.Result = output
7143
7144	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7145		return out, metadata, &smithy.DeserializationError{
7146			Err: fmt.Errorf("failed to discard response body, %w", err),
7147		}
7148	}
7149
7150	return out, metadata, err
7151}
7152
7153func awsRestjson1_deserializeOpErrorDeleteProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7154	var errorBuffer bytes.Buffer
7155	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7156		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7157	}
7158	errorBody := bytes.NewReader(errorBuffer.Bytes())
7159
7160	errorCode := "UnknownError"
7161	errorMessage := errorCode
7162
7163	code := response.Header.Get("X-Amzn-ErrorType")
7164	if len(code) != 0 {
7165		errorCode = restjson.SanitizeErrorCode(code)
7166	}
7167
7168	var buff [1024]byte
7169	ringBuffer := smithyio.NewRingBuffer(buff[:])
7170
7171	body := io.TeeReader(errorBody, ringBuffer)
7172	decoder := json.NewDecoder(body)
7173	decoder.UseNumber()
7174	code, message, err := restjson.GetErrorInfo(decoder)
7175	if err != nil {
7176		var snapshot bytes.Buffer
7177		io.Copy(&snapshot, ringBuffer)
7178		err = &smithy.DeserializationError{
7179			Err:      fmt.Errorf("failed to decode response body, %w", err),
7180			Snapshot: snapshot.Bytes(),
7181		}
7182		return err
7183	}
7184
7185	errorBody.Seek(0, io.SeekStart)
7186	if len(code) != 0 {
7187		errorCode = restjson.SanitizeErrorCode(code)
7188	}
7189	if len(message) != 0 {
7190		errorMessage = message
7191	}
7192
7193	switch {
7194	case strings.EqualFold("BadRequestException", errorCode):
7195		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7196
7197	case strings.EqualFold("ForbiddenException", errorCode):
7198		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7199
7200	case strings.EqualFold("NotFoundException", errorCode):
7201		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7202
7203	case strings.EqualFold("ServiceFailureException", errorCode):
7204		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7205
7206	case strings.EqualFold("ServiceUnavailableException", errorCode):
7207		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7208
7209	case strings.EqualFold("ThrottledClientException", errorCode):
7210		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7211
7212	case strings.EqualFold("UnauthorizedClientException", errorCode):
7213		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7214
7215	default:
7216		genericError := &smithy.GenericAPIError{
7217			Code:    errorCode,
7218			Message: errorMessage,
7219		}
7220		return genericError
7221
7222	}
7223}
7224
7225type awsRestjson1_deserializeOpDeleteRoom struct {
7226}
7227
7228func (*awsRestjson1_deserializeOpDeleteRoom) ID() string {
7229	return "OperationDeserializer"
7230}
7231
7232func (m *awsRestjson1_deserializeOpDeleteRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7233	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7234) {
7235	out, metadata, err = next.HandleDeserialize(ctx, in)
7236	if err != nil {
7237		return out, metadata, err
7238	}
7239
7240	response, ok := out.RawResponse.(*smithyhttp.Response)
7241	if !ok {
7242		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7243	}
7244
7245	if response.StatusCode < 200 || response.StatusCode >= 300 {
7246		return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoom(response, &metadata)
7247	}
7248	output := &DeleteRoomOutput{}
7249	out.Result = output
7250
7251	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7252		return out, metadata, &smithy.DeserializationError{
7253			Err: fmt.Errorf("failed to discard response body, %w", err),
7254		}
7255	}
7256
7257	return out, metadata, err
7258}
7259
7260func awsRestjson1_deserializeOpErrorDeleteRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7261	var errorBuffer bytes.Buffer
7262	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7263		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7264	}
7265	errorBody := bytes.NewReader(errorBuffer.Bytes())
7266
7267	errorCode := "UnknownError"
7268	errorMessage := errorCode
7269
7270	code := response.Header.Get("X-Amzn-ErrorType")
7271	if len(code) != 0 {
7272		errorCode = restjson.SanitizeErrorCode(code)
7273	}
7274
7275	var buff [1024]byte
7276	ringBuffer := smithyio.NewRingBuffer(buff[:])
7277
7278	body := io.TeeReader(errorBody, ringBuffer)
7279	decoder := json.NewDecoder(body)
7280	decoder.UseNumber()
7281	code, message, err := restjson.GetErrorInfo(decoder)
7282	if err != nil {
7283		var snapshot bytes.Buffer
7284		io.Copy(&snapshot, ringBuffer)
7285		err = &smithy.DeserializationError{
7286			Err:      fmt.Errorf("failed to decode response body, %w", err),
7287			Snapshot: snapshot.Bytes(),
7288		}
7289		return err
7290	}
7291
7292	errorBody.Seek(0, io.SeekStart)
7293	if len(code) != 0 {
7294		errorCode = restjson.SanitizeErrorCode(code)
7295	}
7296	if len(message) != 0 {
7297		errorMessage = message
7298	}
7299
7300	switch {
7301	case strings.EqualFold("BadRequestException", errorCode):
7302		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7303
7304	case strings.EqualFold("ForbiddenException", errorCode):
7305		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7306
7307	case strings.EqualFold("NotFoundException", errorCode):
7308		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7309
7310	case strings.EqualFold("ServiceFailureException", errorCode):
7311		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7312
7313	case strings.EqualFold("ServiceUnavailableException", errorCode):
7314		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7315
7316	case strings.EqualFold("ThrottledClientException", errorCode):
7317		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7318
7319	case strings.EqualFold("UnauthorizedClientException", errorCode):
7320		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7321
7322	default:
7323		genericError := &smithy.GenericAPIError{
7324			Code:    errorCode,
7325			Message: errorMessage,
7326		}
7327		return genericError
7328
7329	}
7330}
7331
7332type awsRestjson1_deserializeOpDeleteRoomMembership struct {
7333}
7334
7335func (*awsRestjson1_deserializeOpDeleteRoomMembership) ID() string {
7336	return "OperationDeserializer"
7337}
7338
7339func (m *awsRestjson1_deserializeOpDeleteRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7340	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7341) {
7342	out, metadata, err = next.HandleDeserialize(ctx, in)
7343	if err != nil {
7344		return out, metadata, err
7345	}
7346
7347	response, ok := out.RawResponse.(*smithyhttp.Response)
7348	if !ok {
7349		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7350	}
7351
7352	if response.StatusCode < 200 || response.StatusCode >= 300 {
7353		return out, metadata, awsRestjson1_deserializeOpErrorDeleteRoomMembership(response, &metadata)
7354	}
7355	output := &DeleteRoomMembershipOutput{}
7356	out.Result = output
7357
7358	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7359		return out, metadata, &smithy.DeserializationError{
7360			Err: fmt.Errorf("failed to discard response body, %w", err),
7361		}
7362	}
7363
7364	return out, metadata, err
7365}
7366
7367func awsRestjson1_deserializeOpErrorDeleteRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7368	var errorBuffer bytes.Buffer
7369	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7370		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7371	}
7372	errorBody := bytes.NewReader(errorBuffer.Bytes())
7373
7374	errorCode := "UnknownError"
7375	errorMessage := errorCode
7376
7377	code := response.Header.Get("X-Amzn-ErrorType")
7378	if len(code) != 0 {
7379		errorCode = restjson.SanitizeErrorCode(code)
7380	}
7381
7382	var buff [1024]byte
7383	ringBuffer := smithyio.NewRingBuffer(buff[:])
7384
7385	body := io.TeeReader(errorBody, ringBuffer)
7386	decoder := json.NewDecoder(body)
7387	decoder.UseNumber()
7388	code, message, err := restjson.GetErrorInfo(decoder)
7389	if err != nil {
7390		var snapshot bytes.Buffer
7391		io.Copy(&snapshot, ringBuffer)
7392		err = &smithy.DeserializationError{
7393			Err:      fmt.Errorf("failed to decode response body, %w", err),
7394			Snapshot: snapshot.Bytes(),
7395		}
7396		return err
7397	}
7398
7399	errorBody.Seek(0, io.SeekStart)
7400	if len(code) != 0 {
7401		errorCode = restjson.SanitizeErrorCode(code)
7402	}
7403	if len(message) != 0 {
7404		errorMessage = message
7405	}
7406
7407	switch {
7408	case strings.EqualFold("BadRequestException", errorCode):
7409		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7410
7411	case strings.EqualFold("ForbiddenException", errorCode):
7412		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7413
7414	case strings.EqualFold("NotFoundException", errorCode):
7415		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7416
7417	case strings.EqualFold("ServiceFailureException", errorCode):
7418		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7419
7420	case strings.EqualFold("ServiceUnavailableException", errorCode):
7421		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7422
7423	case strings.EqualFold("ThrottledClientException", errorCode):
7424		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7425
7426	case strings.EqualFold("UnauthorizedClientException", errorCode):
7427		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7428
7429	default:
7430		genericError := &smithy.GenericAPIError{
7431			Code:    errorCode,
7432			Message: errorMessage,
7433		}
7434		return genericError
7435
7436	}
7437}
7438
7439type awsRestjson1_deserializeOpDeleteSipMediaApplication struct {
7440}
7441
7442func (*awsRestjson1_deserializeOpDeleteSipMediaApplication) ID() string {
7443	return "OperationDeserializer"
7444}
7445
7446func (m *awsRestjson1_deserializeOpDeleteSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7447	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7448) {
7449	out, metadata, err = next.HandleDeserialize(ctx, in)
7450	if err != nil {
7451		return out, metadata, err
7452	}
7453
7454	response, ok := out.RawResponse.(*smithyhttp.Response)
7455	if !ok {
7456		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7457	}
7458
7459	if response.StatusCode < 200 || response.StatusCode >= 300 {
7460		return out, metadata, awsRestjson1_deserializeOpErrorDeleteSipMediaApplication(response, &metadata)
7461	}
7462	output := &DeleteSipMediaApplicationOutput{}
7463	out.Result = output
7464
7465	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7466		return out, metadata, &smithy.DeserializationError{
7467			Err: fmt.Errorf("failed to discard response body, %w", err),
7468		}
7469	}
7470
7471	return out, metadata, err
7472}
7473
7474func awsRestjson1_deserializeOpErrorDeleteSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7475	var errorBuffer bytes.Buffer
7476	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7477		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7478	}
7479	errorBody := bytes.NewReader(errorBuffer.Bytes())
7480
7481	errorCode := "UnknownError"
7482	errorMessage := errorCode
7483
7484	code := response.Header.Get("X-Amzn-ErrorType")
7485	if len(code) != 0 {
7486		errorCode = restjson.SanitizeErrorCode(code)
7487	}
7488
7489	var buff [1024]byte
7490	ringBuffer := smithyio.NewRingBuffer(buff[:])
7491
7492	body := io.TeeReader(errorBody, ringBuffer)
7493	decoder := json.NewDecoder(body)
7494	decoder.UseNumber()
7495	code, message, err := restjson.GetErrorInfo(decoder)
7496	if err != nil {
7497		var snapshot bytes.Buffer
7498		io.Copy(&snapshot, ringBuffer)
7499		err = &smithy.DeserializationError{
7500			Err:      fmt.Errorf("failed to decode response body, %w", err),
7501			Snapshot: snapshot.Bytes(),
7502		}
7503		return err
7504	}
7505
7506	errorBody.Seek(0, io.SeekStart)
7507	if len(code) != 0 {
7508		errorCode = restjson.SanitizeErrorCode(code)
7509	}
7510	if len(message) != 0 {
7511		errorMessage = message
7512	}
7513
7514	switch {
7515	case strings.EqualFold("BadRequestException", errorCode):
7516		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7517
7518	case strings.EqualFold("ConflictException", errorCode):
7519		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
7520
7521	case strings.EqualFold("ForbiddenException", errorCode):
7522		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7523
7524	case strings.EqualFold("NotFoundException", errorCode):
7525		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7526
7527	case strings.EqualFold("ServiceFailureException", errorCode):
7528		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7529
7530	case strings.EqualFold("ServiceUnavailableException", errorCode):
7531		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7532
7533	case strings.EqualFold("ThrottledClientException", errorCode):
7534		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7535
7536	case strings.EqualFold("UnauthorizedClientException", errorCode):
7537		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7538
7539	default:
7540		genericError := &smithy.GenericAPIError{
7541			Code:    errorCode,
7542			Message: errorMessage,
7543		}
7544		return genericError
7545
7546	}
7547}
7548
7549type awsRestjson1_deserializeOpDeleteSipRule struct {
7550}
7551
7552func (*awsRestjson1_deserializeOpDeleteSipRule) ID() string {
7553	return "OperationDeserializer"
7554}
7555
7556func (m *awsRestjson1_deserializeOpDeleteSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7557	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7558) {
7559	out, metadata, err = next.HandleDeserialize(ctx, in)
7560	if err != nil {
7561		return out, metadata, err
7562	}
7563
7564	response, ok := out.RawResponse.(*smithyhttp.Response)
7565	if !ok {
7566		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7567	}
7568
7569	if response.StatusCode < 200 || response.StatusCode >= 300 {
7570		return out, metadata, awsRestjson1_deserializeOpErrorDeleteSipRule(response, &metadata)
7571	}
7572	output := &DeleteSipRuleOutput{}
7573	out.Result = output
7574
7575	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7576		return out, metadata, &smithy.DeserializationError{
7577			Err: fmt.Errorf("failed to discard response body, %w", err),
7578		}
7579	}
7580
7581	return out, metadata, err
7582}
7583
7584func awsRestjson1_deserializeOpErrorDeleteSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7585	var errorBuffer bytes.Buffer
7586	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7587		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7588	}
7589	errorBody := bytes.NewReader(errorBuffer.Bytes())
7590
7591	errorCode := "UnknownError"
7592	errorMessage := errorCode
7593
7594	code := response.Header.Get("X-Amzn-ErrorType")
7595	if len(code) != 0 {
7596		errorCode = restjson.SanitizeErrorCode(code)
7597	}
7598
7599	var buff [1024]byte
7600	ringBuffer := smithyio.NewRingBuffer(buff[:])
7601
7602	body := io.TeeReader(errorBody, ringBuffer)
7603	decoder := json.NewDecoder(body)
7604	decoder.UseNumber()
7605	code, message, err := restjson.GetErrorInfo(decoder)
7606	if err != nil {
7607		var snapshot bytes.Buffer
7608		io.Copy(&snapshot, ringBuffer)
7609		err = &smithy.DeserializationError{
7610			Err:      fmt.Errorf("failed to decode response body, %w", err),
7611			Snapshot: snapshot.Bytes(),
7612		}
7613		return err
7614	}
7615
7616	errorBody.Seek(0, io.SeekStart)
7617	if len(code) != 0 {
7618		errorCode = restjson.SanitizeErrorCode(code)
7619	}
7620	if len(message) != 0 {
7621		errorMessage = message
7622	}
7623
7624	switch {
7625	case strings.EqualFold("BadRequestException", errorCode):
7626		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7627
7628	case strings.EqualFold("ConflictException", errorCode):
7629		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
7630
7631	case strings.EqualFold("ForbiddenException", errorCode):
7632		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7633
7634	case strings.EqualFold("NotFoundException", errorCode):
7635		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7636
7637	case strings.EqualFold("ServiceFailureException", errorCode):
7638		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7639
7640	case strings.EqualFold("ServiceUnavailableException", errorCode):
7641		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7642
7643	case strings.EqualFold("ThrottledClientException", errorCode):
7644		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7645
7646	case strings.EqualFold("UnauthorizedClientException", errorCode):
7647		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7648
7649	default:
7650		genericError := &smithy.GenericAPIError{
7651			Code:    errorCode,
7652			Message: errorMessage,
7653		}
7654		return genericError
7655
7656	}
7657}
7658
7659type awsRestjson1_deserializeOpDeleteVoiceConnector struct {
7660}
7661
7662func (*awsRestjson1_deserializeOpDeleteVoiceConnector) ID() string {
7663	return "OperationDeserializer"
7664}
7665
7666func (m *awsRestjson1_deserializeOpDeleteVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7667	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7668) {
7669	out, metadata, err = next.HandleDeserialize(ctx, in)
7670	if err != nil {
7671		return out, metadata, err
7672	}
7673
7674	response, ok := out.RawResponse.(*smithyhttp.Response)
7675	if !ok {
7676		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7677	}
7678
7679	if response.StatusCode < 200 || response.StatusCode >= 300 {
7680		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnector(response, &metadata)
7681	}
7682	output := &DeleteVoiceConnectorOutput{}
7683	out.Result = output
7684
7685	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7686		return out, metadata, &smithy.DeserializationError{
7687			Err: fmt.Errorf("failed to discard response body, %w", err),
7688		}
7689	}
7690
7691	return out, metadata, err
7692}
7693
7694func awsRestjson1_deserializeOpErrorDeleteVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7695	var errorBuffer bytes.Buffer
7696	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7697		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7698	}
7699	errorBody := bytes.NewReader(errorBuffer.Bytes())
7700
7701	errorCode := "UnknownError"
7702	errorMessage := errorCode
7703
7704	code := response.Header.Get("X-Amzn-ErrorType")
7705	if len(code) != 0 {
7706		errorCode = restjson.SanitizeErrorCode(code)
7707	}
7708
7709	var buff [1024]byte
7710	ringBuffer := smithyio.NewRingBuffer(buff[:])
7711
7712	body := io.TeeReader(errorBody, ringBuffer)
7713	decoder := json.NewDecoder(body)
7714	decoder.UseNumber()
7715	code, message, err := restjson.GetErrorInfo(decoder)
7716	if err != nil {
7717		var snapshot bytes.Buffer
7718		io.Copy(&snapshot, ringBuffer)
7719		err = &smithy.DeserializationError{
7720			Err:      fmt.Errorf("failed to decode response body, %w", err),
7721			Snapshot: snapshot.Bytes(),
7722		}
7723		return err
7724	}
7725
7726	errorBody.Seek(0, io.SeekStart)
7727	if len(code) != 0 {
7728		errorCode = restjson.SanitizeErrorCode(code)
7729	}
7730	if len(message) != 0 {
7731		errorMessage = message
7732	}
7733
7734	switch {
7735	case strings.EqualFold("BadRequestException", errorCode):
7736		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7737
7738	case strings.EqualFold("ConflictException", errorCode):
7739		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
7740
7741	case strings.EqualFold("ForbiddenException", errorCode):
7742		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7743
7744	case strings.EqualFold("NotFoundException", errorCode):
7745		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7746
7747	case strings.EqualFold("ServiceFailureException", errorCode):
7748		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7749
7750	case strings.EqualFold("ServiceUnavailableException", errorCode):
7751		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7752
7753	case strings.EqualFold("ThrottledClientException", errorCode):
7754		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7755
7756	case strings.EqualFold("UnauthorizedClientException", errorCode):
7757		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7758
7759	default:
7760		genericError := &smithy.GenericAPIError{
7761			Code:    errorCode,
7762			Message: errorMessage,
7763		}
7764		return genericError
7765
7766	}
7767}
7768
7769type awsRestjson1_deserializeOpDeleteVoiceConnectorEmergencyCallingConfiguration struct {
7770}
7771
7772func (*awsRestjson1_deserializeOpDeleteVoiceConnectorEmergencyCallingConfiguration) ID() string {
7773	return "OperationDeserializer"
7774}
7775
7776func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorEmergencyCallingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7777	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7778) {
7779	out, metadata, err = next.HandleDeserialize(ctx, in)
7780	if err != nil {
7781		return out, metadata, err
7782	}
7783
7784	response, ok := out.RawResponse.(*smithyhttp.Response)
7785	if !ok {
7786		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7787	}
7788
7789	if response.StatusCode < 200 || response.StatusCode >= 300 {
7790		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorEmergencyCallingConfiguration(response, &metadata)
7791	}
7792	output := &DeleteVoiceConnectorEmergencyCallingConfigurationOutput{}
7793	out.Result = output
7794
7795	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7796		return out, metadata, &smithy.DeserializationError{
7797			Err: fmt.Errorf("failed to discard response body, %w", err),
7798		}
7799	}
7800
7801	return out, metadata, err
7802}
7803
7804func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorEmergencyCallingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7805	var errorBuffer bytes.Buffer
7806	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7807		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7808	}
7809	errorBody := bytes.NewReader(errorBuffer.Bytes())
7810
7811	errorCode := "UnknownError"
7812	errorMessage := errorCode
7813
7814	code := response.Header.Get("X-Amzn-ErrorType")
7815	if len(code) != 0 {
7816		errorCode = restjson.SanitizeErrorCode(code)
7817	}
7818
7819	var buff [1024]byte
7820	ringBuffer := smithyio.NewRingBuffer(buff[:])
7821
7822	body := io.TeeReader(errorBody, ringBuffer)
7823	decoder := json.NewDecoder(body)
7824	decoder.UseNumber()
7825	code, message, err := restjson.GetErrorInfo(decoder)
7826	if err != nil {
7827		var snapshot bytes.Buffer
7828		io.Copy(&snapshot, ringBuffer)
7829		err = &smithy.DeserializationError{
7830			Err:      fmt.Errorf("failed to decode response body, %w", err),
7831			Snapshot: snapshot.Bytes(),
7832		}
7833		return err
7834	}
7835
7836	errorBody.Seek(0, io.SeekStart)
7837	if len(code) != 0 {
7838		errorCode = restjson.SanitizeErrorCode(code)
7839	}
7840	if len(message) != 0 {
7841		errorMessage = message
7842	}
7843
7844	switch {
7845	case strings.EqualFold("BadRequestException", errorCode):
7846		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7847
7848	case strings.EqualFold("ForbiddenException", errorCode):
7849		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7850
7851	case strings.EqualFold("NotFoundException", errorCode):
7852		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7853
7854	case strings.EqualFold("ServiceFailureException", errorCode):
7855		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7856
7857	case strings.EqualFold("ServiceUnavailableException", errorCode):
7858		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7859
7860	case strings.EqualFold("ThrottledClientException", errorCode):
7861		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7862
7863	case strings.EqualFold("UnauthorizedClientException", errorCode):
7864		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7865
7866	default:
7867		genericError := &smithy.GenericAPIError{
7868			Code:    errorCode,
7869			Message: errorMessage,
7870		}
7871		return genericError
7872
7873	}
7874}
7875
7876type awsRestjson1_deserializeOpDeleteVoiceConnectorGroup struct {
7877}
7878
7879func (*awsRestjson1_deserializeOpDeleteVoiceConnectorGroup) ID() string {
7880	return "OperationDeserializer"
7881}
7882
7883func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7884	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7885) {
7886	out, metadata, err = next.HandleDeserialize(ctx, in)
7887	if err != nil {
7888		return out, metadata, err
7889	}
7890
7891	response, ok := out.RawResponse.(*smithyhttp.Response)
7892	if !ok {
7893		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
7894	}
7895
7896	if response.StatusCode < 200 || response.StatusCode >= 300 {
7897		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorGroup(response, &metadata)
7898	}
7899	output := &DeleteVoiceConnectorGroupOutput{}
7900	out.Result = output
7901
7902	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
7903		return out, metadata, &smithy.DeserializationError{
7904			Err: fmt.Errorf("failed to discard response body, %w", err),
7905		}
7906	}
7907
7908	return out, metadata, err
7909}
7910
7911func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
7912	var errorBuffer bytes.Buffer
7913	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
7914		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
7915	}
7916	errorBody := bytes.NewReader(errorBuffer.Bytes())
7917
7918	errorCode := "UnknownError"
7919	errorMessage := errorCode
7920
7921	code := response.Header.Get("X-Amzn-ErrorType")
7922	if len(code) != 0 {
7923		errorCode = restjson.SanitizeErrorCode(code)
7924	}
7925
7926	var buff [1024]byte
7927	ringBuffer := smithyio.NewRingBuffer(buff[:])
7928
7929	body := io.TeeReader(errorBody, ringBuffer)
7930	decoder := json.NewDecoder(body)
7931	decoder.UseNumber()
7932	code, message, err := restjson.GetErrorInfo(decoder)
7933	if err != nil {
7934		var snapshot bytes.Buffer
7935		io.Copy(&snapshot, ringBuffer)
7936		err = &smithy.DeserializationError{
7937			Err:      fmt.Errorf("failed to decode response body, %w", err),
7938			Snapshot: snapshot.Bytes(),
7939		}
7940		return err
7941	}
7942
7943	errorBody.Seek(0, io.SeekStart)
7944	if len(code) != 0 {
7945		errorCode = restjson.SanitizeErrorCode(code)
7946	}
7947	if len(message) != 0 {
7948		errorMessage = message
7949	}
7950
7951	switch {
7952	case strings.EqualFold("BadRequestException", errorCode):
7953		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
7954
7955	case strings.EqualFold("ConflictException", errorCode):
7956		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
7957
7958	case strings.EqualFold("ForbiddenException", errorCode):
7959		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
7960
7961	case strings.EqualFold("NotFoundException", errorCode):
7962		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
7963
7964	case strings.EqualFold("ServiceFailureException", errorCode):
7965		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
7966
7967	case strings.EqualFold("ServiceUnavailableException", errorCode):
7968		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
7969
7970	case strings.EqualFold("ThrottledClientException", errorCode):
7971		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
7972
7973	case strings.EqualFold("UnauthorizedClientException", errorCode):
7974		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
7975
7976	default:
7977		genericError := &smithy.GenericAPIError{
7978			Code:    errorCode,
7979			Message: errorMessage,
7980		}
7981		return genericError
7982
7983	}
7984}
7985
7986type awsRestjson1_deserializeOpDeleteVoiceConnectorOrigination struct {
7987}
7988
7989func (*awsRestjson1_deserializeOpDeleteVoiceConnectorOrigination) ID() string {
7990	return "OperationDeserializer"
7991}
7992
7993func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorOrigination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
7994	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
7995) {
7996	out, metadata, err = next.HandleDeserialize(ctx, in)
7997	if err != nil {
7998		return out, metadata, err
7999	}
8000
8001	response, ok := out.RawResponse.(*smithyhttp.Response)
8002	if !ok {
8003		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8004	}
8005
8006	if response.StatusCode < 200 || response.StatusCode >= 300 {
8007		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorOrigination(response, &metadata)
8008	}
8009	output := &DeleteVoiceConnectorOriginationOutput{}
8010	out.Result = output
8011
8012	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8013		return out, metadata, &smithy.DeserializationError{
8014			Err: fmt.Errorf("failed to discard response body, %w", err),
8015		}
8016	}
8017
8018	return out, metadata, err
8019}
8020
8021func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorOrigination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8022	var errorBuffer bytes.Buffer
8023	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8024		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8025	}
8026	errorBody := bytes.NewReader(errorBuffer.Bytes())
8027
8028	errorCode := "UnknownError"
8029	errorMessage := errorCode
8030
8031	code := response.Header.Get("X-Amzn-ErrorType")
8032	if len(code) != 0 {
8033		errorCode = restjson.SanitizeErrorCode(code)
8034	}
8035
8036	var buff [1024]byte
8037	ringBuffer := smithyio.NewRingBuffer(buff[:])
8038
8039	body := io.TeeReader(errorBody, ringBuffer)
8040	decoder := json.NewDecoder(body)
8041	decoder.UseNumber()
8042	code, message, err := restjson.GetErrorInfo(decoder)
8043	if err != nil {
8044		var snapshot bytes.Buffer
8045		io.Copy(&snapshot, ringBuffer)
8046		err = &smithy.DeserializationError{
8047			Err:      fmt.Errorf("failed to decode response body, %w", err),
8048			Snapshot: snapshot.Bytes(),
8049		}
8050		return err
8051	}
8052
8053	errorBody.Seek(0, io.SeekStart)
8054	if len(code) != 0 {
8055		errorCode = restjson.SanitizeErrorCode(code)
8056	}
8057	if len(message) != 0 {
8058		errorMessage = message
8059	}
8060
8061	switch {
8062	case strings.EqualFold("BadRequestException", errorCode):
8063		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8064
8065	case strings.EqualFold("ForbiddenException", errorCode):
8066		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8067
8068	case strings.EqualFold("NotFoundException", errorCode):
8069		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8070
8071	case strings.EqualFold("ServiceFailureException", errorCode):
8072		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8073
8074	case strings.EqualFold("ServiceUnavailableException", errorCode):
8075		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8076
8077	case strings.EqualFold("ThrottledClientException", errorCode):
8078		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8079
8080	case strings.EqualFold("UnauthorizedClientException", errorCode):
8081		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8082
8083	default:
8084		genericError := &smithy.GenericAPIError{
8085			Code:    errorCode,
8086			Message: errorMessage,
8087		}
8088		return genericError
8089
8090	}
8091}
8092
8093type awsRestjson1_deserializeOpDeleteVoiceConnectorProxy struct {
8094}
8095
8096func (*awsRestjson1_deserializeOpDeleteVoiceConnectorProxy) ID() string {
8097	return "OperationDeserializer"
8098}
8099
8100func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorProxy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8101	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8102) {
8103	out, metadata, err = next.HandleDeserialize(ctx, in)
8104	if err != nil {
8105		return out, metadata, err
8106	}
8107
8108	response, ok := out.RawResponse.(*smithyhttp.Response)
8109	if !ok {
8110		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8111	}
8112
8113	if response.StatusCode < 200 || response.StatusCode >= 300 {
8114		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorProxy(response, &metadata)
8115	}
8116	output := &DeleteVoiceConnectorProxyOutput{}
8117	out.Result = output
8118
8119	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8120		return out, metadata, &smithy.DeserializationError{
8121			Err: fmt.Errorf("failed to discard response body, %w", err),
8122		}
8123	}
8124
8125	return out, metadata, err
8126}
8127
8128func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorProxy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8129	var errorBuffer bytes.Buffer
8130	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8131		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8132	}
8133	errorBody := bytes.NewReader(errorBuffer.Bytes())
8134
8135	errorCode := "UnknownError"
8136	errorMessage := errorCode
8137
8138	code := response.Header.Get("X-Amzn-ErrorType")
8139	if len(code) != 0 {
8140		errorCode = restjson.SanitizeErrorCode(code)
8141	}
8142
8143	var buff [1024]byte
8144	ringBuffer := smithyio.NewRingBuffer(buff[:])
8145
8146	body := io.TeeReader(errorBody, ringBuffer)
8147	decoder := json.NewDecoder(body)
8148	decoder.UseNumber()
8149	code, message, err := restjson.GetErrorInfo(decoder)
8150	if err != nil {
8151		var snapshot bytes.Buffer
8152		io.Copy(&snapshot, ringBuffer)
8153		err = &smithy.DeserializationError{
8154			Err:      fmt.Errorf("failed to decode response body, %w", err),
8155			Snapshot: snapshot.Bytes(),
8156		}
8157		return err
8158	}
8159
8160	errorBody.Seek(0, io.SeekStart)
8161	if len(code) != 0 {
8162		errorCode = restjson.SanitizeErrorCode(code)
8163	}
8164	if len(message) != 0 {
8165		errorMessage = message
8166	}
8167
8168	switch {
8169	case strings.EqualFold("BadRequestException", errorCode):
8170		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8171
8172	case strings.EqualFold("ForbiddenException", errorCode):
8173		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8174
8175	case strings.EqualFold("NotFoundException", errorCode):
8176		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8177
8178	case strings.EqualFold("ServiceFailureException", errorCode):
8179		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8180
8181	case strings.EqualFold("ServiceUnavailableException", errorCode):
8182		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8183
8184	case strings.EqualFold("ThrottledClientException", errorCode):
8185		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8186
8187	case strings.EqualFold("UnauthorizedClientException", errorCode):
8188		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8189
8190	default:
8191		genericError := &smithy.GenericAPIError{
8192			Code:    errorCode,
8193			Message: errorMessage,
8194		}
8195		return genericError
8196
8197	}
8198}
8199
8200type awsRestjson1_deserializeOpDeleteVoiceConnectorStreamingConfiguration struct {
8201}
8202
8203func (*awsRestjson1_deserializeOpDeleteVoiceConnectorStreamingConfiguration) ID() string {
8204	return "OperationDeserializer"
8205}
8206
8207func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorStreamingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8208	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8209) {
8210	out, metadata, err = next.HandleDeserialize(ctx, in)
8211	if err != nil {
8212		return out, metadata, err
8213	}
8214
8215	response, ok := out.RawResponse.(*smithyhttp.Response)
8216	if !ok {
8217		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8218	}
8219
8220	if response.StatusCode < 200 || response.StatusCode >= 300 {
8221		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorStreamingConfiguration(response, &metadata)
8222	}
8223	output := &DeleteVoiceConnectorStreamingConfigurationOutput{}
8224	out.Result = output
8225
8226	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8227		return out, metadata, &smithy.DeserializationError{
8228			Err: fmt.Errorf("failed to discard response body, %w", err),
8229		}
8230	}
8231
8232	return out, metadata, err
8233}
8234
8235func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorStreamingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8236	var errorBuffer bytes.Buffer
8237	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8238		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8239	}
8240	errorBody := bytes.NewReader(errorBuffer.Bytes())
8241
8242	errorCode := "UnknownError"
8243	errorMessage := errorCode
8244
8245	code := response.Header.Get("X-Amzn-ErrorType")
8246	if len(code) != 0 {
8247		errorCode = restjson.SanitizeErrorCode(code)
8248	}
8249
8250	var buff [1024]byte
8251	ringBuffer := smithyio.NewRingBuffer(buff[:])
8252
8253	body := io.TeeReader(errorBody, ringBuffer)
8254	decoder := json.NewDecoder(body)
8255	decoder.UseNumber()
8256	code, message, err := restjson.GetErrorInfo(decoder)
8257	if err != nil {
8258		var snapshot bytes.Buffer
8259		io.Copy(&snapshot, ringBuffer)
8260		err = &smithy.DeserializationError{
8261			Err:      fmt.Errorf("failed to decode response body, %w", err),
8262			Snapshot: snapshot.Bytes(),
8263		}
8264		return err
8265	}
8266
8267	errorBody.Seek(0, io.SeekStart)
8268	if len(code) != 0 {
8269		errorCode = restjson.SanitizeErrorCode(code)
8270	}
8271	if len(message) != 0 {
8272		errorMessage = message
8273	}
8274
8275	switch {
8276	case strings.EqualFold("BadRequestException", errorCode):
8277		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8278
8279	case strings.EqualFold("ForbiddenException", errorCode):
8280		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8281
8282	case strings.EqualFold("NotFoundException", errorCode):
8283		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8284
8285	case strings.EqualFold("ServiceFailureException", errorCode):
8286		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8287
8288	case strings.EqualFold("ServiceUnavailableException", errorCode):
8289		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8290
8291	case strings.EqualFold("ThrottledClientException", errorCode):
8292		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8293
8294	case strings.EqualFold("UnauthorizedClientException", errorCode):
8295		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8296
8297	default:
8298		genericError := &smithy.GenericAPIError{
8299			Code:    errorCode,
8300			Message: errorMessage,
8301		}
8302		return genericError
8303
8304	}
8305}
8306
8307type awsRestjson1_deserializeOpDeleteVoiceConnectorTermination struct {
8308}
8309
8310func (*awsRestjson1_deserializeOpDeleteVoiceConnectorTermination) ID() string {
8311	return "OperationDeserializer"
8312}
8313
8314func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorTermination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8315	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8316) {
8317	out, metadata, err = next.HandleDeserialize(ctx, in)
8318	if err != nil {
8319		return out, metadata, err
8320	}
8321
8322	response, ok := out.RawResponse.(*smithyhttp.Response)
8323	if !ok {
8324		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8325	}
8326
8327	if response.StatusCode < 200 || response.StatusCode >= 300 {
8328		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTermination(response, &metadata)
8329	}
8330	output := &DeleteVoiceConnectorTerminationOutput{}
8331	out.Result = output
8332
8333	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8334		return out, metadata, &smithy.DeserializationError{
8335			Err: fmt.Errorf("failed to discard response body, %w", err),
8336		}
8337	}
8338
8339	return out, metadata, err
8340}
8341
8342func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTermination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8343	var errorBuffer bytes.Buffer
8344	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8345		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8346	}
8347	errorBody := bytes.NewReader(errorBuffer.Bytes())
8348
8349	errorCode := "UnknownError"
8350	errorMessage := errorCode
8351
8352	code := response.Header.Get("X-Amzn-ErrorType")
8353	if len(code) != 0 {
8354		errorCode = restjson.SanitizeErrorCode(code)
8355	}
8356
8357	var buff [1024]byte
8358	ringBuffer := smithyio.NewRingBuffer(buff[:])
8359
8360	body := io.TeeReader(errorBody, ringBuffer)
8361	decoder := json.NewDecoder(body)
8362	decoder.UseNumber()
8363	code, message, err := restjson.GetErrorInfo(decoder)
8364	if err != nil {
8365		var snapshot bytes.Buffer
8366		io.Copy(&snapshot, ringBuffer)
8367		err = &smithy.DeserializationError{
8368			Err:      fmt.Errorf("failed to decode response body, %w", err),
8369			Snapshot: snapshot.Bytes(),
8370		}
8371		return err
8372	}
8373
8374	errorBody.Seek(0, io.SeekStart)
8375	if len(code) != 0 {
8376		errorCode = restjson.SanitizeErrorCode(code)
8377	}
8378	if len(message) != 0 {
8379		errorMessage = message
8380	}
8381
8382	switch {
8383	case strings.EqualFold("BadRequestException", errorCode):
8384		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8385
8386	case strings.EqualFold("ForbiddenException", errorCode):
8387		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8388
8389	case strings.EqualFold("NotFoundException", errorCode):
8390		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8391
8392	case strings.EqualFold("ServiceFailureException", errorCode):
8393		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8394
8395	case strings.EqualFold("ServiceUnavailableException", errorCode):
8396		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8397
8398	case strings.EqualFold("ThrottledClientException", errorCode):
8399		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8400
8401	case strings.EqualFold("UnauthorizedClientException", errorCode):
8402		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8403
8404	default:
8405		genericError := &smithy.GenericAPIError{
8406			Code:    errorCode,
8407			Message: errorMessage,
8408		}
8409		return genericError
8410
8411	}
8412}
8413
8414type awsRestjson1_deserializeOpDeleteVoiceConnectorTerminationCredentials struct {
8415}
8416
8417func (*awsRestjson1_deserializeOpDeleteVoiceConnectorTerminationCredentials) ID() string {
8418	return "OperationDeserializer"
8419}
8420
8421func (m *awsRestjson1_deserializeOpDeleteVoiceConnectorTerminationCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8422	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8423) {
8424	out, metadata, err = next.HandleDeserialize(ctx, in)
8425	if err != nil {
8426		return out, metadata, err
8427	}
8428
8429	response, ok := out.RawResponse.(*smithyhttp.Response)
8430	if !ok {
8431		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8432	}
8433
8434	if response.StatusCode < 200 || response.StatusCode >= 300 {
8435		return out, metadata, awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTerminationCredentials(response, &metadata)
8436	}
8437	output := &DeleteVoiceConnectorTerminationCredentialsOutput{}
8438	out.Result = output
8439
8440	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
8441		return out, metadata, &smithy.DeserializationError{
8442			Err: fmt.Errorf("failed to discard response body, %w", err),
8443		}
8444	}
8445
8446	return out, metadata, err
8447}
8448
8449func awsRestjson1_deserializeOpErrorDeleteVoiceConnectorTerminationCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8450	var errorBuffer bytes.Buffer
8451	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8452		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8453	}
8454	errorBody := bytes.NewReader(errorBuffer.Bytes())
8455
8456	errorCode := "UnknownError"
8457	errorMessage := errorCode
8458
8459	code := response.Header.Get("X-Amzn-ErrorType")
8460	if len(code) != 0 {
8461		errorCode = restjson.SanitizeErrorCode(code)
8462	}
8463
8464	var buff [1024]byte
8465	ringBuffer := smithyio.NewRingBuffer(buff[:])
8466
8467	body := io.TeeReader(errorBody, ringBuffer)
8468	decoder := json.NewDecoder(body)
8469	decoder.UseNumber()
8470	code, message, err := restjson.GetErrorInfo(decoder)
8471	if err != nil {
8472		var snapshot bytes.Buffer
8473		io.Copy(&snapshot, ringBuffer)
8474		err = &smithy.DeserializationError{
8475			Err:      fmt.Errorf("failed to decode response body, %w", err),
8476			Snapshot: snapshot.Bytes(),
8477		}
8478		return err
8479	}
8480
8481	errorBody.Seek(0, io.SeekStart)
8482	if len(code) != 0 {
8483		errorCode = restjson.SanitizeErrorCode(code)
8484	}
8485	if len(message) != 0 {
8486		errorMessage = message
8487	}
8488
8489	switch {
8490	case strings.EqualFold("BadRequestException", errorCode):
8491		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8492
8493	case strings.EqualFold("ForbiddenException", errorCode):
8494		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8495
8496	case strings.EqualFold("NotFoundException", errorCode):
8497		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
8498
8499	case strings.EqualFold("ServiceFailureException", errorCode):
8500		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8501
8502	case strings.EqualFold("ServiceUnavailableException", errorCode):
8503		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8504
8505	case strings.EqualFold("ThrottledClientException", errorCode):
8506		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8507
8508	case strings.EqualFold("UnauthorizedClientException", errorCode):
8509		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8510
8511	default:
8512		genericError := &smithy.GenericAPIError{
8513			Code:    errorCode,
8514			Message: errorMessage,
8515		}
8516		return genericError
8517
8518	}
8519}
8520
8521type awsRestjson1_deserializeOpDescribeAppInstance struct {
8522}
8523
8524func (*awsRestjson1_deserializeOpDescribeAppInstance) ID() string {
8525	return "OperationDeserializer"
8526}
8527
8528func (m *awsRestjson1_deserializeOpDescribeAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8529	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8530) {
8531	out, metadata, err = next.HandleDeserialize(ctx, in)
8532	if err != nil {
8533		return out, metadata, err
8534	}
8535
8536	response, ok := out.RawResponse.(*smithyhttp.Response)
8537	if !ok {
8538		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8539	}
8540
8541	if response.StatusCode < 200 || response.StatusCode >= 300 {
8542		return out, metadata, awsRestjson1_deserializeOpErrorDescribeAppInstance(response, &metadata)
8543	}
8544	output := &DescribeAppInstanceOutput{}
8545	out.Result = output
8546
8547	var buff [1024]byte
8548	ringBuffer := smithyio.NewRingBuffer(buff[:])
8549
8550	body := io.TeeReader(response.Body, ringBuffer)
8551
8552	decoder := json.NewDecoder(body)
8553	decoder.UseNumber()
8554	var shape interface{}
8555	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
8556		var snapshot bytes.Buffer
8557		io.Copy(&snapshot, ringBuffer)
8558		err = &smithy.DeserializationError{
8559			Err:      fmt.Errorf("failed to decode response body, %w", err),
8560			Snapshot: snapshot.Bytes(),
8561		}
8562		return out, metadata, err
8563	}
8564
8565	err = awsRestjson1_deserializeOpDocumentDescribeAppInstanceOutput(&output, shape)
8566	if err != nil {
8567		var snapshot bytes.Buffer
8568		io.Copy(&snapshot, ringBuffer)
8569		return out, metadata, &smithy.DeserializationError{
8570			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
8571			Snapshot: snapshot.Bytes(),
8572		}
8573	}
8574
8575	return out, metadata, err
8576}
8577
8578func awsRestjson1_deserializeOpErrorDescribeAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8579	var errorBuffer bytes.Buffer
8580	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8581		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8582	}
8583	errorBody := bytes.NewReader(errorBuffer.Bytes())
8584
8585	errorCode := "UnknownError"
8586	errorMessage := errorCode
8587
8588	code := response.Header.Get("X-Amzn-ErrorType")
8589	if len(code) != 0 {
8590		errorCode = restjson.SanitizeErrorCode(code)
8591	}
8592
8593	var buff [1024]byte
8594	ringBuffer := smithyio.NewRingBuffer(buff[:])
8595
8596	body := io.TeeReader(errorBody, ringBuffer)
8597	decoder := json.NewDecoder(body)
8598	decoder.UseNumber()
8599	code, message, err := restjson.GetErrorInfo(decoder)
8600	if err != nil {
8601		var snapshot bytes.Buffer
8602		io.Copy(&snapshot, ringBuffer)
8603		err = &smithy.DeserializationError{
8604			Err:      fmt.Errorf("failed to decode response body, %w", err),
8605			Snapshot: snapshot.Bytes(),
8606		}
8607		return err
8608	}
8609
8610	errorBody.Seek(0, io.SeekStart)
8611	if len(code) != 0 {
8612		errorCode = restjson.SanitizeErrorCode(code)
8613	}
8614	if len(message) != 0 {
8615		errorMessage = message
8616	}
8617
8618	switch {
8619	case strings.EqualFold("BadRequestException", errorCode):
8620		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8621
8622	case strings.EqualFold("ForbiddenException", errorCode):
8623		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8624
8625	case strings.EqualFold("ServiceFailureException", errorCode):
8626		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8627
8628	case strings.EqualFold("ServiceUnavailableException", errorCode):
8629		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8630
8631	case strings.EqualFold("ThrottledClientException", errorCode):
8632		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8633
8634	case strings.EqualFold("UnauthorizedClientException", errorCode):
8635		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8636
8637	default:
8638		genericError := &smithy.GenericAPIError{
8639			Code:    errorCode,
8640			Message: errorMessage,
8641		}
8642		return genericError
8643
8644	}
8645}
8646
8647func awsRestjson1_deserializeOpDocumentDescribeAppInstanceOutput(v **DescribeAppInstanceOutput, value interface{}) error {
8648	if v == nil {
8649		return fmt.Errorf("unexpected nil of type %T", v)
8650	}
8651	if value == nil {
8652		return nil
8653	}
8654
8655	shape, ok := value.(map[string]interface{})
8656	if !ok {
8657		return fmt.Errorf("unexpected JSON type %v", value)
8658	}
8659
8660	var sv *DescribeAppInstanceOutput
8661	if *v == nil {
8662		sv = &DescribeAppInstanceOutput{}
8663	} else {
8664		sv = *v
8665	}
8666
8667	for key, value := range shape {
8668		switch key {
8669		case "AppInstance":
8670			if err := awsRestjson1_deserializeDocumentAppInstance(&sv.AppInstance, value); err != nil {
8671				return err
8672			}
8673
8674		default:
8675			_, _ = key, value
8676
8677		}
8678	}
8679	*v = sv
8680	return nil
8681}
8682
8683type awsRestjson1_deserializeOpDescribeAppInstanceAdmin struct {
8684}
8685
8686func (*awsRestjson1_deserializeOpDescribeAppInstanceAdmin) ID() string {
8687	return "OperationDeserializer"
8688}
8689
8690func (m *awsRestjson1_deserializeOpDescribeAppInstanceAdmin) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8691	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8692) {
8693	out, metadata, err = next.HandleDeserialize(ctx, in)
8694	if err != nil {
8695		return out, metadata, err
8696	}
8697
8698	response, ok := out.RawResponse.(*smithyhttp.Response)
8699	if !ok {
8700		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8701	}
8702
8703	if response.StatusCode < 200 || response.StatusCode >= 300 {
8704		return out, metadata, awsRestjson1_deserializeOpErrorDescribeAppInstanceAdmin(response, &metadata)
8705	}
8706	output := &DescribeAppInstanceAdminOutput{}
8707	out.Result = output
8708
8709	var buff [1024]byte
8710	ringBuffer := smithyio.NewRingBuffer(buff[:])
8711
8712	body := io.TeeReader(response.Body, ringBuffer)
8713
8714	decoder := json.NewDecoder(body)
8715	decoder.UseNumber()
8716	var shape interface{}
8717	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
8718		var snapshot bytes.Buffer
8719		io.Copy(&snapshot, ringBuffer)
8720		err = &smithy.DeserializationError{
8721			Err:      fmt.Errorf("failed to decode response body, %w", err),
8722			Snapshot: snapshot.Bytes(),
8723		}
8724		return out, metadata, err
8725	}
8726
8727	err = awsRestjson1_deserializeOpDocumentDescribeAppInstanceAdminOutput(&output, shape)
8728	if err != nil {
8729		var snapshot bytes.Buffer
8730		io.Copy(&snapshot, ringBuffer)
8731		return out, metadata, &smithy.DeserializationError{
8732			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
8733			Snapshot: snapshot.Bytes(),
8734		}
8735	}
8736
8737	return out, metadata, err
8738}
8739
8740func awsRestjson1_deserializeOpErrorDescribeAppInstanceAdmin(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8741	var errorBuffer bytes.Buffer
8742	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8743		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8744	}
8745	errorBody := bytes.NewReader(errorBuffer.Bytes())
8746
8747	errorCode := "UnknownError"
8748	errorMessage := errorCode
8749
8750	code := response.Header.Get("X-Amzn-ErrorType")
8751	if len(code) != 0 {
8752		errorCode = restjson.SanitizeErrorCode(code)
8753	}
8754
8755	var buff [1024]byte
8756	ringBuffer := smithyio.NewRingBuffer(buff[:])
8757
8758	body := io.TeeReader(errorBody, ringBuffer)
8759	decoder := json.NewDecoder(body)
8760	decoder.UseNumber()
8761	code, message, err := restjson.GetErrorInfo(decoder)
8762	if err != nil {
8763		var snapshot bytes.Buffer
8764		io.Copy(&snapshot, ringBuffer)
8765		err = &smithy.DeserializationError{
8766			Err:      fmt.Errorf("failed to decode response body, %w", err),
8767			Snapshot: snapshot.Bytes(),
8768		}
8769		return err
8770	}
8771
8772	errorBody.Seek(0, io.SeekStart)
8773	if len(code) != 0 {
8774		errorCode = restjson.SanitizeErrorCode(code)
8775	}
8776	if len(message) != 0 {
8777		errorMessage = message
8778	}
8779
8780	switch {
8781	case strings.EqualFold("BadRequestException", errorCode):
8782		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8783
8784	case strings.EqualFold("ForbiddenException", errorCode):
8785		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8786
8787	case strings.EqualFold("ServiceFailureException", errorCode):
8788		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8789
8790	case strings.EqualFold("ServiceUnavailableException", errorCode):
8791		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8792
8793	case strings.EqualFold("ThrottledClientException", errorCode):
8794		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8795
8796	case strings.EqualFold("UnauthorizedClientException", errorCode):
8797		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8798
8799	default:
8800		genericError := &smithy.GenericAPIError{
8801			Code:    errorCode,
8802			Message: errorMessage,
8803		}
8804		return genericError
8805
8806	}
8807}
8808
8809func awsRestjson1_deserializeOpDocumentDescribeAppInstanceAdminOutput(v **DescribeAppInstanceAdminOutput, value interface{}) error {
8810	if v == nil {
8811		return fmt.Errorf("unexpected nil of type %T", v)
8812	}
8813	if value == nil {
8814		return nil
8815	}
8816
8817	shape, ok := value.(map[string]interface{})
8818	if !ok {
8819		return fmt.Errorf("unexpected JSON type %v", value)
8820	}
8821
8822	var sv *DescribeAppInstanceAdminOutput
8823	if *v == nil {
8824		sv = &DescribeAppInstanceAdminOutput{}
8825	} else {
8826		sv = *v
8827	}
8828
8829	for key, value := range shape {
8830		switch key {
8831		case "AppInstanceAdmin":
8832			if err := awsRestjson1_deserializeDocumentAppInstanceAdmin(&sv.AppInstanceAdmin, value); err != nil {
8833				return err
8834			}
8835
8836		default:
8837			_, _ = key, value
8838
8839		}
8840	}
8841	*v = sv
8842	return nil
8843}
8844
8845type awsRestjson1_deserializeOpDescribeAppInstanceUser struct {
8846}
8847
8848func (*awsRestjson1_deserializeOpDescribeAppInstanceUser) ID() string {
8849	return "OperationDeserializer"
8850}
8851
8852func (m *awsRestjson1_deserializeOpDescribeAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
8853	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
8854) {
8855	out, metadata, err = next.HandleDeserialize(ctx, in)
8856	if err != nil {
8857		return out, metadata, err
8858	}
8859
8860	response, ok := out.RawResponse.(*smithyhttp.Response)
8861	if !ok {
8862		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
8863	}
8864
8865	if response.StatusCode < 200 || response.StatusCode >= 300 {
8866		return out, metadata, awsRestjson1_deserializeOpErrorDescribeAppInstanceUser(response, &metadata)
8867	}
8868	output := &DescribeAppInstanceUserOutput{}
8869	out.Result = output
8870
8871	var buff [1024]byte
8872	ringBuffer := smithyio.NewRingBuffer(buff[:])
8873
8874	body := io.TeeReader(response.Body, ringBuffer)
8875
8876	decoder := json.NewDecoder(body)
8877	decoder.UseNumber()
8878	var shape interface{}
8879	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
8880		var snapshot bytes.Buffer
8881		io.Copy(&snapshot, ringBuffer)
8882		err = &smithy.DeserializationError{
8883			Err:      fmt.Errorf("failed to decode response body, %w", err),
8884			Snapshot: snapshot.Bytes(),
8885		}
8886		return out, metadata, err
8887	}
8888
8889	err = awsRestjson1_deserializeOpDocumentDescribeAppInstanceUserOutput(&output, shape)
8890	if err != nil {
8891		var snapshot bytes.Buffer
8892		io.Copy(&snapshot, ringBuffer)
8893		return out, metadata, &smithy.DeserializationError{
8894			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
8895			Snapshot: snapshot.Bytes(),
8896		}
8897	}
8898
8899	return out, metadata, err
8900}
8901
8902func awsRestjson1_deserializeOpErrorDescribeAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
8903	var errorBuffer bytes.Buffer
8904	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
8905		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
8906	}
8907	errorBody := bytes.NewReader(errorBuffer.Bytes())
8908
8909	errorCode := "UnknownError"
8910	errorMessage := errorCode
8911
8912	code := response.Header.Get("X-Amzn-ErrorType")
8913	if len(code) != 0 {
8914		errorCode = restjson.SanitizeErrorCode(code)
8915	}
8916
8917	var buff [1024]byte
8918	ringBuffer := smithyio.NewRingBuffer(buff[:])
8919
8920	body := io.TeeReader(errorBody, ringBuffer)
8921	decoder := json.NewDecoder(body)
8922	decoder.UseNumber()
8923	code, message, err := restjson.GetErrorInfo(decoder)
8924	if err != nil {
8925		var snapshot bytes.Buffer
8926		io.Copy(&snapshot, ringBuffer)
8927		err = &smithy.DeserializationError{
8928			Err:      fmt.Errorf("failed to decode response body, %w", err),
8929			Snapshot: snapshot.Bytes(),
8930		}
8931		return err
8932	}
8933
8934	errorBody.Seek(0, io.SeekStart)
8935	if len(code) != 0 {
8936		errorCode = restjson.SanitizeErrorCode(code)
8937	}
8938	if len(message) != 0 {
8939		errorMessage = message
8940	}
8941
8942	switch {
8943	case strings.EqualFold("BadRequestException", errorCode):
8944		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
8945
8946	case strings.EqualFold("ForbiddenException", errorCode):
8947		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
8948
8949	case strings.EqualFold("ServiceFailureException", errorCode):
8950		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
8951
8952	case strings.EqualFold("ServiceUnavailableException", errorCode):
8953		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
8954
8955	case strings.EqualFold("ThrottledClientException", errorCode):
8956		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
8957
8958	case strings.EqualFold("UnauthorizedClientException", errorCode):
8959		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
8960
8961	default:
8962		genericError := &smithy.GenericAPIError{
8963			Code:    errorCode,
8964			Message: errorMessage,
8965		}
8966		return genericError
8967
8968	}
8969}
8970
8971func awsRestjson1_deserializeOpDocumentDescribeAppInstanceUserOutput(v **DescribeAppInstanceUserOutput, value interface{}) error {
8972	if v == nil {
8973		return fmt.Errorf("unexpected nil of type %T", v)
8974	}
8975	if value == nil {
8976		return nil
8977	}
8978
8979	shape, ok := value.(map[string]interface{})
8980	if !ok {
8981		return fmt.Errorf("unexpected JSON type %v", value)
8982	}
8983
8984	var sv *DescribeAppInstanceUserOutput
8985	if *v == nil {
8986		sv = &DescribeAppInstanceUserOutput{}
8987	} else {
8988		sv = *v
8989	}
8990
8991	for key, value := range shape {
8992		switch key {
8993		case "AppInstanceUser":
8994			if err := awsRestjson1_deserializeDocumentAppInstanceUser(&sv.AppInstanceUser, value); err != nil {
8995				return err
8996			}
8997
8998		default:
8999			_, _ = key, value
9000
9001		}
9002	}
9003	*v = sv
9004	return nil
9005}
9006
9007type awsRestjson1_deserializeOpDescribeChannel struct {
9008}
9009
9010func (*awsRestjson1_deserializeOpDescribeChannel) ID() string {
9011	return "OperationDeserializer"
9012}
9013
9014func (m *awsRestjson1_deserializeOpDescribeChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9015	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9016) {
9017	out, metadata, err = next.HandleDeserialize(ctx, in)
9018	if err != nil {
9019		return out, metadata, err
9020	}
9021
9022	response, ok := out.RawResponse.(*smithyhttp.Response)
9023	if !ok {
9024		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9025	}
9026
9027	if response.StatusCode < 200 || response.StatusCode >= 300 {
9028		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannel(response, &metadata)
9029	}
9030	output := &DescribeChannelOutput{}
9031	out.Result = output
9032
9033	var buff [1024]byte
9034	ringBuffer := smithyio.NewRingBuffer(buff[:])
9035
9036	body := io.TeeReader(response.Body, ringBuffer)
9037
9038	decoder := json.NewDecoder(body)
9039	decoder.UseNumber()
9040	var shape interface{}
9041	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9042		var snapshot bytes.Buffer
9043		io.Copy(&snapshot, ringBuffer)
9044		err = &smithy.DeserializationError{
9045			Err:      fmt.Errorf("failed to decode response body, %w", err),
9046			Snapshot: snapshot.Bytes(),
9047		}
9048		return out, metadata, err
9049	}
9050
9051	err = awsRestjson1_deserializeOpDocumentDescribeChannelOutput(&output, shape)
9052	if err != nil {
9053		var snapshot bytes.Buffer
9054		io.Copy(&snapshot, ringBuffer)
9055		return out, metadata, &smithy.DeserializationError{
9056			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9057			Snapshot: snapshot.Bytes(),
9058		}
9059	}
9060
9061	return out, metadata, err
9062}
9063
9064func awsRestjson1_deserializeOpErrorDescribeChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9065	var errorBuffer bytes.Buffer
9066	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9067		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9068	}
9069	errorBody := bytes.NewReader(errorBuffer.Bytes())
9070
9071	errorCode := "UnknownError"
9072	errorMessage := errorCode
9073
9074	code := response.Header.Get("X-Amzn-ErrorType")
9075	if len(code) != 0 {
9076		errorCode = restjson.SanitizeErrorCode(code)
9077	}
9078
9079	var buff [1024]byte
9080	ringBuffer := smithyio.NewRingBuffer(buff[:])
9081
9082	body := io.TeeReader(errorBody, ringBuffer)
9083	decoder := json.NewDecoder(body)
9084	decoder.UseNumber()
9085	code, message, err := restjson.GetErrorInfo(decoder)
9086	if err != nil {
9087		var snapshot bytes.Buffer
9088		io.Copy(&snapshot, ringBuffer)
9089		err = &smithy.DeserializationError{
9090			Err:      fmt.Errorf("failed to decode response body, %w", err),
9091			Snapshot: snapshot.Bytes(),
9092		}
9093		return err
9094	}
9095
9096	errorBody.Seek(0, io.SeekStart)
9097	if len(code) != 0 {
9098		errorCode = restjson.SanitizeErrorCode(code)
9099	}
9100	if len(message) != 0 {
9101		errorMessage = message
9102	}
9103
9104	switch {
9105	case strings.EqualFold("BadRequestException", errorCode):
9106		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9107
9108	case strings.EqualFold("ForbiddenException", errorCode):
9109		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9110
9111	case strings.EqualFold("ServiceFailureException", errorCode):
9112		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9113
9114	case strings.EqualFold("ServiceUnavailableException", errorCode):
9115		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9116
9117	case strings.EqualFold("ThrottledClientException", errorCode):
9118		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9119
9120	case strings.EqualFold("UnauthorizedClientException", errorCode):
9121		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9122
9123	default:
9124		genericError := &smithy.GenericAPIError{
9125			Code:    errorCode,
9126			Message: errorMessage,
9127		}
9128		return genericError
9129
9130	}
9131}
9132
9133func awsRestjson1_deserializeOpDocumentDescribeChannelOutput(v **DescribeChannelOutput, value interface{}) error {
9134	if v == nil {
9135		return fmt.Errorf("unexpected nil of type %T", v)
9136	}
9137	if value == nil {
9138		return nil
9139	}
9140
9141	shape, ok := value.(map[string]interface{})
9142	if !ok {
9143		return fmt.Errorf("unexpected JSON type %v", value)
9144	}
9145
9146	var sv *DescribeChannelOutput
9147	if *v == nil {
9148		sv = &DescribeChannelOutput{}
9149	} else {
9150		sv = *v
9151	}
9152
9153	for key, value := range shape {
9154		switch key {
9155		case "Channel":
9156			if err := awsRestjson1_deserializeDocumentChannel(&sv.Channel, value); err != nil {
9157				return err
9158			}
9159
9160		default:
9161			_, _ = key, value
9162
9163		}
9164	}
9165	*v = sv
9166	return nil
9167}
9168
9169type awsRestjson1_deserializeOpDescribeChannelBan struct {
9170}
9171
9172func (*awsRestjson1_deserializeOpDescribeChannelBan) ID() string {
9173	return "OperationDeserializer"
9174}
9175
9176func (m *awsRestjson1_deserializeOpDescribeChannelBan) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9177	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9178) {
9179	out, metadata, err = next.HandleDeserialize(ctx, in)
9180	if err != nil {
9181		return out, metadata, err
9182	}
9183
9184	response, ok := out.RawResponse.(*smithyhttp.Response)
9185	if !ok {
9186		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9187	}
9188
9189	if response.StatusCode < 200 || response.StatusCode >= 300 {
9190		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelBan(response, &metadata)
9191	}
9192	output := &DescribeChannelBanOutput{}
9193	out.Result = output
9194
9195	var buff [1024]byte
9196	ringBuffer := smithyio.NewRingBuffer(buff[:])
9197
9198	body := io.TeeReader(response.Body, ringBuffer)
9199
9200	decoder := json.NewDecoder(body)
9201	decoder.UseNumber()
9202	var shape interface{}
9203	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9204		var snapshot bytes.Buffer
9205		io.Copy(&snapshot, ringBuffer)
9206		err = &smithy.DeserializationError{
9207			Err:      fmt.Errorf("failed to decode response body, %w", err),
9208			Snapshot: snapshot.Bytes(),
9209		}
9210		return out, metadata, err
9211	}
9212
9213	err = awsRestjson1_deserializeOpDocumentDescribeChannelBanOutput(&output, shape)
9214	if err != nil {
9215		var snapshot bytes.Buffer
9216		io.Copy(&snapshot, ringBuffer)
9217		return out, metadata, &smithy.DeserializationError{
9218			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9219			Snapshot: snapshot.Bytes(),
9220		}
9221	}
9222
9223	return out, metadata, err
9224}
9225
9226func awsRestjson1_deserializeOpErrorDescribeChannelBan(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9227	var errorBuffer bytes.Buffer
9228	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9229		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9230	}
9231	errorBody := bytes.NewReader(errorBuffer.Bytes())
9232
9233	errorCode := "UnknownError"
9234	errorMessage := errorCode
9235
9236	code := response.Header.Get("X-Amzn-ErrorType")
9237	if len(code) != 0 {
9238		errorCode = restjson.SanitizeErrorCode(code)
9239	}
9240
9241	var buff [1024]byte
9242	ringBuffer := smithyio.NewRingBuffer(buff[:])
9243
9244	body := io.TeeReader(errorBody, ringBuffer)
9245	decoder := json.NewDecoder(body)
9246	decoder.UseNumber()
9247	code, message, err := restjson.GetErrorInfo(decoder)
9248	if err != nil {
9249		var snapshot bytes.Buffer
9250		io.Copy(&snapshot, ringBuffer)
9251		err = &smithy.DeserializationError{
9252			Err:      fmt.Errorf("failed to decode response body, %w", err),
9253			Snapshot: snapshot.Bytes(),
9254		}
9255		return err
9256	}
9257
9258	errorBody.Seek(0, io.SeekStart)
9259	if len(code) != 0 {
9260		errorCode = restjson.SanitizeErrorCode(code)
9261	}
9262	if len(message) != 0 {
9263		errorMessage = message
9264	}
9265
9266	switch {
9267	case strings.EqualFold("BadRequestException", errorCode):
9268		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9269
9270	case strings.EqualFold("ForbiddenException", errorCode):
9271		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9272
9273	case strings.EqualFold("NotFoundException", errorCode):
9274		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
9275
9276	case strings.EqualFold("ServiceFailureException", errorCode):
9277		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9278
9279	case strings.EqualFold("ServiceUnavailableException", errorCode):
9280		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9281
9282	case strings.EqualFold("ThrottledClientException", errorCode):
9283		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9284
9285	case strings.EqualFold("UnauthorizedClientException", errorCode):
9286		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9287
9288	default:
9289		genericError := &smithy.GenericAPIError{
9290			Code:    errorCode,
9291			Message: errorMessage,
9292		}
9293		return genericError
9294
9295	}
9296}
9297
9298func awsRestjson1_deserializeOpDocumentDescribeChannelBanOutput(v **DescribeChannelBanOutput, value interface{}) error {
9299	if v == nil {
9300		return fmt.Errorf("unexpected nil of type %T", v)
9301	}
9302	if value == nil {
9303		return nil
9304	}
9305
9306	shape, ok := value.(map[string]interface{})
9307	if !ok {
9308		return fmt.Errorf("unexpected JSON type %v", value)
9309	}
9310
9311	var sv *DescribeChannelBanOutput
9312	if *v == nil {
9313		sv = &DescribeChannelBanOutput{}
9314	} else {
9315		sv = *v
9316	}
9317
9318	for key, value := range shape {
9319		switch key {
9320		case "ChannelBan":
9321			if err := awsRestjson1_deserializeDocumentChannelBan(&sv.ChannelBan, value); err != nil {
9322				return err
9323			}
9324
9325		default:
9326			_, _ = key, value
9327
9328		}
9329	}
9330	*v = sv
9331	return nil
9332}
9333
9334type awsRestjson1_deserializeOpDescribeChannelMembership struct {
9335}
9336
9337func (*awsRestjson1_deserializeOpDescribeChannelMembership) ID() string {
9338	return "OperationDeserializer"
9339}
9340
9341func (m *awsRestjson1_deserializeOpDescribeChannelMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9342	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9343) {
9344	out, metadata, err = next.HandleDeserialize(ctx, in)
9345	if err != nil {
9346		return out, metadata, err
9347	}
9348
9349	response, ok := out.RawResponse.(*smithyhttp.Response)
9350	if !ok {
9351		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9352	}
9353
9354	if response.StatusCode < 200 || response.StatusCode >= 300 {
9355		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelMembership(response, &metadata)
9356	}
9357	output := &DescribeChannelMembershipOutput{}
9358	out.Result = output
9359
9360	var buff [1024]byte
9361	ringBuffer := smithyio.NewRingBuffer(buff[:])
9362
9363	body := io.TeeReader(response.Body, ringBuffer)
9364
9365	decoder := json.NewDecoder(body)
9366	decoder.UseNumber()
9367	var shape interface{}
9368	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9369		var snapshot bytes.Buffer
9370		io.Copy(&snapshot, ringBuffer)
9371		err = &smithy.DeserializationError{
9372			Err:      fmt.Errorf("failed to decode response body, %w", err),
9373			Snapshot: snapshot.Bytes(),
9374		}
9375		return out, metadata, err
9376	}
9377
9378	err = awsRestjson1_deserializeOpDocumentDescribeChannelMembershipOutput(&output, shape)
9379	if err != nil {
9380		var snapshot bytes.Buffer
9381		io.Copy(&snapshot, ringBuffer)
9382		return out, metadata, &smithy.DeserializationError{
9383			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9384			Snapshot: snapshot.Bytes(),
9385		}
9386	}
9387
9388	return out, metadata, err
9389}
9390
9391func awsRestjson1_deserializeOpErrorDescribeChannelMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9392	var errorBuffer bytes.Buffer
9393	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9394		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9395	}
9396	errorBody := bytes.NewReader(errorBuffer.Bytes())
9397
9398	errorCode := "UnknownError"
9399	errorMessage := errorCode
9400
9401	code := response.Header.Get("X-Amzn-ErrorType")
9402	if len(code) != 0 {
9403		errorCode = restjson.SanitizeErrorCode(code)
9404	}
9405
9406	var buff [1024]byte
9407	ringBuffer := smithyio.NewRingBuffer(buff[:])
9408
9409	body := io.TeeReader(errorBody, ringBuffer)
9410	decoder := json.NewDecoder(body)
9411	decoder.UseNumber()
9412	code, message, err := restjson.GetErrorInfo(decoder)
9413	if err != nil {
9414		var snapshot bytes.Buffer
9415		io.Copy(&snapshot, ringBuffer)
9416		err = &smithy.DeserializationError{
9417			Err:      fmt.Errorf("failed to decode response body, %w", err),
9418			Snapshot: snapshot.Bytes(),
9419		}
9420		return err
9421	}
9422
9423	errorBody.Seek(0, io.SeekStart)
9424	if len(code) != 0 {
9425		errorCode = restjson.SanitizeErrorCode(code)
9426	}
9427	if len(message) != 0 {
9428		errorMessage = message
9429	}
9430
9431	switch {
9432	case strings.EqualFold("BadRequestException", errorCode):
9433		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9434
9435	case strings.EqualFold("ForbiddenException", errorCode):
9436		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9437
9438	case strings.EqualFold("NotFoundException", errorCode):
9439		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
9440
9441	case strings.EqualFold("ServiceFailureException", errorCode):
9442		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9443
9444	case strings.EqualFold("ServiceUnavailableException", errorCode):
9445		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9446
9447	case strings.EqualFold("ThrottledClientException", errorCode):
9448		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9449
9450	case strings.EqualFold("UnauthorizedClientException", errorCode):
9451		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9452
9453	default:
9454		genericError := &smithy.GenericAPIError{
9455			Code:    errorCode,
9456			Message: errorMessage,
9457		}
9458		return genericError
9459
9460	}
9461}
9462
9463func awsRestjson1_deserializeOpDocumentDescribeChannelMembershipOutput(v **DescribeChannelMembershipOutput, value interface{}) error {
9464	if v == nil {
9465		return fmt.Errorf("unexpected nil of type %T", v)
9466	}
9467	if value == nil {
9468		return nil
9469	}
9470
9471	shape, ok := value.(map[string]interface{})
9472	if !ok {
9473		return fmt.Errorf("unexpected JSON type %v", value)
9474	}
9475
9476	var sv *DescribeChannelMembershipOutput
9477	if *v == nil {
9478		sv = &DescribeChannelMembershipOutput{}
9479	} else {
9480		sv = *v
9481	}
9482
9483	for key, value := range shape {
9484		switch key {
9485		case "ChannelMembership":
9486			if err := awsRestjson1_deserializeDocumentChannelMembership(&sv.ChannelMembership, value); err != nil {
9487				return err
9488			}
9489
9490		default:
9491			_, _ = key, value
9492
9493		}
9494	}
9495	*v = sv
9496	return nil
9497}
9498
9499type awsRestjson1_deserializeOpDescribeChannelMembershipForAppInstanceUser struct {
9500}
9501
9502func (*awsRestjson1_deserializeOpDescribeChannelMembershipForAppInstanceUser) ID() string {
9503	return "OperationDeserializer"
9504}
9505
9506func (m *awsRestjson1_deserializeOpDescribeChannelMembershipForAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9507	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9508) {
9509	out, metadata, err = next.HandleDeserialize(ctx, in)
9510	if err != nil {
9511		return out, metadata, err
9512	}
9513
9514	response, ok := out.RawResponse.(*smithyhttp.Response)
9515	if !ok {
9516		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9517	}
9518
9519	if response.StatusCode < 200 || response.StatusCode >= 300 {
9520		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelMembershipForAppInstanceUser(response, &metadata)
9521	}
9522	output := &DescribeChannelMembershipForAppInstanceUserOutput{}
9523	out.Result = output
9524
9525	var buff [1024]byte
9526	ringBuffer := smithyio.NewRingBuffer(buff[:])
9527
9528	body := io.TeeReader(response.Body, ringBuffer)
9529
9530	decoder := json.NewDecoder(body)
9531	decoder.UseNumber()
9532	var shape interface{}
9533	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9534		var snapshot bytes.Buffer
9535		io.Copy(&snapshot, ringBuffer)
9536		err = &smithy.DeserializationError{
9537			Err:      fmt.Errorf("failed to decode response body, %w", err),
9538			Snapshot: snapshot.Bytes(),
9539		}
9540		return out, metadata, err
9541	}
9542
9543	err = awsRestjson1_deserializeOpDocumentDescribeChannelMembershipForAppInstanceUserOutput(&output, shape)
9544	if err != nil {
9545		var snapshot bytes.Buffer
9546		io.Copy(&snapshot, ringBuffer)
9547		return out, metadata, &smithy.DeserializationError{
9548			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9549			Snapshot: snapshot.Bytes(),
9550		}
9551	}
9552
9553	return out, metadata, err
9554}
9555
9556func awsRestjson1_deserializeOpErrorDescribeChannelMembershipForAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9557	var errorBuffer bytes.Buffer
9558	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9559		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9560	}
9561	errorBody := bytes.NewReader(errorBuffer.Bytes())
9562
9563	errorCode := "UnknownError"
9564	errorMessage := errorCode
9565
9566	code := response.Header.Get("X-Amzn-ErrorType")
9567	if len(code) != 0 {
9568		errorCode = restjson.SanitizeErrorCode(code)
9569	}
9570
9571	var buff [1024]byte
9572	ringBuffer := smithyio.NewRingBuffer(buff[:])
9573
9574	body := io.TeeReader(errorBody, ringBuffer)
9575	decoder := json.NewDecoder(body)
9576	decoder.UseNumber()
9577	code, message, err := restjson.GetErrorInfo(decoder)
9578	if err != nil {
9579		var snapshot bytes.Buffer
9580		io.Copy(&snapshot, ringBuffer)
9581		err = &smithy.DeserializationError{
9582			Err:      fmt.Errorf("failed to decode response body, %w", err),
9583			Snapshot: snapshot.Bytes(),
9584		}
9585		return err
9586	}
9587
9588	errorBody.Seek(0, io.SeekStart)
9589	if len(code) != 0 {
9590		errorCode = restjson.SanitizeErrorCode(code)
9591	}
9592	if len(message) != 0 {
9593		errorMessage = message
9594	}
9595
9596	switch {
9597	case strings.EqualFold("BadRequestException", errorCode):
9598		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9599
9600	case strings.EqualFold("ForbiddenException", errorCode):
9601		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9602
9603	case strings.EqualFold("ServiceFailureException", errorCode):
9604		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9605
9606	case strings.EqualFold("ServiceUnavailableException", errorCode):
9607		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9608
9609	case strings.EqualFold("ThrottledClientException", errorCode):
9610		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9611
9612	case strings.EqualFold("UnauthorizedClientException", errorCode):
9613		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9614
9615	default:
9616		genericError := &smithy.GenericAPIError{
9617			Code:    errorCode,
9618			Message: errorMessage,
9619		}
9620		return genericError
9621
9622	}
9623}
9624
9625func awsRestjson1_deserializeOpDocumentDescribeChannelMembershipForAppInstanceUserOutput(v **DescribeChannelMembershipForAppInstanceUserOutput, value interface{}) error {
9626	if v == nil {
9627		return fmt.Errorf("unexpected nil of type %T", v)
9628	}
9629	if value == nil {
9630		return nil
9631	}
9632
9633	shape, ok := value.(map[string]interface{})
9634	if !ok {
9635		return fmt.Errorf("unexpected JSON type %v", value)
9636	}
9637
9638	var sv *DescribeChannelMembershipForAppInstanceUserOutput
9639	if *v == nil {
9640		sv = &DescribeChannelMembershipForAppInstanceUserOutput{}
9641	} else {
9642		sv = *v
9643	}
9644
9645	for key, value := range shape {
9646		switch key {
9647		case "ChannelMembership":
9648			if err := awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummary(&sv.ChannelMembership, value); err != nil {
9649				return err
9650			}
9651
9652		default:
9653			_, _ = key, value
9654
9655		}
9656	}
9657	*v = sv
9658	return nil
9659}
9660
9661type awsRestjson1_deserializeOpDescribeChannelModeratedByAppInstanceUser struct {
9662}
9663
9664func (*awsRestjson1_deserializeOpDescribeChannelModeratedByAppInstanceUser) ID() string {
9665	return "OperationDeserializer"
9666}
9667
9668func (m *awsRestjson1_deserializeOpDescribeChannelModeratedByAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9669	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9670) {
9671	out, metadata, err = next.HandleDeserialize(ctx, in)
9672	if err != nil {
9673		return out, metadata, err
9674	}
9675
9676	response, ok := out.RawResponse.(*smithyhttp.Response)
9677	if !ok {
9678		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9679	}
9680
9681	if response.StatusCode < 200 || response.StatusCode >= 300 {
9682		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelModeratedByAppInstanceUser(response, &metadata)
9683	}
9684	output := &DescribeChannelModeratedByAppInstanceUserOutput{}
9685	out.Result = output
9686
9687	var buff [1024]byte
9688	ringBuffer := smithyio.NewRingBuffer(buff[:])
9689
9690	body := io.TeeReader(response.Body, ringBuffer)
9691
9692	decoder := json.NewDecoder(body)
9693	decoder.UseNumber()
9694	var shape interface{}
9695	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9696		var snapshot bytes.Buffer
9697		io.Copy(&snapshot, ringBuffer)
9698		err = &smithy.DeserializationError{
9699			Err:      fmt.Errorf("failed to decode response body, %w", err),
9700			Snapshot: snapshot.Bytes(),
9701		}
9702		return out, metadata, err
9703	}
9704
9705	err = awsRestjson1_deserializeOpDocumentDescribeChannelModeratedByAppInstanceUserOutput(&output, shape)
9706	if err != nil {
9707		var snapshot bytes.Buffer
9708		io.Copy(&snapshot, ringBuffer)
9709		return out, metadata, &smithy.DeserializationError{
9710			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9711			Snapshot: snapshot.Bytes(),
9712		}
9713	}
9714
9715	return out, metadata, err
9716}
9717
9718func awsRestjson1_deserializeOpErrorDescribeChannelModeratedByAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9719	var errorBuffer bytes.Buffer
9720	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9721		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9722	}
9723	errorBody := bytes.NewReader(errorBuffer.Bytes())
9724
9725	errorCode := "UnknownError"
9726	errorMessage := errorCode
9727
9728	code := response.Header.Get("X-Amzn-ErrorType")
9729	if len(code) != 0 {
9730		errorCode = restjson.SanitizeErrorCode(code)
9731	}
9732
9733	var buff [1024]byte
9734	ringBuffer := smithyio.NewRingBuffer(buff[:])
9735
9736	body := io.TeeReader(errorBody, ringBuffer)
9737	decoder := json.NewDecoder(body)
9738	decoder.UseNumber()
9739	code, message, err := restjson.GetErrorInfo(decoder)
9740	if err != nil {
9741		var snapshot bytes.Buffer
9742		io.Copy(&snapshot, ringBuffer)
9743		err = &smithy.DeserializationError{
9744			Err:      fmt.Errorf("failed to decode response body, %w", err),
9745			Snapshot: snapshot.Bytes(),
9746		}
9747		return err
9748	}
9749
9750	errorBody.Seek(0, io.SeekStart)
9751	if len(code) != 0 {
9752		errorCode = restjson.SanitizeErrorCode(code)
9753	}
9754	if len(message) != 0 {
9755		errorMessage = message
9756	}
9757
9758	switch {
9759	case strings.EqualFold("BadRequestException", errorCode):
9760		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9761
9762	case strings.EqualFold("ForbiddenException", errorCode):
9763		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9764
9765	case strings.EqualFold("ServiceFailureException", errorCode):
9766		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9767
9768	case strings.EqualFold("ServiceUnavailableException", errorCode):
9769		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9770
9771	case strings.EqualFold("ThrottledClientException", errorCode):
9772		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9773
9774	case strings.EqualFold("UnauthorizedClientException", errorCode):
9775		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9776
9777	default:
9778		genericError := &smithy.GenericAPIError{
9779			Code:    errorCode,
9780			Message: errorMessage,
9781		}
9782		return genericError
9783
9784	}
9785}
9786
9787func awsRestjson1_deserializeOpDocumentDescribeChannelModeratedByAppInstanceUserOutput(v **DescribeChannelModeratedByAppInstanceUserOutput, value interface{}) error {
9788	if v == nil {
9789		return fmt.Errorf("unexpected nil of type %T", v)
9790	}
9791	if value == nil {
9792		return nil
9793	}
9794
9795	shape, ok := value.(map[string]interface{})
9796	if !ok {
9797		return fmt.Errorf("unexpected JSON type %v", value)
9798	}
9799
9800	var sv *DescribeChannelModeratedByAppInstanceUserOutput
9801	if *v == nil {
9802		sv = &DescribeChannelModeratedByAppInstanceUserOutput{}
9803	} else {
9804		sv = *v
9805	}
9806
9807	for key, value := range shape {
9808		switch key {
9809		case "Channel":
9810			if err := awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummary(&sv.Channel, value); err != nil {
9811				return err
9812			}
9813
9814		default:
9815			_, _ = key, value
9816
9817		}
9818	}
9819	*v = sv
9820	return nil
9821}
9822
9823type awsRestjson1_deserializeOpDescribeChannelModerator struct {
9824}
9825
9826func (*awsRestjson1_deserializeOpDescribeChannelModerator) ID() string {
9827	return "OperationDeserializer"
9828}
9829
9830func (m *awsRestjson1_deserializeOpDescribeChannelModerator) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9831	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9832) {
9833	out, metadata, err = next.HandleDeserialize(ctx, in)
9834	if err != nil {
9835		return out, metadata, err
9836	}
9837
9838	response, ok := out.RawResponse.(*smithyhttp.Response)
9839	if !ok {
9840		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
9841	}
9842
9843	if response.StatusCode < 200 || response.StatusCode >= 300 {
9844		return out, metadata, awsRestjson1_deserializeOpErrorDescribeChannelModerator(response, &metadata)
9845	}
9846	output := &DescribeChannelModeratorOutput{}
9847	out.Result = output
9848
9849	var buff [1024]byte
9850	ringBuffer := smithyio.NewRingBuffer(buff[:])
9851
9852	body := io.TeeReader(response.Body, ringBuffer)
9853
9854	decoder := json.NewDecoder(body)
9855	decoder.UseNumber()
9856	var shape interface{}
9857	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
9858		var snapshot bytes.Buffer
9859		io.Copy(&snapshot, ringBuffer)
9860		err = &smithy.DeserializationError{
9861			Err:      fmt.Errorf("failed to decode response body, %w", err),
9862			Snapshot: snapshot.Bytes(),
9863		}
9864		return out, metadata, err
9865	}
9866
9867	err = awsRestjson1_deserializeOpDocumentDescribeChannelModeratorOutput(&output, shape)
9868	if err != nil {
9869		var snapshot bytes.Buffer
9870		io.Copy(&snapshot, ringBuffer)
9871		return out, metadata, &smithy.DeserializationError{
9872			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
9873			Snapshot: snapshot.Bytes(),
9874		}
9875	}
9876
9877	return out, metadata, err
9878}
9879
9880func awsRestjson1_deserializeOpErrorDescribeChannelModerator(response *smithyhttp.Response, metadata *middleware.Metadata) error {
9881	var errorBuffer bytes.Buffer
9882	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
9883		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
9884	}
9885	errorBody := bytes.NewReader(errorBuffer.Bytes())
9886
9887	errorCode := "UnknownError"
9888	errorMessage := errorCode
9889
9890	code := response.Header.Get("X-Amzn-ErrorType")
9891	if len(code) != 0 {
9892		errorCode = restjson.SanitizeErrorCode(code)
9893	}
9894
9895	var buff [1024]byte
9896	ringBuffer := smithyio.NewRingBuffer(buff[:])
9897
9898	body := io.TeeReader(errorBody, ringBuffer)
9899	decoder := json.NewDecoder(body)
9900	decoder.UseNumber()
9901	code, message, err := restjson.GetErrorInfo(decoder)
9902	if err != nil {
9903		var snapshot bytes.Buffer
9904		io.Copy(&snapshot, ringBuffer)
9905		err = &smithy.DeserializationError{
9906			Err:      fmt.Errorf("failed to decode response body, %w", err),
9907			Snapshot: snapshot.Bytes(),
9908		}
9909		return err
9910	}
9911
9912	errorBody.Seek(0, io.SeekStart)
9913	if len(code) != 0 {
9914		errorCode = restjson.SanitizeErrorCode(code)
9915	}
9916	if len(message) != 0 {
9917		errorMessage = message
9918	}
9919
9920	switch {
9921	case strings.EqualFold("BadRequestException", errorCode):
9922		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
9923
9924	case strings.EqualFold("ForbiddenException", errorCode):
9925		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
9926
9927	case strings.EqualFold("NotFoundException", errorCode):
9928		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
9929
9930	case strings.EqualFold("ServiceFailureException", errorCode):
9931		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
9932
9933	case strings.EqualFold("ServiceUnavailableException", errorCode):
9934		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
9935
9936	case strings.EqualFold("ThrottledClientException", errorCode):
9937		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
9938
9939	case strings.EqualFold("UnauthorizedClientException", errorCode):
9940		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
9941
9942	default:
9943		genericError := &smithy.GenericAPIError{
9944			Code:    errorCode,
9945			Message: errorMessage,
9946		}
9947		return genericError
9948
9949	}
9950}
9951
9952func awsRestjson1_deserializeOpDocumentDescribeChannelModeratorOutput(v **DescribeChannelModeratorOutput, value interface{}) error {
9953	if v == nil {
9954		return fmt.Errorf("unexpected nil of type %T", v)
9955	}
9956	if value == nil {
9957		return nil
9958	}
9959
9960	shape, ok := value.(map[string]interface{})
9961	if !ok {
9962		return fmt.Errorf("unexpected JSON type %v", value)
9963	}
9964
9965	var sv *DescribeChannelModeratorOutput
9966	if *v == nil {
9967		sv = &DescribeChannelModeratorOutput{}
9968	} else {
9969		sv = *v
9970	}
9971
9972	for key, value := range shape {
9973		switch key {
9974		case "ChannelModerator":
9975			if err := awsRestjson1_deserializeDocumentChannelModerator(&sv.ChannelModerator, value); err != nil {
9976				return err
9977			}
9978
9979		default:
9980			_, _ = key, value
9981
9982		}
9983	}
9984	*v = sv
9985	return nil
9986}
9987
9988type awsRestjson1_deserializeOpDisassociatePhoneNumberFromUser struct {
9989}
9990
9991func (*awsRestjson1_deserializeOpDisassociatePhoneNumberFromUser) ID() string {
9992	return "OperationDeserializer"
9993}
9994
9995func (m *awsRestjson1_deserializeOpDisassociatePhoneNumberFromUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
9996	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
9997) {
9998	out, metadata, err = next.HandleDeserialize(ctx, in)
9999	if err != nil {
10000		return out, metadata, err
10001	}
10002
10003	response, ok := out.RawResponse.(*smithyhttp.Response)
10004	if !ok {
10005		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10006	}
10007
10008	if response.StatusCode < 200 || response.StatusCode >= 300 {
10009		return out, metadata, awsRestjson1_deserializeOpErrorDisassociatePhoneNumberFromUser(response, &metadata)
10010	}
10011	output := &DisassociatePhoneNumberFromUserOutput{}
10012	out.Result = output
10013
10014	return out, metadata, err
10015}
10016
10017func awsRestjson1_deserializeOpErrorDisassociatePhoneNumberFromUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10018	var errorBuffer bytes.Buffer
10019	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10020		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10021	}
10022	errorBody := bytes.NewReader(errorBuffer.Bytes())
10023
10024	errorCode := "UnknownError"
10025	errorMessage := errorCode
10026
10027	code := response.Header.Get("X-Amzn-ErrorType")
10028	if len(code) != 0 {
10029		errorCode = restjson.SanitizeErrorCode(code)
10030	}
10031
10032	var buff [1024]byte
10033	ringBuffer := smithyio.NewRingBuffer(buff[:])
10034
10035	body := io.TeeReader(errorBody, ringBuffer)
10036	decoder := json.NewDecoder(body)
10037	decoder.UseNumber()
10038	code, message, err := restjson.GetErrorInfo(decoder)
10039	if err != nil {
10040		var snapshot bytes.Buffer
10041		io.Copy(&snapshot, ringBuffer)
10042		err = &smithy.DeserializationError{
10043			Err:      fmt.Errorf("failed to decode response body, %w", err),
10044			Snapshot: snapshot.Bytes(),
10045		}
10046		return err
10047	}
10048
10049	errorBody.Seek(0, io.SeekStart)
10050	if len(code) != 0 {
10051		errorCode = restjson.SanitizeErrorCode(code)
10052	}
10053	if len(message) != 0 {
10054		errorMessage = message
10055	}
10056
10057	switch {
10058	case strings.EqualFold("BadRequestException", errorCode):
10059		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10060
10061	case strings.EqualFold("ForbiddenException", errorCode):
10062		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10063
10064	case strings.EqualFold("NotFoundException", errorCode):
10065		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10066
10067	case strings.EqualFold("ServiceFailureException", errorCode):
10068		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10069
10070	case strings.EqualFold("ServiceUnavailableException", errorCode):
10071		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10072
10073	case strings.EqualFold("ThrottledClientException", errorCode):
10074		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10075
10076	case strings.EqualFold("UnauthorizedClientException", errorCode):
10077		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10078
10079	default:
10080		genericError := &smithy.GenericAPIError{
10081			Code:    errorCode,
10082			Message: errorMessage,
10083		}
10084		return genericError
10085
10086	}
10087}
10088
10089type awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnector struct {
10090}
10091
10092func (*awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnector) ID() string {
10093	return "OperationDeserializer"
10094}
10095
10096func (m *awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10097	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10098) {
10099	out, metadata, err = next.HandleDeserialize(ctx, in)
10100	if err != nil {
10101		return out, metadata, err
10102	}
10103
10104	response, ok := out.RawResponse.(*smithyhttp.Response)
10105	if !ok {
10106		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10107	}
10108
10109	if response.StatusCode < 200 || response.StatusCode >= 300 {
10110		return out, metadata, awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnector(response, &metadata)
10111	}
10112	output := &DisassociatePhoneNumbersFromVoiceConnectorOutput{}
10113	out.Result = output
10114
10115	var buff [1024]byte
10116	ringBuffer := smithyio.NewRingBuffer(buff[:])
10117
10118	body := io.TeeReader(response.Body, ringBuffer)
10119
10120	decoder := json.NewDecoder(body)
10121	decoder.UseNumber()
10122	var shape interface{}
10123	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10124		var snapshot bytes.Buffer
10125		io.Copy(&snapshot, ringBuffer)
10126		err = &smithy.DeserializationError{
10127			Err:      fmt.Errorf("failed to decode response body, %w", err),
10128			Snapshot: snapshot.Bytes(),
10129		}
10130		return out, metadata, err
10131	}
10132
10133	err = awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorOutput(&output, shape)
10134	if err != nil {
10135		var snapshot bytes.Buffer
10136		io.Copy(&snapshot, ringBuffer)
10137		return out, metadata, &smithy.DeserializationError{
10138			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10139			Snapshot: snapshot.Bytes(),
10140		}
10141	}
10142
10143	return out, metadata, err
10144}
10145
10146func awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10147	var errorBuffer bytes.Buffer
10148	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10149		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10150	}
10151	errorBody := bytes.NewReader(errorBuffer.Bytes())
10152
10153	errorCode := "UnknownError"
10154	errorMessage := errorCode
10155
10156	code := response.Header.Get("X-Amzn-ErrorType")
10157	if len(code) != 0 {
10158		errorCode = restjson.SanitizeErrorCode(code)
10159	}
10160
10161	var buff [1024]byte
10162	ringBuffer := smithyio.NewRingBuffer(buff[:])
10163
10164	body := io.TeeReader(errorBody, ringBuffer)
10165	decoder := json.NewDecoder(body)
10166	decoder.UseNumber()
10167	code, message, err := restjson.GetErrorInfo(decoder)
10168	if err != nil {
10169		var snapshot bytes.Buffer
10170		io.Copy(&snapshot, ringBuffer)
10171		err = &smithy.DeserializationError{
10172			Err:      fmt.Errorf("failed to decode response body, %w", err),
10173			Snapshot: snapshot.Bytes(),
10174		}
10175		return err
10176	}
10177
10178	errorBody.Seek(0, io.SeekStart)
10179	if len(code) != 0 {
10180		errorCode = restjson.SanitizeErrorCode(code)
10181	}
10182	if len(message) != 0 {
10183		errorMessage = message
10184	}
10185
10186	switch {
10187	case strings.EqualFold("BadRequestException", errorCode):
10188		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10189
10190	case strings.EqualFold("ForbiddenException", errorCode):
10191		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10192
10193	case strings.EqualFold("NotFoundException", errorCode):
10194		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10195
10196	case strings.EqualFold("ServiceFailureException", errorCode):
10197		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10198
10199	case strings.EqualFold("ServiceUnavailableException", errorCode):
10200		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10201
10202	case strings.EqualFold("ThrottledClientException", errorCode):
10203		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10204
10205	case strings.EqualFold("UnauthorizedClientException", errorCode):
10206		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10207
10208	default:
10209		genericError := &smithy.GenericAPIError{
10210			Code:    errorCode,
10211			Message: errorMessage,
10212		}
10213		return genericError
10214
10215	}
10216}
10217
10218func awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorOutput(v **DisassociatePhoneNumbersFromVoiceConnectorOutput, value interface{}) error {
10219	if v == nil {
10220		return fmt.Errorf("unexpected nil of type %T", v)
10221	}
10222	if value == nil {
10223		return nil
10224	}
10225
10226	shape, ok := value.(map[string]interface{})
10227	if !ok {
10228		return fmt.Errorf("unexpected JSON type %v", value)
10229	}
10230
10231	var sv *DisassociatePhoneNumbersFromVoiceConnectorOutput
10232	if *v == nil {
10233		sv = &DisassociatePhoneNumbersFromVoiceConnectorOutput{}
10234	} else {
10235		sv = *v
10236	}
10237
10238	for key, value := range shape {
10239		switch key {
10240		case "PhoneNumberErrors":
10241			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
10242				return err
10243			}
10244
10245		default:
10246			_, _ = key, value
10247
10248		}
10249	}
10250	*v = sv
10251	return nil
10252}
10253
10254type awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnectorGroup struct {
10255}
10256
10257func (*awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnectorGroup) ID() string {
10258	return "OperationDeserializer"
10259}
10260
10261func (m *awsRestjson1_deserializeOpDisassociatePhoneNumbersFromVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10262	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10263) {
10264	out, metadata, err = next.HandleDeserialize(ctx, in)
10265	if err != nil {
10266		return out, metadata, err
10267	}
10268
10269	response, ok := out.RawResponse.(*smithyhttp.Response)
10270	if !ok {
10271		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10272	}
10273
10274	if response.StatusCode < 200 || response.StatusCode >= 300 {
10275		return out, metadata, awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnectorGroup(response, &metadata)
10276	}
10277	output := &DisassociatePhoneNumbersFromVoiceConnectorGroupOutput{}
10278	out.Result = output
10279
10280	var buff [1024]byte
10281	ringBuffer := smithyio.NewRingBuffer(buff[:])
10282
10283	body := io.TeeReader(response.Body, ringBuffer)
10284
10285	decoder := json.NewDecoder(body)
10286	decoder.UseNumber()
10287	var shape interface{}
10288	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10289		var snapshot bytes.Buffer
10290		io.Copy(&snapshot, ringBuffer)
10291		err = &smithy.DeserializationError{
10292			Err:      fmt.Errorf("failed to decode response body, %w", err),
10293			Snapshot: snapshot.Bytes(),
10294		}
10295		return out, metadata, err
10296	}
10297
10298	err = awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorGroupOutput(&output, shape)
10299	if err != nil {
10300		var snapshot bytes.Buffer
10301		io.Copy(&snapshot, ringBuffer)
10302		return out, metadata, &smithy.DeserializationError{
10303			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10304			Snapshot: snapshot.Bytes(),
10305		}
10306	}
10307
10308	return out, metadata, err
10309}
10310
10311func awsRestjson1_deserializeOpErrorDisassociatePhoneNumbersFromVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10312	var errorBuffer bytes.Buffer
10313	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10314		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10315	}
10316	errorBody := bytes.NewReader(errorBuffer.Bytes())
10317
10318	errorCode := "UnknownError"
10319	errorMessage := errorCode
10320
10321	code := response.Header.Get("X-Amzn-ErrorType")
10322	if len(code) != 0 {
10323		errorCode = restjson.SanitizeErrorCode(code)
10324	}
10325
10326	var buff [1024]byte
10327	ringBuffer := smithyio.NewRingBuffer(buff[:])
10328
10329	body := io.TeeReader(errorBody, ringBuffer)
10330	decoder := json.NewDecoder(body)
10331	decoder.UseNumber()
10332	code, message, err := restjson.GetErrorInfo(decoder)
10333	if err != nil {
10334		var snapshot bytes.Buffer
10335		io.Copy(&snapshot, ringBuffer)
10336		err = &smithy.DeserializationError{
10337			Err:      fmt.Errorf("failed to decode response body, %w", err),
10338			Snapshot: snapshot.Bytes(),
10339		}
10340		return err
10341	}
10342
10343	errorBody.Seek(0, io.SeekStart)
10344	if len(code) != 0 {
10345		errorCode = restjson.SanitizeErrorCode(code)
10346	}
10347	if len(message) != 0 {
10348		errorMessage = message
10349	}
10350
10351	switch {
10352	case strings.EqualFold("BadRequestException", errorCode):
10353		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10354
10355	case strings.EqualFold("ForbiddenException", errorCode):
10356		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10357
10358	case strings.EqualFold("NotFoundException", errorCode):
10359		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10360
10361	case strings.EqualFold("ServiceFailureException", errorCode):
10362		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10363
10364	case strings.EqualFold("ServiceUnavailableException", errorCode):
10365		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10366
10367	case strings.EqualFold("ThrottledClientException", errorCode):
10368		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10369
10370	case strings.EqualFold("UnauthorizedClientException", errorCode):
10371		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10372
10373	default:
10374		genericError := &smithy.GenericAPIError{
10375			Code:    errorCode,
10376			Message: errorMessage,
10377		}
10378		return genericError
10379
10380	}
10381}
10382
10383func awsRestjson1_deserializeOpDocumentDisassociatePhoneNumbersFromVoiceConnectorGroupOutput(v **DisassociatePhoneNumbersFromVoiceConnectorGroupOutput, value interface{}) error {
10384	if v == nil {
10385		return fmt.Errorf("unexpected nil of type %T", v)
10386	}
10387	if value == nil {
10388		return nil
10389	}
10390
10391	shape, ok := value.(map[string]interface{})
10392	if !ok {
10393		return fmt.Errorf("unexpected JSON type %v", value)
10394	}
10395
10396	var sv *DisassociatePhoneNumbersFromVoiceConnectorGroupOutput
10397	if *v == nil {
10398		sv = &DisassociatePhoneNumbersFromVoiceConnectorGroupOutput{}
10399	} else {
10400		sv = *v
10401	}
10402
10403	for key, value := range shape {
10404		switch key {
10405		case "PhoneNumberErrors":
10406			if err := awsRestjson1_deserializeDocumentPhoneNumberErrorList(&sv.PhoneNumberErrors, value); err != nil {
10407				return err
10408			}
10409
10410		default:
10411			_, _ = key, value
10412
10413		}
10414	}
10415	*v = sv
10416	return nil
10417}
10418
10419type awsRestjson1_deserializeOpDisassociateSigninDelegateGroupsFromAccount struct {
10420}
10421
10422func (*awsRestjson1_deserializeOpDisassociateSigninDelegateGroupsFromAccount) ID() string {
10423	return "OperationDeserializer"
10424}
10425
10426func (m *awsRestjson1_deserializeOpDisassociateSigninDelegateGroupsFromAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10427	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10428) {
10429	out, metadata, err = next.HandleDeserialize(ctx, in)
10430	if err != nil {
10431		return out, metadata, err
10432	}
10433
10434	response, ok := out.RawResponse.(*smithyhttp.Response)
10435	if !ok {
10436		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10437	}
10438
10439	if response.StatusCode < 200 || response.StatusCode >= 300 {
10440		return out, metadata, awsRestjson1_deserializeOpErrorDisassociateSigninDelegateGroupsFromAccount(response, &metadata)
10441	}
10442	output := &DisassociateSigninDelegateGroupsFromAccountOutput{}
10443	out.Result = output
10444
10445	return out, metadata, err
10446}
10447
10448func awsRestjson1_deserializeOpErrorDisassociateSigninDelegateGroupsFromAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10449	var errorBuffer bytes.Buffer
10450	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10451		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10452	}
10453	errorBody := bytes.NewReader(errorBuffer.Bytes())
10454
10455	errorCode := "UnknownError"
10456	errorMessage := errorCode
10457
10458	code := response.Header.Get("X-Amzn-ErrorType")
10459	if len(code) != 0 {
10460		errorCode = restjson.SanitizeErrorCode(code)
10461	}
10462
10463	var buff [1024]byte
10464	ringBuffer := smithyio.NewRingBuffer(buff[:])
10465
10466	body := io.TeeReader(errorBody, ringBuffer)
10467	decoder := json.NewDecoder(body)
10468	decoder.UseNumber()
10469	code, message, err := restjson.GetErrorInfo(decoder)
10470	if err != nil {
10471		var snapshot bytes.Buffer
10472		io.Copy(&snapshot, ringBuffer)
10473		err = &smithy.DeserializationError{
10474			Err:      fmt.Errorf("failed to decode response body, %w", err),
10475			Snapshot: snapshot.Bytes(),
10476		}
10477		return err
10478	}
10479
10480	errorBody.Seek(0, io.SeekStart)
10481	if len(code) != 0 {
10482		errorCode = restjson.SanitizeErrorCode(code)
10483	}
10484	if len(message) != 0 {
10485		errorMessage = message
10486	}
10487
10488	switch {
10489	case strings.EqualFold("BadRequestException", errorCode):
10490		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10491
10492	case strings.EqualFold("ForbiddenException", errorCode):
10493		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10494
10495	case strings.EqualFold("NotFoundException", errorCode):
10496		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10497
10498	case strings.EqualFold("ServiceFailureException", errorCode):
10499		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10500
10501	case strings.EqualFold("ServiceUnavailableException", errorCode):
10502		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10503
10504	case strings.EqualFold("ThrottledClientException", errorCode):
10505		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10506
10507	case strings.EqualFold("UnauthorizedClientException", errorCode):
10508		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10509
10510	default:
10511		genericError := &smithy.GenericAPIError{
10512			Code:    errorCode,
10513			Message: errorMessage,
10514		}
10515		return genericError
10516
10517	}
10518}
10519
10520type awsRestjson1_deserializeOpGetAccount struct {
10521}
10522
10523func (*awsRestjson1_deserializeOpGetAccount) ID() string {
10524	return "OperationDeserializer"
10525}
10526
10527func (m *awsRestjson1_deserializeOpGetAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10528	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10529) {
10530	out, metadata, err = next.HandleDeserialize(ctx, in)
10531	if err != nil {
10532		return out, metadata, err
10533	}
10534
10535	response, ok := out.RawResponse.(*smithyhttp.Response)
10536	if !ok {
10537		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10538	}
10539
10540	if response.StatusCode < 200 || response.StatusCode >= 300 {
10541		return out, metadata, awsRestjson1_deserializeOpErrorGetAccount(response, &metadata)
10542	}
10543	output := &GetAccountOutput{}
10544	out.Result = output
10545
10546	var buff [1024]byte
10547	ringBuffer := smithyio.NewRingBuffer(buff[:])
10548
10549	body := io.TeeReader(response.Body, ringBuffer)
10550
10551	decoder := json.NewDecoder(body)
10552	decoder.UseNumber()
10553	var shape interface{}
10554	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10555		var snapshot bytes.Buffer
10556		io.Copy(&snapshot, ringBuffer)
10557		err = &smithy.DeserializationError{
10558			Err:      fmt.Errorf("failed to decode response body, %w", err),
10559			Snapshot: snapshot.Bytes(),
10560		}
10561		return out, metadata, err
10562	}
10563
10564	err = awsRestjson1_deserializeOpDocumentGetAccountOutput(&output, shape)
10565	if err != nil {
10566		var snapshot bytes.Buffer
10567		io.Copy(&snapshot, ringBuffer)
10568		return out, metadata, &smithy.DeserializationError{
10569			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10570			Snapshot: snapshot.Bytes(),
10571		}
10572	}
10573
10574	return out, metadata, err
10575}
10576
10577func awsRestjson1_deserializeOpErrorGetAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10578	var errorBuffer bytes.Buffer
10579	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10580		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10581	}
10582	errorBody := bytes.NewReader(errorBuffer.Bytes())
10583
10584	errorCode := "UnknownError"
10585	errorMessage := errorCode
10586
10587	code := response.Header.Get("X-Amzn-ErrorType")
10588	if len(code) != 0 {
10589		errorCode = restjson.SanitizeErrorCode(code)
10590	}
10591
10592	var buff [1024]byte
10593	ringBuffer := smithyio.NewRingBuffer(buff[:])
10594
10595	body := io.TeeReader(errorBody, ringBuffer)
10596	decoder := json.NewDecoder(body)
10597	decoder.UseNumber()
10598	code, message, err := restjson.GetErrorInfo(decoder)
10599	if err != nil {
10600		var snapshot bytes.Buffer
10601		io.Copy(&snapshot, ringBuffer)
10602		err = &smithy.DeserializationError{
10603			Err:      fmt.Errorf("failed to decode response body, %w", err),
10604			Snapshot: snapshot.Bytes(),
10605		}
10606		return err
10607	}
10608
10609	errorBody.Seek(0, io.SeekStart)
10610	if len(code) != 0 {
10611		errorCode = restjson.SanitizeErrorCode(code)
10612	}
10613	if len(message) != 0 {
10614		errorMessage = message
10615	}
10616
10617	switch {
10618	case strings.EqualFold("BadRequestException", errorCode):
10619		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10620
10621	case strings.EqualFold("ForbiddenException", errorCode):
10622		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10623
10624	case strings.EqualFold("NotFoundException", errorCode):
10625		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10626
10627	case strings.EqualFold("ServiceFailureException", errorCode):
10628		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10629
10630	case strings.EqualFold("ServiceUnavailableException", errorCode):
10631		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10632
10633	case strings.EqualFold("ThrottledClientException", errorCode):
10634		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10635
10636	case strings.EqualFold("UnauthorizedClientException", errorCode):
10637		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10638
10639	default:
10640		genericError := &smithy.GenericAPIError{
10641			Code:    errorCode,
10642			Message: errorMessage,
10643		}
10644		return genericError
10645
10646	}
10647}
10648
10649func awsRestjson1_deserializeOpDocumentGetAccountOutput(v **GetAccountOutput, value interface{}) error {
10650	if v == nil {
10651		return fmt.Errorf("unexpected nil of type %T", v)
10652	}
10653	if value == nil {
10654		return nil
10655	}
10656
10657	shape, ok := value.(map[string]interface{})
10658	if !ok {
10659		return fmt.Errorf("unexpected JSON type %v", value)
10660	}
10661
10662	var sv *GetAccountOutput
10663	if *v == nil {
10664		sv = &GetAccountOutput{}
10665	} else {
10666		sv = *v
10667	}
10668
10669	for key, value := range shape {
10670		switch key {
10671		case "Account":
10672			if err := awsRestjson1_deserializeDocumentAccount(&sv.Account, value); err != nil {
10673				return err
10674			}
10675
10676		default:
10677			_, _ = key, value
10678
10679		}
10680	}
10681	*v = sv
10682	return nil
10683}
10684
10685type awsRestjson1_deserializeOpGetAccountSettings struct {
10686}
10687
10688func (*awsRestjson1_deserializeOpGetAccountSettings) ID() string {
10689	return "OperationDeserializer"
10690}
10691
10692func (m *awsRestjson1_deserializeOpGetAccountSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10693	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10694) {
10695	out, metadata, err = next.HandleDeserialize(ctx, in)
10696	if err != nil {
10697		return out, metadata, err
10698	}
10699
10700	response, ok := out.RawResponse.(*smithyhttp.Response)
10701	if !ok {
10702		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10703	}
10704
10705	if response.StatusCode < 200 || response.StatusCode >= 300 {
10706		return out, metadata, awsRestjson1_deserializeOpErrorGetAccountSettings(response, &metadata)
10707	}
10708	output := &GetAccountSettingsOutput{}
10709	out.Result = output
10710
10711	var buff [1024]byte
10712	ringBuffer := smithyio.NewRingBuffer(buff[:])
10713
10714	body := io.TeeReader(response.Body, ringBuffer)
10715
10716	decoder := json.NewDecoder(body)
10717	decoder.UseNumber()
10718	var shape interface{}
10719	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10720		var snapshot bytes.Buffer
10721		io.Copy(&snapshot, ringBuffer)
10722		err = &smithy.DeserializationError{
10723			Err:      fmt.Errorf("failed to decode response body, %w", err),
10724			Snapshot: snapshot.Bytes(),
10725		}
10726		return out, metadata, err
10727	}
10728
10729	err = awsRestjson1_deserializeOpDocumentGetAccountSettingsOutput(&output, shape)
10730	if err != nil {
10731		var snapshot bytes.Buffer
10732		io.Copy(&snapshot, ringBuffer)
10733		return out, metadata, &smithy.DeserializationError{
10734			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10735			Snapshot: snapshot.Bytes(),
10736		}
10737	}
10738
10739	return out, metadata, err
10740}
10741
10742func awsRestjson1_deserializeOpErrorGetAccountSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10743	var errorBuffer bytes.Buffer
10744	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10745		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10746	}
10747	errorBody := bytes.NewReader(errorBuffer.Bytes())
10748
10749	errorCode := "UnknownError"
10750	errorMessage := errorCode
10751
10752	code := response.Header.Get("X-Amzn-ErrorType")
10753	if len(code) != 0 {
10754		errorCode = restjson.SanitizeErrorCode(code)
10755	}
10756
10757	var buff [1024]byte
10758	ringBuffer := smithyio.NewRingBuffer(buff[:])
10759
10760	body := io.TeeReader(errorBody, ringBuffer)
10761	decoder := json.NewDecoder(body)
10762	decoder.UseNumber()
10763	code, message, err := restjson.GetErrorInfo(decoder)
10764	if err != nil {
10765		var snapshot bytes.Buffer
10766		io.Copy(&snapshot, ringBuffer)
10767		err = &smithy.DeserializationError{
10768			Err:      fmt.Errorf("failed to decode response body, %w", err),
10769			Snapshot: snapshot.Bytes(),
10770		}
10771		return err
10772	}
10773
10774	errorBody.Seek(0, io.SeekStart)
10775	if len(code) != 0 {
10776		errorCode = restjson.SanitizeErrorCode(code)
10777	}
10778	if len(message) != 0 {
10779		errorMessage = message
10780	}
10781
10782	switch {
10783	case strings.EqualFold("BadRequestException", errorCode):
10784		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10785
10786	case strings.EqualFold("ForbiddenException", errorCode):
10787		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10788
10789	case strings.EqualFold("NotFoundException", errorCode):
10790		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10791
10792	case strings.EqualFold("ServiceFailureException", errorCode):
10793		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10794
10795	case strings.EqualFold("ServiceUnavailableException", errorCode):
10796		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10797
10798	case strings.EqualFold("ThrottledClientException", errorCode):
10799		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10800
10801	case strings.EqualFold("UnauthorizedClientException", errorCode):
10802		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10803
10804	default:
10805		genericError := &smithy.GenericAPIError{
10806			Code:    errorCode,
10807			Message: errorMessage,
10808		}
10809		return genericError
10810
10811	}
10812}
10813
10814func awsRestjson1_deserializeOpDocumentGetAccountSettingsOutput(v **GetAccountSettingsOutput, value interface{}) error {
10815	if v == nil {
10816		return fmt.Errorf("unexpected nil of type %T", v)
10817	}
10818	if value == nil {
10819		return nil
10820	}
10821
10822	shape, ok := value.(map[string]interface{})
10823	if !ok {
10824		return fmt.Errorf("unexpected JSON type %v", value)
10825	}
10826
10827	var sv *GetAccountSettingsOutput
10828	if *v == nil {
10829		sv = &GetAccountSettingsOutput{}
10830	} else {
10831		sv = *v
10832	}
10833
10834	for key, value := range shape {
10835		switch key {
10836		case "AccountSettings":
10837			if err := awsRestjson1_deserializeDocumentAccountSettings(&sv.AccountSettings, value); err != nil {
10838				return err
10839			}
10840
10841		default:
10842			_, _ = key, value
10843
10844		}
10845	}
10846	*v = sv
10847	return nil
10848}
10849
10850type awsRestjson1_deserializeOpGetAppInstanceRetentionSettings struct {
10851}
10852
10853func (*awsRestjson1_deserializeOpGetAppInstanceRetentionSettings) ID() string {
10854	return "OperationDeserializer"
10855}
10856
10857func (m *awsRestjson1_deserializeOpGetAppInstanceRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
10858	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
10859) {
10860	out, metadata, err = next.HandleDeserialize(ctx, in)
10861	if err != nil {
10862		return out, metadata, err
10863	}
10864
10865	response, ok := out.RawResponse.(*smithyhttp.Response)
10866	if !ok {
10867		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
10868	}
10869
10870	if response.StatusCode < 200 || response.StatusCode >= 300 {
10871		return out, metadata, awsRestjson1_deserializeOpErrorGetAppInstanceRetentionSettings(response, &metadata)
10872	}
10873	output := &GetAppInstanceRetentionSettingsOutput{}
10874	out.Result = output
10875
10876	var buff [1024]byte
10877	ringBuffer := smithyio.NewRingBuffer(buff[:])
10878
10879	body := io.TeeReader(response.Body, ringBuffer)
10880
10881	decoder := json.NewDecoder(body)
10882	decoder.UseNumber()
10883	var shape interface{}
10884	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
10885		var snapshot bytes.Buffer
10886		io.Copy(&snapshot, ringBuffer)
10887		err = &smithy.DeserializationError{
10888			Err:      fmt.Errorf("failed to decode response body, %w", err),
10889			Snapshot: snapshot.Bytes(),
10890		}
10891		return out, metadata, err
10892	}
10893
10894	err = awsRestjson1_deserializeOpDocumentGetAppInstanceRetentionSettingsOutput(&output, shape)
10895	if err != nil {
10896		var snapshot bytes.Buffer
10897		io.Copy(&snapshot, ringBuffer)
10898		return out, metadata, &smithy.DeserializationError{
10899			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
10900			Snapshot: snapshot.Bytes(),
10901		}
10902	}
10903
10904	return out, metadata, err
10905}
10906
10907func awsRestjson1_deserializeOpErrorGetAppInstanceRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
10908	var errorBuffer bytes.Buffer
10909	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
10910		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
10911	}
10912	errorBody := bytes.NewReader(errorBuffer.Bytes())
10913
10914	errorCode := "UnknownError"
10915	errorMessage := errorCode
10916
10917	code := response.Header.Get("X-Amzn-ErrorType")
10918	if len(code) != 0 {
10919		errorCode = restjson.SanitizeErrorCode(code)
10920	}
10921
10922	var buff [1024]byte
10923	ringBuffer := smithyio.NewRingBuffer(buff[:])
10924
10925	body := io.TeeReader(errorBody, ringBuffer)
10926	decoder := json.NewDecoder(body)
10927	decoder.UseNumber()
10928	code, message, err := restjson.GetErrorInfo(decoder)
10929	if err != nil {
10930		var snapshot bytes.Buffer
10931		io.Copy(&snapshot, ringBuffer)
10932		err = &smithy.DeserializationError{
10933			Err:      fmt.Errorf("failed to decode response body, %w", err),
10934			Snapshot: snapshot.Bytes(),
10935		}
10936		return err
10937	}
10938
10939	errorBody.Seek(0, io.SeekStart)
10940	if len(code) != 0 {
10941		errorCode = restjson.SanitizeErrorCode(code)
10942	}
10943	if len(message) != 0 {
10944		errorMessage = message
10945	}
10946
10947	switch {
10948	case strings.EqualFold("BadRequestException", errorCode):
10949		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
10950
10951	case strings.EqualFold("ForbiddenException", errorCode):
10952		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
10953
10954	case strings.EqualFold("NotFoundException", errorCode):
10955		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
10956
10957	case strings.EqualFold("ServiceFailureException", errorCode):
10958		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
10959
10960	case strings.EqualFold("ServiceUnavailableException", errorCode):
10961		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
10962
10963	case strings.EqualFold("ThrottledClientException", errorCode):
10964		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
10965
10966	case strings.EqualFold("UnauthorizedClientException", errorCode):
10967		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
10968
10969	default:
10970		genericError := &smithy.GenericAPIError{
10971			Code:    errorCode,
10972			Message: errorMessage,
10973		}
10974		return genericError
10975
10976	}
10977}
10978
10979func awsRestjson1_deserializeOpDocumentGetAppInstanceRetentionSettingsOutput(v **GetAppInstanceRetentionSettingsOutput, value interface{}) error {
10980	if v == nil {
10981		return fmt.Errorf("unexpected nil of type %T", v)
10982	}
10983	if value == nil {
10984		return nil
10985	}
10986
10987	shape, ok := value.(map[string]interface{})
10988	if !ok {
10989		return fmt.Errorf("unexpected JSON type %v", value)
10990	}
10991
10992	var sv *GetAppInstanceRetentionSettingsOutput
10993	if *v == nil {
10994		sv = &GetAppInstanceRetentionSettingsOutput{}
10995	} else {
10996		sv = *v
10997	}
10998
10999	for key, value := range shape {
11000		switch key {
11001		case "AppInstanceRetentionSettings":
11002			if err := awsRestjson1_deserializeDocumentAppInstanceRetentionSettings(&sv.AppInstanceRetentionSettings, value); err != nil {
11003				return err
11004			}
11005
11006		case "InitiateDeletionTimestamp":
11007			if value != nil {
11008				jtv, ok := value.(json.Number)
11009				if !ok {
11010					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
11011				}
11012				f64, err := jtv.Float64()
11013				if err != nil {
11014					return err
11015				}
11016				sv.InitiateDeletionTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
11017			}
11018
11019		default:
11020			_, _ = key, value
11021
11022		}
11023	}
11024	*v = sv
11025	return nil
11026}
11027
11028type awsRestjson1_deserializeOpGetAppInstanceStreamingConfigurations struct {
11029}
11030
11031func (*awsRestjson1_deserializeOpGetAppInstanceStreamingConfigurations) ID() string {
11032	return "OperationDeserializer"
11033}
11034
11035func (m *awsRestjson1_deserializeOpGetAppInstanceStreamingConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11036	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11037) {
11038	out, metadata, err = next.HandleDeserialize(ctx, in)
11039	if err != nil {
11040		return out, metadata, err
11041	}
11042
11043	response, ok := out.RawResponse.(*smithyhttp.Response)
11044	if !ok {
11045		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11046	}
11047
11048	if response.StatusCode < 200 || response.StatusCode >= 300 {
11049		return out, metadata, awsRestjson1_deserializeOpErrorGetAppInstanceStreamingConfigurations(response, &metadata)
11050	}
11051	output := &GetAppInstanceStreamingConfigurationsOutput{}
11052	out.Result = output
11053
11054	var buff [1024]byte
11055	ringBuffer := smithyio.NewRingBuffer(buff[:])
11056
11057	body := io.TeeReader(response.Body, ringBuffer)
11058
11059	decoder := json.NewDecoder(body)
11060	decoder.UseNumber()
11061	var shape interface{}
11062	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11063		var snapshot bytes.Buffer
11064		io.Copy(&snapshot, ringBuffer)
11065		err = &smithy.DeserializationError{
11066			Err:      fmt.Errorf("failed to decode response body, %w", err),
11067			Snapshot: snapshot.Bytes(),
11068		}
11069		return out, metadata, err
11070	}
11071
11072	err = awsRestjson1_deserializeOpDocumentGetAppInstanceStreamingConfigurationsOutput(&output, shape)
11073	if err != nil {
11074		var snapshot bytes.Buffer
11075		io.Copy(&snapshot, ringBuffer)
11076		return out, metadata, &smithy.DeserializationError{
11077			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11078			Snapshot: snapshot.Bytes(),
11079		}
11080	}
11081
11082	return out, metadata, err
11083}
11084
11085func awsRestjson1_deserializeOpErrorGetAppInstanceStreamingConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11086	var errorBuffer bytes.Buffer
11087	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11088		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11089	}
11090	errorBody := bytes.NewReader(errorBuffer.Bytes())
11091
11092	errorCode := "UnknownError"
11093	errorMessage := errorCode
11094
11095	code := response.Header.Get("X-Amzn-ErrorType")
11096	if len(code) != 0 {
11097		errorCode = restjson.SanitizeErrorCode(code)
11098	}
11099
11100	var buff [1024]byte
11101	ringBuffer := smithyio.NewRingBuffer(buff[:])
11102
11103	body := io.TeeReader(errorBody, ringBuffer)
11104	decoder := json.NewDecoder(body)
11105	decoder.UseNumber()
11106	code, message, err := restjson.GetErrorInfo(decoder)
11107	if err != nil {
11108		var snapshot bytes.Buffer
11109		io.Copy(&snapshot, ringBuffer)
11110		err = &smithy.DeserializationError{
11111			Err:      fmt.Errorf("failed to decode response body, %w", err),
11112			Snapshot: snapshot.Bytes(),
11113		}
11114		return err
11115	}
11116
11117	errorBody.Seek(0, io.SeekStart)
11118	if len(code) != 0 {
11119		errorCode = restjson.SanitizeErrorCode(code)
11120	}
11121	if len(message) != 0 {
11122		errorMessage = message
11123	}
11124
11125	switch {
11126	case strings.EqualFold("BadRequestException", errorCode):
11127		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11128
11129	case strings.EqualFold("ForbiddenException", errorCode):
11130		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11131
11132	case strings.EqualFold("NotFoundException", errorCode):
11133		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11134
11135	case strings.EqualFold("ServiceFailureException", errorCode):
11136		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11137
11138	case strings.EqualFold("ServiceUnavailableException", errorCode):
11139		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11140
11141	case strings.EqualFold("ThrottledClientException", errorCode):
11142		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11143
11144	case strings.EqualFold("UnauthorizedClientException", errorCode):
11145		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11146
11147	default:
11148		genericError := &smithy.GenericAPIError{
11149			Code:    errorCode,
11150			Message: errorMessage,
11151		}
11152		return genericError
11153
11154	}
11155}
11156
11157func awsRestjson1_deserializeOpDocumentGetAppInstanceStreamingConfigurationsOutput(v **GetAppInstanceStreamingConfigurationsOutput, value interface{}) error {
11158	if v == nil {
11159		return fmt.Errorf("unexpected nil of type %T", v)
11160	}
11161	if value == nil {
11162		return nil
11163	}
11164
11165	shape, ok := value.(map[string]interface{})
11166	if !ok {
11167		return fmt.Errorf("unexpected JSON type %v", value)
11168	}
11169
11170	var sv *GetAppInstanceStreamingConfigurationsOutput
11171	if *v == nil {
11172		sv = &GetAppInstanceStreamingConfigurationsOutput{}
11173	} else {
11174		sv = *v
11175	}
11176
11177	for key, value := range shape {
11178		switch key {
11179		case "AppInstanceStreamingConfigurations":
11180			if err := awsRestjson1_deserializeDocumentAppInstanceStreamingConfigurationList(&sv.AppInstanceStreamingConfigurations, value); err != nil {
11181				return err
11182			}
11183
11184		default:
11185			_, _ = key, value
11186
11187		}
11188	}
11189	*v = sv
11190	return nil
11191}
11192
11193type awsRestjson1_deserializeOpGetAttendee struct {
11194}
11195
11196func (*awsRestjson1_deserializeOpGetAttendee) ID() string {
11197	return "OperationDeserializer"
11198}
11199
11200func (m *awsRestjson1_deserializeOpGetAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11201	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11202) {
11203	out, metadata, err = next.HandleDeserialize(ctx, in)
11204	if err != nil {
11205		return out, metadata, err
11206	}
11207
11208	response, ok := out.RawResponse.(*smithyhttp.Response)
11209	if !ok {
11210		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11211	}
11212
11213	if response.StatusCode < 200 || response.StatusCode >= 300 {
11214		return out, metadata, awsRestjson1_deserializeOpErrorGetAttendee(response, &metadata)
11215	}
11216	output := &GetAttendeeOutput{}
11217	out.Result = output
11218
11219	var buff [1024]byte
11220	ringBuffer := smithyio.NewRingBuffer(buff[:])
11221
11222	body := io.TeeReader(response.Body, ringBuffer)
11223
11224	decoder := json.NewDecoder(body)
11225	decoder.UseNumber()
11226	var shape interface{}
11227	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11228		var snapshot bytes.Buffer
11229		io.Copy(&snapshot, ringBuffer)
11230		err = &smithy.DeserializationError{
11231			Err:      fmt.Errorf("failed to decode response body, %w", err),
11232			Snapshot: snapshot.Bytes(),
11233		}
11234		return out, metadata, err
11235	}
11236
11237	err = awsRestjson1_deserializeOpDocumentGetAttendeeOutput(&output, shape)
11238	if err != nil {
11239		var snapshot bytes.Buffer
11240		io.Copy(&snapshot, ringBuffer)
11241		return out, metadata, &smithy.DeserializationError{
11242			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11243			Snapshot: snapshot.Bytes(),
11244		}
11245	}
11246
11247	return out, metadata, err
11248}
11249
11250func awsRestjson1_deserializeOpErrorGetAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11251	var errorBuffer bytes.Buffer
11252	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11253		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11254	}
11255	errorBody := bytes.NewReader(errorBuffer.Bytes())
11256
11257	errorCode := "UnknownError"
11258	errorMessage := errorCode
11259
11260	code := response.Header.Get("X-Amzn-ErrorType")
11261	if len(code) != 0 {
11262		errorCode = restjson.SanitizeErrorCode(code)
11263	}
11264
11265	var buff [1024]byte
11266	ringBuffer := smithyio.NewRingBuffer(buff[:])
11267
11268	body := io.TeeReader(errorBody, ringBuffer)
11269	decoder := json.NewDecoder(body)
11270	decoder.UseNumber()
11271	code, message, err := restjson.GetErrorInfo(decoder)
11272	if err != nil {
11273		var snapshot bytes.Buffer
11274		io.Copy(&snapshot, ringBuffer)
11275		err = &smithy.DeserializationError{
11276			Err:      fmt.Errorf("failed to decode response body, %w", err),
11277			Snapshot: snapshot.Bytes(),
11278		}
11279		return err
11280	}
11281
11282	errorBody.Seek(0, io.SeekStart)
11283	if len(code) != 0 {
11284		errorCode = restjson.SanitizeErrorCode(code)
11285	}
11286	if len(message) != 0 {
11287		errorMessage = message
11288	}
11289
11290	switch {
11291	case strings.EqualFold("BadRequestException", errorCode):
11292		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11293
11294	case strings.EqualFold("ForbiddenException", errorCode):
11295		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11296
11297	case strings.EqualFold("NotFoundException", errorCode):
11298		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11299
11300	case strings.EqualFold("ServiceFailureException", errorCode):
11301		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11302
11303	case strings.EqualFold("ServiceUnavailableException", errorCode):
11304		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11305
11306	case strings.EqualFold("ThrottledClientException", errorCode):
11307		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11308
11309	case strings.EqualFold("UnauthorizedClientException", errorCode):
11310		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11311
11312	default:
11313		genericError := &smithy.GenericAPIError{
11314			Code:    errorCode,
11315			Message: errorMessage,
11316		}
11317		return genericError
11318
11319	}
11320}
11321
11322func awsRestjson1_deserializeOpDocumentGetAttendeeOutput(v **GetAttendeeOutput, value interface{}) error {
11323	if v == nil {
11324		return fmt.Errorf("unexpected nil of type %T", v)
11325	}
11326	if value == nil {
11327		return nil
11328	}
11329
11330	shape, ok := value.(map[string]interface{})
11331	if !ok {
11332		return fmt.Errorf("unexpected JSON type %v", value)
11333	}
11334
11335	var sv *GetAttendeeOutput
11336	if *v == nil {
11337		sv = &GetAttendeeOutput{}
11338	} else {
11339		sv = *v
11340	}
11341
11342	for key, value := range shape {
11343		switch key {
11344		case "Attendee":
11345			if err := awsRestjson1_deserializeDocumentAttendee(&sv.Attendee, value); err != nil {
11346				return err
11347			}
11348
11349		default:
11350			_, _ = key, value
11351
11352		}
11353	}
11354	*v = sv
11355	return nil
11356}
11357
11358type awsRestjson1_deserializeOpGetBot struct {
11359}
11360
11361func (*awsRestjson1_deserializeOpGetBot) ID() string {
11362	return "OperationDeserializer"
11363}
11364
11365func (m *awsRestjson1_deserializeOpGetBot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11366	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11367) {
11368	out, metadata, err = next.HandleDeserialize(ctx, in)
11369	if err != nil {
11370		return out, metadata, err
11371	}
11372
11373	response, ok := out.RawResponse.(*smithyhttp.Response)
11374	if !ok {
11375		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11376	}
11377
11378	if response.StatusCode < 200 || response.StatusCode >= 300 {
11379		return out, metadata, awsRestjson1_deserializeOpErrorGetBot(response, &metadata)
11380	}
11381	output := &GetBotOutput{}
11382	out.Result = output
11383
11384	var buff [1024]byte
11385	ringBuffer := smithyio.NewRingBuffer(buff[:])
11386
11387	body := io.TeeReader(response.Body, ringBuffer)
11388
11389	decoder := json.NewDecoder(body)
11390	decoder.UseNumber()
11391	var shape interface{}
11392	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11393		var snapshot bytes.Buffer
11394		io.Copy(&snapshot, ringBuffer)
11395		err = &smithy.DeserializationError{
11396			Err:      fmt.Errorf("failed to decode response body, %w", err),
11397			Snapshot: snapshot.Bytes(),
11398		}
11399		return out, metadata, err
11400	}
11401
11402	err = awsRestjson1_deserializeOpDocumentGetBotOutput(&output, shape)
11403	if err != nil {
11404		var snapshot bytes.Buffer
11405		io.Copy(&snapshot, ringBuffer)
11406		return out, metadata, &smithy.DeserializationError{
11407			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11408			Snapshot: snapshot.Bytes(),
11409		}
11410	}
11411
11412	return out, metadata, err
11413}
11414
11415func awsRestjson1_deserializeOpErrorGetBot(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11416	var errorBuffer bytes.Buffer
11417	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11418		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11419	}
11420	errorBody := bytes.NewReader(errorBuffer.Bytes())
11421
11422	errorCode := "UnknownError"
11423	errorMessage := errorCode
11424
11425	code := response.Header.Get("X-Amzn-ErrorType")
11426	if len(code) != 0 {
11427		errorCode = restjson.SanitizeErrorCode(code)
11428	}
11429
11430	var buff [1024]byte
11431	ringBuffer := smithyio.NewRingBuffer(buff[:])
11432
11433	body := io.TeeReader(errorBody, ringBuffer)
11434	decoder := json.NewDecoder(body)
11435	decoder.UseNumber()
11436	code, message, err := restjson.GetErrorInfo(decoder)
11437	if err != nil {
11438		var snapshot bytes.Buffer
11439		io.Copy(&snapshot, ringBuffer)
11440		err = &smithy.DeserializationError{
11441			Err:      fmt.Errorf("failed to decode response body, %w", err),
11442			Snapshot: snapshot.Bytes(),
11443		}
11444		return err
11445	}
11446
11447	errorBody.Seek(0, io.SeekStart)
11448	if len(code) != 0 {
11449		errorCode = restjson.SanitizeErrorCode(code)
11450	}
11451	if len(message) != 0 {
11452		errorMessage = message
11453	}
11454
11455	switch {
11456	case strings.EqualFold("BadRequestException", errorCode):
11457		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11458
11459	case strings.EqualFold("ForbiddenException", errorCode):
11460		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11461
11462	case strings.EqualFold("NotFoundException", errorCode):
11463		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11464
11465	case strings.EqualFold("ServiceFailureException", errorCode):
11466		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11467
11468	case strings.EqualFold("ServiceUnavailableException", errorCode):
11469		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11470
11471	case strings.EqualFold("ThrottledClientException", errorCode):
11472		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11473
11474	case strings.EqualFold("UnauthorizedClientException", errorCode):
11475		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11476
11477	default:
11478		genericError := &smithy.GenericAPIError{
11479			Code:    errorCode,
11480			Message: errorMessage,
11481		}
11482		return genericError
11483
11484	}
11485}
11486
11487func awsRestjson1_deserializeOpDocumentGetBotOutput(v **GetBotOutput, value interface{}) error {
11488	if v == nil {
11489		return fmt.Errorf("unexpected nil of type %T", v)
11490	}
11491	if value == nil {
11492		return nil
11493	}
11494
11495	shape, ok := value.(map[string]interface{})
11496	if !ok {
11497		return fmt.Errorf("unexpected JSON type %v", value)
11498	}
11499
11500	var sv *GetBotOutput
11501	if *v == nil {
11502		sv = &GetBotOutput{}
11503	} else {
11504		sv = *v
11505	}
11506
11507	for key, value := range shape {
11508		switch key {
11509		case "Bot":
11510			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
11511				return err
11512			}
11513
11514		default:
11515			_, _ = key, value
11516
11517		}
11518	}
11519	*v = sv
11520	return nil
11521}
11522
11523type awsRestjson1_deserializeOpGetChannelMessage struct {
11524}
11525
11526func (*awsRestjson1_deserializeOpGetChannelMessage) ID() string {
11527	return "OperationDeserializer"
11528}
11529
11530func (m *awsRestjson1_deserializeOpGetChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11531	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11532) {
11533	out, metadata, err = next.HandleDeserialize(ctx, in)
11534	if err != nil {
11535		return out, metadata, err
11536	}
11537
11538	response, ok := out.RawResponse.(*smithyhttp.Response)
11539	if !ok {
11540		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11541	}
11542
11543	if response.StatusCode < 200 || response.StatusCode >= 300 {
11544		return out, metadata, awsRestjson1_deserializeOpErrorGetChannelMessage(response, &metadata)
11545	}
11546	output := &GetChannelMessageOutput{}
11547	out.Result = output
11548
11549	var buff [1024]byte
11550	ringBuffer := smithyio.NewRingBuffer(buff[:])
11551
11552	body := io.TeeReader(response.Body, ringBuffer)
11553
11554	decoder := json.NewDecoder(body)
11555	decoder.UseNumber()
11556	var shape interface{}
11557	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11558		var snapshot bytes.Buffer
11559		io.Copy(&snapshot, ringBuffer)
11560		err = &smithy.DeserializationError{
11561			Err:      fmt.Errorf("failed to decode response body, %w", err),
11562			Snapshot: snapshot.Bytes(),
11563		}
11564		return out, metadata, err
11565	}
11566
11567	err = awsRestjson1_deserializeOpDocumentGetChannelMessageOutput(&output, shape)
11568	if err != nil {
11569		var snapshot bytes.Buffer
11570		io.Copy(&snapshot, ringBuffer)
11571		return out, metadata, &smithy.DeserializationError{
11572			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11573			Snapshot: snapshot.Bytes(),
11574		}
11575	}
11576
11577	return out, metadata, err
11578}
11579
11580func awsRestjson1_deserializeOpErrorGetChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11581	var errorBuffer bytes.Buffer
11582	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11583		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11584	}
11585	errorBody := bytes.NewReader(errorBuffer.Bytes())
11586
11587	errorCode := "UnknownError"
11588	errorMessage := errorCode
11589
11590	code := response.Header.Get("X-Amzn-ErrorType")
11591	if len(code) != 0 {
11592		errorCode = restjson.SanitizeErrorCode(code)
11593	}
11594
11595	var buff [1024]byte
11596	ringBuffer := smithyio.NewRingBuffer(buff[:])
11597
11598	body := io.TeeReader(errorBody, ringBuffer)
11599	decoder := json.NewDecoder(body)
11600	decoder.UseNumber()
11601	code, message, err := restjson.GetErrorInfo(decoder)
11602	if err != nil {
11603		var snapshot bytes.Buffer
11604		io.Copy(&snapshot, ringBuffer)
11605		err = &smithy.DeserializationError{
11606			Err:      fmt.Errorf("failed to decode response body, %w", err),
11607			Snapshot: snapshot.Bytes(),
11608		}
11609		return err
11610	}
11611
11612	errorBody.Seek(0, io.SeekStart)
11613	if len(code) != 0 {
11614		errorCode = restjson.SanitizeErrorCode(code)
11615	}
11616	if len(message) != 0 {
11617		errorMessage = message
11618	}
11619
11620	switch {
11621	case strings.EqualFold("BadRequestException", errorCode):
11622		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11623
11624	case strings.EqualFold("ForbiddenException", errorCode):
11625		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11626
11627	case strings.EqualFold("NotFoundException", errorCode):
11628		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11629
11630	case strings.EqualFold("ServiceFailureException", errorCode):
11631		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11632
11633	case strings.EqualFold("ServiceUnavailableException", errorCode):
11634		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11635
11636	case strings.EqualFold("ThrottledClientException", errorCode):
11637		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11638
11639	case strings.EqualFold("UnauthorizedClientException", errorCode):
11640		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11641
11642	default:
11643		genericError := &smithy.GenericAPIError{
11644			Code:    errorCode,
11645			Message: errorMessage,
11646		}
11647		return genericError
11648
11649	}
11650}
11651
11652func awsRestjson1_deserializeOpDocumentGetChannelMessageOutput(v **GetChannelMessageOutput, value interface{}) error {
11653	if v == nil {
11654		return fmt.Errorf("unexpected nil of type %T", v)
11655	}
11656	if value == nil {
11657		return nil
11658	}
11659
11660	shape, ok := value.(map[string]interface{})
11661	if !ok {
11662		return fmt.Errorf("unexpected JSON type %v", value)
11663	}
11664
11665	var sv *GetChannelMessageOutput
11666	if *v == nil {
11667		sv = &GetChannelMessageOutput{}
11668	} else {
11669		sv = *v
11670	}
11671
11672	for key, value := range shape {
11673		switch key {
11674		case "ChannelMessage":
11675			if err := awsRestjson1_deserializeDocumentChannelMessage(&sv.ChannelMessage, value); err != nil {
11676				return err
11677			}
11678
11679		default:
11680			_, _ = key, value
11681
11682		}
11683	}
11684	*v = sv
11685	return nil
11686}
11687
11688type awsRestjson1_deserializeOpGetEventsConfiguration struct {
11689}
11690
11691func (*awsRestjson1_deserializeOpGetEventsConfiguration) ID() string {
11692	return "OperationDeserializer"
11693}
11694
11695func (m *awsRestjson1_deserializeOpGetEventsConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11696	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11697) {
11698	out, metadata, err = next.HandleDeserialize(ctx, in)
11699	if err != nil {
11700		return out, metadata, err
11701	}
11702
11703	response, ok := out.RawResponse.(*smithyhttp.Response)
11704	if !ok {
11705		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11706	}
11707
11708	if response.StatusCode < 200 || response.StatusCode >= 300 {
11709		return out, metadata, awsRestjson1_deserializeOpErrorGetEventsConfiguration(response, &metadata)
11710	}
11711	output := &GetEventsConfigurationOutput{}
11712	out.Result = output
11713
11714	var buff [1024]byte
11715	ringBuffer := smithyio.NewRingBuffer(buff[:])
11716
11717	body := io.TeeReader(response.Body, ringBuffer)
11718
11719	decoder := json.NewDecoder(body)
11720	decoder.UseNumber()
11721	var shape interface{}
11722	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11723		var snapshot bytes.Buffer
11724		io.Copy(&snapshot, ringBuffer)
11725		err = &smithy.DeserializationError{
11726			Err:      fmt.Errorf("failed to decode response body, %w", err),
11727			Snapshot: snapshot.Bytes(),
11728		}
11729		return out, metadata, err
11730	}
11731
11732	err = awsRestjson1_deserializeOpDocumentGetEventsConfigurationOutput(&output, shape)
11733	if err != nil {
11734		var snapshot bytes.Buffer
11735		io.Copy(&snapshot, ringBuffer)
11736		return out, metadata, &smithy.DeserializationError{
11737			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11738			Snapshot: snapshot.Bytes(),
11739		}
11740	}
11741
11742	return out, metadata, err
11743}
11744
11745func awsRestjson1_deserializeOpErrorGetEventsConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11746	var errorBuffer bytes.Buffer
11747	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11748		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11749	}
11750	errorBody := bytes.NewReader(errorBuffer.Bytes())
11751
11752	errorCode := "UnknownError"
11753	errorMessage := errorCode
11754
11755	code := response.Header.Get("X-Amzn-ErrorType")
11756	if len(code) != 0 {
11757		errorCode = restjson.SanitizeErrorCode(code)
11758	}
11759
11760	var buff [1024]byte
11761	ringBuffer := smithyio.NewRingBuffer(buff[:])
11762
11763	body := io.TeeReader(errorBody, ringBuffer)
11764	decoder := json.NewDecoder(body)
11765	decoder.UseNumber()
11766	code, message, err := restjson.GetErrorInfo(decoder)
11767	if err != nil {
11768		var snapshot bytes.Buffer
11769		io.Copy(&snapshot, ringBuffer)
11770		err = &smithy.DeserializationError{
11771			Err:      fmt.Errorf("failed to decode response body, %w", err),
11772			Snapshot: snapshot.Bytes(),
11773		}
11774		return err
11775	}
11776
11777	errorBody.Seek(0, io.SeekStart)
11778	if len(code) != 0 {
11779		errorCode = restjson.SanitizeErrorCode(code)
11780	}
11781	if len(message) != 0 {
11782		errorMessage = message
11783	}
11784
11785	switch {
11786	case strings.EqualFold("BadRequestException", errorCode):
11787		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11788
11789	case strings.EqualFold("ForbiddenException", errorCode):
11790		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11791
11792	case strings.EqualFold("NotFoundException", errorCode):
11793		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
11794
11795	case strings.EqualFold("ResourceLimitExceededException", errorCode):
11796		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
11797
11798	case strings.EqualFold("ServiceFailureException", errorCode):
11799		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11800
11801	case strings.EqualFold("ServiceUnavailableException", errorCode):
11802		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11803
11804	case strings.EqualFold("UnauthorizedClientException", errorCode):
11805		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11806
11807	default:
11808		genericError := &smithy.GenericAPIError{
11809			Code:    errorCode,
11810			Message: errorMessage,
11811		}
11812		return genericError
11813
11814	}
11815}
11816
11817func awsRestjson1_deserializeOpDocumentGetEventsConfigurationOutput(v **GetEventsConfigurationOutput, value interface{}) error {
11818	if v == nil {
11819		return fmt.Errorf("unexpected nil of type %T", v)
11820	}
11821	if value == nil {
11822		return nil
11823	}
11824
11825	shape, ok := value.(map[string]interface{})
11826	if !ok {
11827		return fmt.Errorf("unexpected JSON type %v", value)
11828	}
11829
11830	var sv *GetEventsConfigurationOutput
11831	if *v == nil {
11832		sv = &GetEventsConfigurationOutput{}
11833	} else {
11834		sv = *v
11835	}
11836
11837	for key, value := range shape {
11838		switch key {
11839		case "EventsConfiguration":
11840			if err := awsRestjson1_deserializeDocumentEventsConfiguration(&sv.EventsConfiguration, value); err != nil {
11841				return err
11842			}
11843
11844		default:
11845			_, _ = key, value
11846
11847		}
11848	}
11849	*v = sv
11850	return nil
11851}
11852
11853type awsRestjson1_deserializeOpGetGlobalSettings struct {
11854}
11855
11856func (*awsRestjson1_deserializeOpGetGlobalSettings) ID() string {
11857	return "OperationDeserializer"
11858}
11859
11860func (m *awsRestjson1_deserializeOpGetGlobalSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
11861	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
11862) {
11863	out, metadata, err = next.HandleDeserialize(ctx, in)
11864	if err != nil {
11865		return out, metadata, err
11866	}
11867
11868	response, ok := out.RawResponse.(*smithyhttp.Response)
11869	if !ok {
11870		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
11871	}
11872
11873	if response.StatusCode < 200 || response.StatusCode >= 300 {
11874		return out, metadata, awsRestjson1_deserializeOpErrorGetGlobalSettings(response, &metadata)
11875	}
11876	output := &GetGlobalSettingsOutput{}
11877	out.Result = output
11878
11879	var buff [1024]byte
11880	ringBuffer := smithyio.NewRingBuffer(buff[:])
11881
11882	body := io.TeeReader(response.Body, ringBuffer)
11883
11884	decoder := json.NewDecoder(body)
11885	decoder.UseNumber()
11886	var shape interface{}
11887	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
11888		var snapshot bytes.Buffer
11889		io.Copy(&snapshot, ringBuffer)
11890		err = &smithy.DeserializationError{
11891			Err:      fmt.Errorf("failed to decode response body, %w", err),
11892			Snapshot: snapshot.Bytes(),
11893		}
11894		return out, metadata, err
11895	}
11896
11897	err = awsRestjson1_deserializeOpDocumentGetGlobalSettingsOutput(&output, shape)
11898	if err != nil {
11899		var snapshot bytes.Buffer
11900		io.Copy(&snapshot, ringBuffer)
11901		return out, metadata, &smithy.DeserializationError{
11902			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
11903			Snapshot: snapshot.Bytes(),
11904		}
11905	}
11906
11907	return out, metadata, err
11908}
11909
11910func awsRestjson1_deserializeOpErrorGetGlobalSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
11911	var errorBuffer bytes.Buffer
11912	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
11913		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
11914	}
11915	errorBody := bytes.NewReader(errorBuffer.Bytes())
11916
11917	errorCode := "UnknownError"
11918	errorMessage := errorCode
11919
11920	code := response.Header.Get("X-Amzn-ErrorType")
11921	if len(code) != 0 {
11922		errorCode = restjson.SanitizeErrorCode(code)
11923	}
11924
11925	var buff [1024]byte
11926	ringBuffer := smithyio.NewRingBuffer(buff[:])
11927
11928	body := io.TeeReader(errorBody, ringBuffer)
11929	decoder := json.NewDecoder(body)
11930	decoder.UseNumber()
11931	code, message, err := restjson.GetErrorInfo(decoder)
11932	if err != nil {
11933		var snapshot bytes.Buffer
11934		io.Copy(&snapshot, ringBuffer)
11935		err = &smithy.DeserializationError{
11936			Err:      fmt.Errorf("failed to decode response body, %w", err),
11937			Snapshot: snapshot.Bytes(),
11938		}
11939		return err
11940	}
11941
11942	errorBody.Seek(0, io.SeekStart)
11943	if len(code) != 0 {
11944		errorCode = restjson.SanitizeErrorCode(code)
11945	}
11946	if len(message) != 0 {
11947		errorMessage = message
11948	}
11949
11950	switch {
11951	case strings.EqualFold("BadRequestException", errorCode):
11952		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
11953
11954	case strings.EqualFold("ForbiddenException", errorCode):
11955		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
11956
11957	case strings.EqualFold("ServiceFailureException", errorCode):
11958		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
11959
11960	case strings.EqualFold("ServiceUnavailableException", errorCode):
11961		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
11962
11963	case strings.EqualFold("ThrottledClientException", errorCode):
11964		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
11965
11966	case strings.EqualFold("UnauthorizedClientException", errorCode):
11967		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
11968
11969	default:
11970		genericError := &smithy.GenericAPIError{
11971			Code:    errorCode,
11972			Message: errorMessage,
11973		}
11974		return genericError
11975
11976	}
11977}
11978
11979func awsRestjson1_deserializeOpDocumentGetGlobalSettingsOutput(v **GetGlobalSettingsOutput, value interface{}) error {
11980	if v == nil {
11981		return fmt.Errorf("unexpected nil of type %T", v)
11982	}
11983	if value == nil {
11984		return nil
11985	}
11986
11987	shape, ok := value.(map[string]interface{})
11988	if !ok {
11989		return fmt.Errorf("unexpected JSON type %v", value)
11990	}
11991
11992	var sv *GetGlobalSettingsOutput
11993	if *v == nil {
11994		sv = &GetGlobalSettingsOutput{}
11995	} else {
11996		sv = *v
11997	}
11998
11999	for key, value := range shape {
12000		switch key {
12001		case "BusinessCalling":
12002			if err := awsRestjson1_deserializeDocumentBusinessCallingSettings(&sv.BusinessCalling, value); err != nil {
12003				return err
12004			}
12005
12006		case "VoiceConnector":
12007			if err := awsRestjson1_deserializeDocumentVoiceConnectorSettings(&sv.VoiceConnector, value); err != nil {
12008				return err
12009			}
12010
12011		default:
12012			_, _ = key, value
12013
12014		}
12015	}
12016	*v = sv
12017	return nil
12018}
12019
12020type awsRestjson1_deserializeOpGetMeeting struct {
12021}
12022
12023func (*awsRestjson1_deserializeOpGetMeeting) ID() string {
12024	return "OperationDeserializer"
12025}
12026
12027func (m *awsRestjson1_deserializeOpGetMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12028	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12029) {
12030	out, metadata, err = next.HandleDeserialize(ctx, in)
12031	if err != nil {
12032		return out, metadata, err
12033	}
12034
12035	response, ok := out.RawResponse.(*smithyhttp.Response)
12036	if !ok {
12037		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12038	}
12039
12040	if response.StatusCode < 200 || response.StatusCode >= 300 {
12041		return out, metadata, awsRestjson1_deserializeOpErrorGetMeeting(response, &metadata)
12042	}
12043	output := &GetMeetingOutput{}
12044	out.Result = output
12045
12046	var buff [1024]byte
12047	ringBuffer := smithyio.NewRingBuffer(buff[:])
12048
12049	body := io.TeeReader(response.Body, ringBuffer)
12050
12051	decoder := json.NewDecoder(body)
12052	decoder.UseNumber()
12053	var shape interface{}
12054	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12055		var snapshot bytes.Buffer
12056		io.Copy(&snapshot, ringBuffer)
12057		err = &smithy.DeserializationError{
12058			Err:      fmt.Errorf("failed to decode response body, %w", err),
12059			Snapshot: snapshot.Bytes(),
12060		}
12061		return out, metadata, err
12062	}
12063
12064	err = awsRestjson1_deserializeOpDocumentGetMeetingOutput(&output, shape)
12065	if err != nil {
12066		var snapshot bytes.Buffer
12067		io.Copy(&snapshot, ringBuffer)
12068		return out, metadata, &smithy.DeserializationError{
12069			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12070			Snapshot: snapshot.Bytes(),
12071		}
12072	}
12073
12074	return out, metadata, err
12075}
12076
12077func awsRestjson1_deserializeOpErrorGetMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12078	var errorBuffer bytes.Buffer
12079	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12080		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12081	}
12082	errorBody := bytes.NewReader(errorBuffer.Bytes())
12083
12084	errorCode := "UnknownError"
12085	errorMessage := errorCode
12086
12087	code := response.Header.Get("X-Amzn-ErrorType")
12088	if len(code) != 0 {
12089		errorCode = restjson.SanitizeErrorCode(code)
12090	}
12091
12092	var buff [1024]byte
12093	ringBuffer := smithyio.NewRingBuffer(buff[:])
12094
12095	body := io.TeeReader(errorBody, ringBuffer)
12096	decoder := json.NewDecoder(body)
12097	decoder.UseNumber()
12098	code, message, err := restjson.GetErrorInfo(decoder)
12099	if err != nil {
12100		var snapshot bytes.Buffer
12101		io.Copy(&snapshot, ringBuffer)
12102		err = &smithy.DeserializationError{
12103			Err:      fmt.Errorf("failed to decode response body, %w", err),
12104			Snapshot: snapshot.Bytes(),
12105		}
12106		return err
12107	}
12108
12109	errorBody.Seek(0, io.SeekStart)
12110	if len(code) != 0 {
12111		errorCode = restjson.SanitizeErrorCode(code)
12112	}
12113	if len(message) != 0 {
12114		errorMessage = message
12115	}
12116
12117	switch {
12118	case strings.EqualFold("BadRequestException", errorCode):
12119		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12120
12121	case strings.EqualFold("ForbiddenException", errorCode):
12122		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12123
12124	case strings.EqualFold("NotFoundException", errorCode):
12125		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12126
12127	case strings.EqualFold("ServiceFailureException", errorCode):
12128		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12129
12130	case strings.EqualFold("ServiceUnavailableException", errorCode):
12131		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12132
12133	case strings.EqualFold("ThrottledClientException", errorCode):
12134		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12135
12136	case strings.EqualFold("UnauthorizedClientException", errorCode):
12137		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12138
12139	default:
12140		genericError := &smithy.GenericAPIError{
12141			Code:    errorCode,
12142			Message: errorMessage,
12143		}
12144		return genericError
12145
12146	}
12147}
12148
12149func awsRestjson1_deserializeOpDocumentGetMeetingOutput(v **GetMeetingOutput, value interface{}) error {
12150	if v == nil {
12151		return fmt.Errorf("unexpected nil of type %T", v)
12152	}
12153	if value == nil {
12154		return nil
12155	}
12156
12157	shape, ok := value.(map[string]interface{})
12158	if !ok {
12159		return fmt.Errorf("unexpected JSON type %v", value)
12160	}
12161
12162	var sv *GetMeetingOutput
12163	if *v == nil {
12164		sv = &GetMeetingOutput{}
12165	} else {
12166		sv = *v
12167	}
12168
12169	for key, value := range shape {
12170		switch key {
12171		case "Meeting":
12172			if err := awsRestjson1_deserializeDocumentMeeting(&sv.Meeting, value); err != nil {
12173				return err
12174			}
12175
12176		default:
12177			_, _ = key, value
12178
12179		}
12180	}
12181	*v = sv
12182	return nil
12183}
12184
12185type awsRestjson1_deserializeOpGetMessagingSessionEndpoint struct {
12186}
12187
12188func (*awsRestjson1_deserializeOpGetMessagingSessionEndpoint) ID() string {
12189	return "OperationDeserializer"
12190}
12191
12192func (m *awsRestjson1_deserializeOpGetMessagingSessionEndpoint) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12193	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12194) {
12195	out, metadata, err = next.HandleDeserialize(ctx, in)
12196	if err != nil {
12197		return out, metadata, err
12198	}
12199
12200	response, ok := out.RawResponse.(*smithyhttp.Response)
12201	if !ok {
12202		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12203	}
12204
12205	if response.StatusCode < 200 || response.StatusCode >= 300 {
12206		return out, metadata, awsRestjson1_deserializeOpErrorGetMessagingSessionEndpoint(response, &metadata)
12207	}
12208	output := &GetMessagingSessionEndpointOutput{}
12209	out.Result = output
12210
12211	var buff [1024]byte
12212	ringBuffer := smithyio.NewRingBuffer(buff[:])
12213
12214	body := io.TeeReader(response.Body, ringBuffer)
12215
12216	decoder := json.NewDecoder(body)
12217	decoder.UseNumber()
12218	var shape interface{}
12219	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12220		var snapshot bytes.Buffer
12221		io.Copy(&snapshot, ringBuffer)
12222		err = &smithy.DeserializationError{
12223			Err:      fmt.Errorf("failed to decode response body, %w", err),
12224			Snapshot: snapshot.Bytes(),
12225		}
12226		return out, metadata, err
12227	}
12228
12229	err = awsRestjson1_deserializeOpDocumentGetMessagingSessionEndpointOutput(&output, shape)
12230	if err != nil {
12231		var snapshot bytes.Buffer
12232		io.Copy(&snapshot, ringBuffer)
12233		return out, metadata, &smithy.DeserializationError{
12234			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12235			Snapshot: snapshot.Bytes(),
12236		}
12237	}
12238
12239	return out, metadata, err
12240}
12241
12242func awsRestjson1_deserializeOpErrorGetMessagingSessionEndpoint(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12243	var errorBuffer bytes.Buffer
12244	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12245		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12246	}
12247	errorBody := bytes.NewReader(errorBuffer.Bytes())
12248
12249	errorCode := "UnknownError"
12250	errorMessage := errorCode
12251
12252	code := response.Header.Get("X-Amzn-ErrorType")
12253	if len(code) != 0 {
12254		errorCode = restjson.SanitizeErrorCode(code)
12255	}
12256
12257	var buff [1024]byte
12258	ringBuffer := smithyio.NewRingBuffer(buff[:])
12259
12260	body := io.TeeReader(errorBody, ringBuffer)
12261	decoder := json.NewDecoder(body)
12262	decoder.UseNumber()
12263	code, message, err := restjson.GetErrorInfo(decoder)
12264	if err != nil {
12265		var snapshot bytes.Buffer
12266		io.Copy(&snapshot, ringBuffer)
12267		err = &smithy.DeserializationError{
12268			Err:      fmt.Errorf("failed to decode response body, %w", err),
12269			Snapshot: snapshot.Bytes(),
12270		}
12271		return err
12272	}
12273
12274	errorBody.Seek(0, io.SeekStart)
12275	if len(code) != 0 {
12276		errorCode = restjson.SanitizeErrorCode(code)
12277	}
12278	if len(message) != 0 {
12279		errorMessage = message
12280	}
12281
12282	switch {
12283	case strings.EqualFold("ForbiddenException", errorCode):
12284		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12285
12286	case strings.EqualFold("ServiceFailureException", errorCode):
12287		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12288
12289	case strings.EqualFold("ServiceUnavailableException", errorCode):
12290		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12291
12292	case strings.EqualFold("ThrottledClientException", errorCode):
12293		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12294
12295	case strings.EqualFold("UnauthorizedClientException", errorCode):
12296		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12297
12298	default:
12299		genericError := &smithy.GenericAPIError{
12300			Code:    errorCode,
12301			Message: errorMessage,
12302		}
12303		return genericError
12304
12305	}
12306}
12307
12308func awsRestjson1_deserializeOpDocumentGetMessagingSessionEndpointOutput(v **GetMessagingSessionEndpointOutput, value interface{}) error {
12309	if v == nil {
12310		return fmt.Errorf("unexpected nil of type %T", v)
12311	}
12312	if value == nil {
12313		return nil
12314	}
12315
12316	shape, ok := value.(map[string]interface{})
12317	if !ok {
12318		return fmt.Errorf("unexpected JSON type %v", value)
12319	}
12320
12321	var sv *GetMessagingSessionEndpointOutput
12322	if *v == nil {
12323		sv = &GetMessagingSessionEndpointOutput{}
12324	} else {
12325		sv = *v
12326	}
12327
12328	for key, value := range shape {
12329		switch key {
12330		case "Endpoint":
12331			if err := awsRestjson1_deserializeDocumentMessagingSessionEndpoint(&sv.Endpoint, value); err != nil {
12332				return err
12333			}
12334
12335		default:
12336			_, _ = key, value
12337
12338		}
12339	}
12340	*v = sv
12341	return nil
12342}
12343
12344type awsRestjson1_deserializeOpGetPhoneNumber struct {
12345}
12346
12347func (*awsRestjson1_deserializeOpGetPhoneNumber) ID() string {
12348	return "OperationDeserializer"
12349}
12350
12351func (m *awsRestjson1_deserializeOpGetPhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12352	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12353) {
12354	out, metadata, err = next.HandleDeserialize(ctx, in)
12355	if err != nil {
12356		return out, metadata, err
12357	}
12358
12359	response, ok := out.RawResponse.(*smithyhttp.Response)
12360	if !ok {
12361		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12362	}
12363
12364	if response.StatusCode < 200 || response.StatusCode >= 300 {
12365		return out, metadata, awsRestjson1_deserializeOpErrorGetPhoneNumber(response, &metadata)
12366	}
12367	output := &GetPhoneNumberOutput{}
12368	out.Result = output
12369
12370	var buff [1024]byte
12371	ringBuffer := smithyio.NewRingBuffer(buff[:])
12372
12373	body := io.TeeReader(response.Body, ringBuffer)
12374
12375	decoder := json.NewDecoder(body)
12376	decoder.UseNumber()
12377	var shape interface{}
12378	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12379		var snapshot bytes.Buffer
12380		io.Copy(&snapshot, ringBuffer)
12381		err = &smithy.DeserializationError{
12382			Err:      fmt.Errorf("failed to decode response body, %w", err),
12383			Snapshot: snapshot.Bytes(),
12384		}
12385		return out, metadata, err
12386	}
12387
12388	err = awsRestjson1_deserializeOpDocumentGetPhoneNumberOutput(&output, shape)
12389	if err != nil {
12390		var snapshot bytes.Buffer
12391		io.Copy(&snapshot, ringBuffer)
12392		return out, metadata, &smithy.DeserializationError{
12393			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12394			Snapshot: snapshot.Bytes(),
12395		}
12396	}
12397
12398	return out, metadata, err
12399}
12400
12401func awsRestjson1_deserializeOpErrorGetPhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12402	var errorBuffer bytes.Buffer
12403	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12404		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12405	}
12406	errorBody := bytes.NewReader(errorBuffer.Bytes())
12407
12408	errorCode := "UnknownError"
12409	errorMessage := errorCode
12410
12411	code := response.Header.Get("X-Amzn-ErrorType")
12412	if len(code) != 0 {
12413		errorCode = restjson.SanitizeErrorCode(code)
12414	}
12415
12416	var buff [1024]byte
12417	ringBuffer := smithyio.NewRingBuffer(buff[:])
12418
12419	body := io.TeeReader(errorBody, ringBuffer)
12420	decoder := json.NewDecoder(body)
12421	decoder.UseNumber()
12422	code, message, err := restjson.GetErrorInfo(decoder)
12423	if err != nil {
12424		var snapshot bytes.Buffer
12425		io.Copy(&snapshot, ringBuffer)
12426		err = &smithy.DeserializationError{
12427			Err:      fmt.Errorf("failed to decode response body, %w", err),
12428			Snapshot: snapshot.Bytes(),
12429		}
12430		return err
12431	}
12432
12433	errorBody.Seek(0, io.SeekStart)
12434	if len(code) != 0 {
12435		errorCode = restjson.SanitizeErrorCode(code)
12436	}
12437	if len(message) != 0 {
12438		errorMessage = message
12439	}
12440
12441	switch {
12442	case strings.EqualFold("BadRequestException", errorCode):
12443		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12444
12445	case strings.EqualFold("ForbiddenException", errorCode):
12446		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12447
12448	case strings.EqualFold("NotFoundException", errorCode):
12449		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12450
12451	case strings.EqualFold("ServiceFailureException", errorCode):
12452		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12453
12454	case strings.EqualFold("ServiceUnavailableException", errorCode):
12455		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12456
12457	case strings.EqualFold("ThrottledClientException", errorCode):
12458		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12459
12460	case strings.EqualFold("UnauthorizedClientException", errorCode):
12461		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12462
12463	default:
12464		genericError := &smithy.GenericAPIError{
12465			Code:    errorCode,
12466			Message: errorMessage,
12467		}
12468		return genericError
12469
12470	}
12471}
12472
12473func awsRestjson1_deserializeOpDocumentGetPhoneNumberOutput(v **GetPhoneNumberOutput, value interface{}) error {
12474	if v == nil {
12475		return fmt.Errorf("unexpected nil of type %T", v)
12476	}
12477	if value == nil {
12478		return nil
12479	}
12480
12481	shape, ok := value.(map[string]interface{})
12482	if !ok {
12483		return fmt.Errorf("unexpected JSON type %v", value)
12484	}
12485
12486	var sv *GetPhoneNumberOutput
12487	if *v == nil {
12488		sv = &GetPhoneNumberOutput{}
12489	} else {
12490		sv = *v
12491	}
12492
12493	for key, value := range shape {
12494		switch key {
12495		case "PhoneNumber":
12496			if err := awsRestjson1_deserializeDocumentPhoneNumber(&sv.PhoneNumber, value); err != nil {
12497				return err
12498			}
12499
12500		default:
12501			_, _ = key, value
12502
12503		}
12504	}
12505	*v = sv
12506	return nil
12507}
12508
12509type awsRestjson1_deserializeOpGetPhoneNumberOrder struct {
12510}
12511
12512func (*awsRestjson1_deserializeOpGetPhoneNumberOrder) ID() string {
12513	return "OperationDeserializer"
12514}
12515
12516func (m *awsRestjson1_deserializeOpGetPhoneNumberOrder) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12517	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12518) {
12519	out, metadata, err = next.HandleDeserialize(ctx, in)
12520	if err != nil {
12521		return out, metadata, err
12522	}
12523
12524	response, ok := out.RawResponse.(*smithyhttp.Response)
12525	if !ok {
12526		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12527	}
12528
12529	if response.StatusCode < 200 || response.StatusCode >= 300 {
12530		return out, metadata, awsRestjson1_deserializeOpErrorGetPhoneNumberOrder(response, &metadata)
12531	}
12532	output := &GetPhoneNumberOrderOutput{}
12533	out.Result = output
12534
12535	var buff [1024]byte
12536	ringBuffer := smithyio.NewRingBuffer(buff[:])
12537
12538	body := io.TeeReader(response.Body, ringBuffer)
12539
12540	decoder := json.NewDecoder(body)
12541	decoder.UseNumber()
12542	var shape interface{}
12543	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12544		var snapshot bytes.Buffer
12545		io.Copy(&snapshot, ringBuffer)
12546		err = &smithy.DeserializationError{
12547			Err:      fmt.Errorf("failed to decode response body, %w", err),
12548			Snapshot: snapshot.Bytes(),
12549		}
12550		return out, metadata, err
12551	}
12552
12553	err = awsRestjson1_deserializeOpDocumentGetPhoneNumberOrderOutput(&output, shape)
12554	if err != nil {
12555		var snapshot bytes.Buffer
12556		io.Copy(&snapshot, ringBuffer)
12557		return out, metadata, &smithy.DeserializationError{
12558			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12559			Snapshot: snapshot.Bytes(),
12560		}
12561	}
12562
12563	return out, metadata, err
12564}
12565
12566func awsRestjson1_deserializeOpErrorGetPhoneNumberOrder(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12567	var errorBuffer bytes.Buffer
12568	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12569		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12570	}
12571	errorBody := bytes.NewReader(errorBuffer.Bytes())
12572
12573	errorCode := "UnknownError"
12574	errorMessage := errorCode
12575
12576	code := response.Header.Get("X-Amzn-ErrorType")
12577	if len(code) != 0 {
12578		errorCode = restjson.SanitizeErrorCode(code)
12579	}
12580
12581	var buff [1024]byte
12582	ringBuffer := smithyio.NewRingBuffer(buff[:])
12583
12584	body := io.TeeReader(errorBody, ringBuffer)
12585	decoder := json.NewDecoder(body)
12586	decoder.UseNumber()
12587	code, message, err := restjson.GetErrorInfo(decoder)
12588	if err != nil {
12589		var snapshot bytes.Buffer
12590		io.Copy(&snapshot, ringBuffer)
12591		err = &smithy.DeserializationError{
12592			Err:      fmt.Errorf("failed to decode response body, %w", err),
12593			Snapshot: snapshot.Bytes(),
12594		}
12595		return err
12596	}
12597
12598	errorBody.Seek(0, io.SeekStart)
12599	if len(code) != 0 {
12600		errorCode = restjson.SanitizeErrorCode(code)
12601	}
12602	if len(message) != 0 {
12603		errorMessage = message
12604	}
12605
12606	switch {
12607	case strings.EqualFold("BadRequestException", errorCode):
12608		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12609
12610	case strings.EqualFold("ForbiddenException", errorCode):
12611		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12612
12613	case strings.EqualFold("NotFoundException", errorCode):
12614		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12615
12616	case strings.EqualFold("ServiceFailureException", errorCode):
12617		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12618
12619	case strings.EqualFold("ServiceUnavailableException", errorCode):
12620		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12621
12622	case strings.EqualFold("ThrottledClientException", errorCode):
12623		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12624
12625	case strings.EqualFold("UnauthorizedClientException", errorCode):
12626		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12627
12628	default:
12629		genericError := &smithy.GenericAPIError{
12630			Code:    errorCode,
12631			Message: errorMessage,
12632		}
12633		return genericError
12634
12635	}
12636}
12637
12638func awsRestjson1_deserializeOpDocumentGetPhoneNumberOrderOutput(v **GetPhoneNumberOrderOutput, value interface{}) error {
12639	if v == nil {
12640		return fmt.Errorf("unexpected nil of type %T", v)
12641	}
12642	if value == nil {
12643		return nil
12644	}
12645
12646	shape, ok := value.(map[string]interface{})
12647	if !ok {
12648		return fmt.Errorf("unexpected JSON type %v", value)
12649	}
12650
12651	var sv *GetPhoneNumberOrderOutput
12652	if *v == nil {
12653		sv = &GetPhoneNumberOrderOutput{}
12654	} else {
12655		sv = *v
12656	}
12657
12658	for key, value := range shape {
12659		switch key {
12660		case "PhoneNumberOrder":
12661			if err := awsRestjson1_deserializeDocumentPhoneNumberOrder(&sv.PhoneNumberOrder, value); err != nil {
12662				return err
12663			}
12664
12665		default:
12666			_, _ = key, value
12667
12668		}
12669	}
12670	*v = sv
12671	return nil
12672}
12673
12674type awsRestjson1_deserializeOpGetPhoneNumberSettings struct {
12675}
12676
12677func (*awsRestjson1_deserializeOpGetPhoneNumberSettings) ID() string {
12678	return "OperationDeserializer"
12679}
12680
12681func (m *awsRestjson1_deserializeOpGetPhoneNumberSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12682	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12683) {
12684	out, metadata, err = next.HandleDeserialize(ctx, in)
12685	if err != nil {
12686		return out, metadata, err
12687	}
12688
12689	response, ok := out.RawResponse.(*smithyhttp.Response)
12690	if !ok {
12691		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12692	}
12693
12694	if response.StatusCode < 200 || response.StatusCode >= 300 {
12695		return out, metadata, awsRestjson1_deserializeOpErrorGetPhoneNumberSettings(response, &metadata)
12696	}
12697	output := &GetPhoneNumberSettingsOutput{}
12698	out.Result = output
12699
12700	var buff [1024]byte
12701	ringBuffer := smithyio.NewRingBuffer(buff[:])
12702
12703	body := io.TeeReader(response.Body, ringBuffer)
12704
12705	decoder := json.NewDecoder(body)
12706	decoder.UseNumber()
12707	var shape interface{}
12708	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12709		var snapshot bytes.Buffer
12710		io.Copy(&snapshot, ringBuffer)
12711		err = &smithy.DeserializationError{
12712			Err:      fmt.Errorf("failed to decode response body, %w", err),
12713			Snapshot: snapshot.Bytes(),
12714		}
12715		return out, metadata, err
12716	}
12717
12718	err = awsRestjson1_deserializeOpDocumentGetPhoneNumberSettingsOutput(&output, shape)
12719	if err != nil {
12720		var snapshot bytes.Buffer
12721		io.Copy(&snapshot, ringBuffer)
12722		return out, metadata, &smithy.DeserializationError{
12723			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12724			Snapshot: snapshot.Bytes(),
12725		}
12726	}
12727
12728	return out, metadata, err
12729}
12730
12731func awsRestjson1_deserializeOpErrorGetPhoneNumberSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12732	var errorBuffer bytes.Buffer
12733	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12734		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12735	}
12736	errorBody := bytes.NewReader(errorBuffer.Bytes())
12737
12738	errorCode := "UnknownError"
12739	errorMessage := errorCode
12740
12741	code := response.Header.Get("X-Amzn-ErrorType")
12742	if len(code) != 0 {
12743		errorCode = restjson.SanitizeErrorCode(code)
12744	}
12745
12746	var buff [1024]byte
12747	ringBuffer := smithyio.NewRingBuffer(buff[:])
12748
12749	body := io.TeeReader(errorBody, ringBuffer)
12750	decoder := json.NewDecoder(body)
12751	decoder.UseNumber()
12752	code, message, err := restjson.GetErrorInfo(decoder)
12753	if err != nil {
12754		var snapshot bytes.Buffer
12755		io.Copy(&snapshot, ringBuffer)
12756		err = &smithy.DeserializationError{
12757			Err:      fmt.Errorf("failed to decode response body, %w", err),
12758			Snapshot: snapshot.Bytes(),
12759		}
12760		return err
12761	}
12762
12763	errorBody.Seek(0, io.SeekStart)
12764	if len(code) != 0 {
12765		errorCode = restjson.SanitizeErrorCode(code)
12766	}
12767	if len(message) != 0 {
12768		errorMessage = message
12769	}
12770
12771	switch {
12772	case strings.EqualFold("BadRequestException", errorCode):
12773		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12774
12775	case strings.EqualFold("ForbiddenException", errorCode):
12776		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12777
12778	case strings.EqualFold("ServiceFailureException", errorCode):
12779		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12780
12781	case strings.EqualFold("ServiceUnavailableException", errorCode):
12782		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12783
12784	case strings.EqualFold("ThrottledClientException", errorCode):
12785		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12786
12787	case strings.EqualFold("UnauthorizedClientException", errorCode):
12788		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12789
12790	default:
12791		genericError := &smithy.GenericAPIError{
12792			Code:    errorCode,
12793			Message: errorMessage,
12794		}
12795		return genericError
12796
12797	}
12798}
12799
12800func awsRestjson1_deserializeOpDocumentGetPhoneNumberSettingsOutput(v **GetPhoneNumberSettingsOutput, value interface{}) error {
12801	if v == nil {
12802		return fmt.Errorf("unexpected nil of type %T", v)
12803	}
12804	if value == nil {
12805		return nil
12806	}
12807
12808	shape, ok := value.(map[string]interface{})
12809	if !ok {
12810		return fmt.Errorf("unexpected JSON type %v", value)
12811	}
12812
12813	var sv *GetPhoneNumberSettingsOutput
12814	if *v == nil {
12815		sv = &GetPhoneNumberSettingsOutput{}
12816	} else {
12817		sv = *v
12818	}
12819
12820	for key, value := range shape {
12821		switch key {
12822		case "CallingName":
12823			if value != nil {
12824				jtv, ok := value.(string)
12825				if !ok {
12826					return fmt.Errorf("expected CallingName to be of type string, got %T instead", value)
12827				}
12828				sv.CallingName = ptr.String(jtv)
12829			}
12830
12831		case "CallingNameUpdatedTimestamp":
12832			if value != nil {
12833				jtv, ok := value.(string)
12834				if !ok {
12835					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
12836				}
12837				t, err := smithytime.ParseDateTime(jtv)
12838				if err != nil {
12839					return err
12840				}
12841				sv.CallingNameUpdatedTimestamp = ptr.Time(t)
12842			}
12843
12844		default:
12845			_, _ = key, value
12846
12847		}
12848	}
12849	*v = sv
12850	return nil
12851}
12852
12853type awsRestjson1_deserializeOpGetProxySession struct {
12854}
12855
12856func (*awsRestjson1_deserializeOpGetProxySession) ID() string {
12857	return "OperationDeserializer"
12858}
12859
12860func (m *awsRestjson1_deserializeOpGetProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
12861	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
12862) {
12863	out, metadata, err = next.HandleDeserialize(ctx, in)
12864	if err != nil {
12865		return out, metadata, err
12866	}
12867
12868	response, ok := out.RawResponse.(*smithyhttp.Response)
12869	if !ok {
12870		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
12871	}
12872
12873	if response.StatusCode < 200 || response.StatusCode >= 300 {
12874		return out, metadata, awsRestjson1_deserializeOpErrorGetProxySession(response, &metadata)
12875	}
12876	output := &GetProxySessionOutput{}
12877	out.Result = output
12878
12879	var buff [1024]byte
12880	ringBuffer := smithyio.NewRingBuffer(buff[:])
12881
12882	body := io.TeeReader(response.Body, ringBuffer)
12883
12884	decoder := json.NewDecoder(body)
12885	decoder.UseNumber()
12886	var shape interface{}
12887	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
12888		var snapshot bytes.Buffer
12889		io.Copy(&snapshot, ringBuffer)
12890		err = &smithy.DeserializationError{
12891			Err:      fmt.Errorf("failed to decode response body, %w", err),
12892			Snapshot: snapshot.Bytes(),
12893		}
12894		return out, metadata, err
12895	}
12896
12897	err = awsRestjson1_deserializeOpDocumentGetProxySessionOutput(&output, shape)
12898	if err != nil {
12899		var snapshot bytes.Buffer
12900		io.Copy(&snapshot, ringBuffer)
12901		return out, metadata, &smithy.DeserializationError{
12902			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
12903			Snapshot: snapshot.Bytes(),
12904		}
12905	}
12906
12907	return out, metadata, err
12908}
12909
12910func awsRestjson1_deserializeOpErrorGetProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
12911	var errorBuffer bytes.Buffer
12912	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
12913		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
12914	}
12915	errorBody := bytes.NewReader(errorBuffer.Bytes())
12916
12917	errorCode := "UnknownError"
12918	errorMessage := errorCode
12919
12920	code := response.Header.Get("X-Amzn-ErrorType")
12921	if len(code) != 0 {
12922		errorCode = restjson.SanitizeErrorCode(code)
12923	}
12924
12925	var buff [1024]byte
12926	ringBuffer := smithyio.NewRingBuffer(buff[:])
12927
12928	body := io.TeeReader(errorBody, ringBuffer)
12929	decoder := json.NewDecoder(body)
12930	decoder.UseNumber()
12931	code, message, err := restjson.GetErrorInfo(decoder)
12932	if err != nil {
12933		var snapshot bytes.Buffer
12934		io.Copy(&snapshot, ringBuffer)
12935		err = &smithy.DeserializationError{
12936			Err:      fmt.Errorf("failed to decode response body, %w", err),
12937			Snapshot: snapshot.Bytes(),
12938		}
12939		return err
12940	}
12941
12942	errorBody.Seek(0, io.SeekStart)
12943	if len(code) != 0 {
12944		errorCode = restjson.SanitizeErrorCode(code)
12945	}
12946	if len(message) != 0 {
12947		errorMessage = message
12948	}
12949
12950	switch {
12951	case strings.EqualFold("BadRequestException", errorCode):
12952		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
12953
12954	case strings.EqualFold("ForbiddenException", errorCode):
12955		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
12956
12957	case strings.EqualFold("NotFoundException", errorCode):
12958		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
12959
12960	case strings.EqualFold("ServiceFailureException", errorCode):
12961		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
12962
12963	case strings.EqualFold("ServiceUnavailableException", errorCode):
12964		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
12965
12966	case strings.EqualFold("ThrottledClientException", errorCode):
12967		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
12968
12969	case strings.EqualFold("UnauthorizedClientException", errorCode):
12970		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
12971
12972	default:
12973		genericError := &smithy.GenericAPIError{
12974			Code:    errorCode,
12975			Message: errorMessage,
12976		}
12977		return genericError
12978
12979	}
12980}
12981
12982func awsRestjson1_deserializeOpDocumentGetProxySessionOutput(v **GetProxySessionOutput, value interface{}) error {
12983	if v == nil {
12984		return fmt.Errorf("unexpected nil of type %T", v)
12985	}
12986	if value == nil {
12987		return nil
12988	}
12989
12990	shape, ok := value.(map[string]interface{})
12991	if !ok {
12992		return fmt.Errorf("unexpected JSON type %v", value)
12993	}
12994
12995	var sv *GetProxySessionOutput
12996	if *v == nil {
12997		sv = &GetProxySessionOutput{}
12998	} else {
12999		sv = *v
13000	}
13001
13002	for key, value := range shape {
13003		switch key {
13004		case "ProxySession":
13005			if err := awsRestjson1_deserializeDocumentProxySession(&sv.ProxySession, value); err != nil {
13006				return err
13007			}
13008
13009		default:
13010			_, _ = key, value
13011
13012		}
13013	}
13014	*v = sv
13015	return nil
13016}
13017
13018type awsRestjson1_deserializeOpGetRetentionSettings struct {
13019}
13020
13021func (*awsRestjson1_deserializeOpGetRetentionSettings) ID() string {
13022	return "OperationDeserializer"
13023}
13024
13025func (m *awsRestjson1_deserializeOpGetRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13026	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13027) {
13028	out, metadata, err = next.HandleDeserialize(ctx, in)
13029	if err != nil {
13030		return out, metadata, err
13031	}
13032
13033	response, ok := out.RawResponse.(*smithyhttp.Response)
13034	if !ok {
13035		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13036	}
13037
13038	if response.StatusCode < 200 || response.StatusCode >= 300 {
13039		return out, metadata, awsRestjson1_deserializeOpErrorGetRetentionSettings(response, &metadata)
13040	}
13041	output := &GetRetentionSettingsOutput{}
13042	out.Result = output
13043
13044	var buff [1024]byte
13045	ringBuffer := smithyio.NewRingBuffer(buff[:])
13046
13047	body := io.TeeReader(response.Body, ringBuffer)
13048
13049	decoder := json.NewDecoder(body)
13050	decoder.UseNumber()
13051	var shape interface{}
13052	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13053		var snapshot bytes.Buffer
13054		io.Copy(&snapshot, ringBuffer)
13055		err = &smithy.DeserializationError{
13056			Err:      fmt.Errorf("failed to decode response body, %w", err),
13057			Snapshot: snapshot.Bytes(),
13058		}
13059		return out, metadata, err
13060	}
13061
13062	err = awsRestjson1_deserializeOpDocumentGetRetentionSettingsOutput(&output, shape)
13063	if err != nil {
13064		var snapshot bytes.Buffer
13065		io.Copy(&snapshot, ringBuffer)
13066		return out, metadata, &smithy.DeserializationError{
13067			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13068			Snapshot: snapshot.Bytes(),
13069		}
13070	}
13071
13072	return out, metadata, err
13073}
13074
13075func awsRestjson1_deserializeOpErrorGetRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13076	var errorBuffer bytes.Buffer
13077	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13078		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13079	}
13080	errorBody := bytes.NewReader(errorBuffer.Bytes())
13081
13082	errorCode := "UnknownError"
13083	errorMessage := errorCode
13084
13085	code := response.Header.Get("X-Amzn-ErrorType")
13086	if len(code) != 0 {
13087		errorCode = restjson.SanitizeErrorCode(code)
13088	}
13089
13090	var buff [1024]byte
13091	ringBuffer := smithyio.NewRingBuffer(buff[:])
13092
13093	body := io.TeeReader(errorBody, ringBuffer)
13094	decoder := json.NewDecoder(body)
13095	decoder.UseNumber()
13096	code, message, err := restjson.GetErrorInfo(decoder)
13097	if err != nil {
13098		var snapshot bytes.Buffer
13099		io.Copy(&snapshot, ringBuffer)
13100		err = &smithy.DeserializationError{
13101			Err:      fmt.Errorf("failed to decode response body, %w", err),
13102			Snapshot: snapshot.Bytes(),
13103		}
13104		return err
13105	}
13106
13107	errorBody.Seek(0, io.SeekStart)
13108	if len(code) != 0 {
13109		errorCode = restjson.SanitizeErrorCode(code)
13110	}
13111	if len(message) != 0 {
13112		errorMessage = message
13113	}
13114
13115	switch {
13116	case strings.EqualFold("BadRequestException", errorCode):
13117		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13118
13119	case strings.EqualFold("ForbiddenException", errorCode):
13120		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13121
13122	case strings.EqualFold("NotFoundException", errorCode):
13123		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13124
13125	case strings.EqualFold("ServiceFailureException", errorCode):
13126		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13127
13128	case strings.EqualFold("ServiceUnavailableException", errorCode):
13129		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13130
13131	case strings.EqualFold("ThrottledClientException", errorCode):
13132		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13133
13134	case strings.EqualFold("UnauthorizedClientException", errorCode):
13135		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13136
13137	default:
13138		genericError := &smithy.GenericAPIError{
13139			Code:    errorCode,
13140			Message: errorMessage,
13141		}
13142		return genericError
13143
13144	}
13145}
13146
13147func awsRestjson1_deserializeOpDocumentGetRetentionSettingsOutput(v **GetRetentionSettingsOutput, value interface{}) error {
13148	if v == nil {
13149		return fmt.Errorf("unexpected nil of type %T", v)
13150	}
13151	if value == nil {
13152		return nil
13153	}
13154
13155	shape, ok := value.(map[string]interface{})
13156	if !ok {
13157		return fmt.Errorf("unexpected JSON type %v", value)
13158	}
13159
13160	var sv *GetRetentionSettingsOutput
13161	if *v == nil {
13162		sv = &GetRetentionSettingsOutput{}
13163	} else {
13164		sv = *v
13165	}
13166
13167	for key, value := range shape {
13168		switch key {
13169		case "InitiateDeletionTimestamp":
13170			if value != nil {
13171				jtv, ok := value.(string)
13172				if !ok {
13173					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
13174				}
13175				t, err := smithytime.ParseDateTime(jtv)
13176				if err != nil {
13177					return err
13178				}
13179				sv.InitiateDeletionTimestamp = ptr.Time(t)
13180			}
13181
13182		case "RetentionSettings":
13183			if err := awsRestjson1_deserializeDocumentRetentionSettings(&sv.RetentionSettings, value); err != nil {
13184				return err
13185			}
13186
13187		default:
13188			_, _ = key, value
13189
13190		}
13191	}
13192	*v = sv
13193	return nil
13194}
13195
13196type awsRestjson1_deserializeOpGetRoom struct {
13197}
13198
13199func (*awsRestjson1_deserializeOpGetRoom) ID() string {
13200	return "OperationDeserializer"
13201}
13202
13203func (m *awsRestjson1_deserializeOpGetRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13204	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13205) {
13206	out, metadata, err = next.HandleDeserialize(ctx, in)
13207	if err != nil {
13208		return out, metadata, err
13209	}
13210
13211	response, ok := out.RawResponse.(*smithyhttp.Response)
13212	if !ok {
13213		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13214	}
13215
13216	if response.StatusCode < 200 || response.StatusCode >= 300 {
13217		return out, metadata, awsRestjson1_deserializeOpErrorGetRoom(response, &metadata)
13218	}
13219	output := &GetRoomOutput{}
13220	out.Result = output
13221
13222	var buff [1024]byte
13223	ringBuffer := smithyio.NewRingBuffer(buff[:])
13224
13225	body := io.TeeReader(response.Body, ringBuffer)
13226
13227	decoder := json.NewDecoder(body)
13228	decoder.UseNumber()
13229	var shape interface{}
13230	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13231		var snapshot bytes.Buffer
13232		io.Copy(&snapshot, ringBuffer)
13233		err = &smithy.DeserializationError{
13234			Err:      fmt.Errorf("failed to decode response body, %w", err),
13235			Snapshot: snapshot.Bytes(),
13236		}
13237		return out, metadata, err
13238	}
13239
13240	err = awsRestjson1_deserializeOpDocumentGetRoomOutput(&output, shape)
13241	if err != nil {
13242		var snapshot bytes.Buffer
13243		io.Copy(&snapshot, ringBuffer)
13244		return out, metadata, &smithy.DeserializationError{
13245			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13246			Snapshot: snapshot.Bytes(),
13247		}
13248	}
13249
13250	return out, metadata, err
13251}
13252
13253func awsRestjson1_deserializeOpErrorGetRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13254	var errorBuffer bytes.Buffer
13255	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13256		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13257	}
13258	errorBody := bytes.NewReader(errorBuffer.Bytes())
13259
13260	errorCode := "UnknownError"
13261	errorMessage := errorCode
13262
13263	code := response.Header.Get("X-Amzn-ErrorType")
13264	if len(code) != 0 {
13265		errorCode = restjson.SanitizeErrorCode(code)
13266	}
13267
13268	var buff [1024]byte
13269	ringBuffer := smithyio.NewRingBuffer(buff[:])
13270
13271	body := io.TeeReader(errorBody, ringBuffer)
13272	decoder := json.NewDecoder(body)
13273	decoder.UseNumber()
13274	code, message, err := restjson.GetErrorInfo(decoder)
13275	if err != nil {
13276		var snapshot bytes.Buffer
13277		io.Copy(&snapshot, ringBuffer)
13278		err = &smithy.DeserializationError{
13279			Err:      fmt.Errorf("failed to decode response body, %w", err),
13280			Snapshot: snapshot.Bytes(),
13281		}
13282		return err
13283	}
13284
13285	errorBody.Seek(0, io.SeekStart)
13286	if len(code) != 0 {
13287		errorCode = restjson.SanitizeErrorCode(code)
13288	}
13289	if len(message) != 0 {
13290		errorMessage = message
13291	}
13292
13293	switch {
13294	case strings.EqualFold("BadRequestException", errorCode):
13295		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13296
13297	case strings.EqualFold("ForbiddenException", errorCode):
13298		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13299
13300	case strings.EqualFold("NotFoundException", errorCode):
13301		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13302
13303	case strings.EqualFold("ServiceFailureException", errorCode):
13304		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13305
13306	case strings.EqualFold("ServiceUnavailableException", errorCode):
13307		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13308
13309	case strings.EqualFold("ThrottledClientException", errorCode):
13310		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13311
13312	case strings.EqualFold("UnauthorizedClientException", errorCode):
13313		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13314
13315	default:
13316		genericError := &smithy.GenericAPIError{
13317			Code:    errorCode,
13318			Message: errorMessage,
13319		}
13320		return genericError
13321
13322	}
13323}
13324
13325func awsRestjson1_deserializeOpDocumentGetRoomOutput(v **GetRoomOutput, value interface{}) error {
13326	if v == nil {
13327		return fmt.Errorf("unexpected nil of type %T", v)
13328	}
13329	if value == nil {
13330		return nil
13331	}
13332
13333	shape, ok := value.(map[string]interface{})
13334	if !ok {
13335		return fmt.Errorf("unexpected JSON type %v", value)
13336	}
13337
13338	var sv *GetRoomOutput
13339	if *v == nil {
13340		sv = &GetRoomOutput{}
13341	} else {
13342		sv = *v
13343	}
13344
13345	for key, value := range shape {
13346		switch key {
13347		case "Room":
13348			if err := awsRestjson1_deserializeDocumentRoom(&sv.Room, value); err != nil {
13349				return err
13350			}
13351
13352		default:
13353			_, _ = key, value
13354
13355		}
13356	}
13357	*v = sv
13358	return nil
13359}
13360
13361type awsRestjson1_deserializeOpGetSipMediaApplication struct {
13362}
13363
13364func (*awsRestjson1_deserializeOpGetSipMediaApplication) ID() string {
13365	return "OperationDeserializer"
13366}
13367
13368func (m *awsRestjson1_deserializeOpGetSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13369	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13370) {
13371	out, metadata, err = next.HandleDeserialize(ctx, in)
13372	if err != nil {
13373		return out, metadata, err
13374	}
13375
13376	response, ok := out.RawResponse.(*smithyhttp.Response)
13377	if !ok {
13378		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13379	}
13380
13381	if response.StatusCode < 200 || response.StatusCode >= 300 {
13382		return out, metadata, awsRestjson1_deserializeOpErrorGetSipMediaApplication(response, &metadata)
13383	}
13384	output := &GetSipMediaApplicationOutput{}
13385	out.Result = output
13386
13387	var buff [1024]byte
13388	ringBuffer := smithyio.NewRingBuffer(buff[:])
13389
13390	body := io.TeeReader(response.Body, ringBuffer)
13391
13392	decoder := json.NewDecoder(body)
13393	decoder.UseNumber()
13394	var shape interface{}
13395	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13396		var snapshot bytes.Buffer
13397		io.Copy(&snapshot, ringBuffer)
13398		err = &smithy.DeserializationError{
13399			Err:      fmt.Errorf("failed to decode response body, %w", err),
13400			Snapshot: snapshot.Bytes(),
13401		}
13402		return out, metadata, err
13403	}
13404
13405	err = awsRestjson1_deserializeOpDocumentGetSipMediaApplicationOutput(&output, shape)
13406	if err != nil {
13407		var snapshot bytes.Buffer
13408		io.Copy(&snapshot, ringBuffer)
13409		return out, metadata, &smithy.DeserializationError{
13410			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13411			Snapshot: snapshot.Bytes(),
13412		}
13413	}
13414
13415	return out, metadata, err
13416}
13417
13418func awsRestjson1_deserializeOpErrorGetSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13419	var errorBuffer bytes.Buffer
13420	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13421		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13422	}
13423	errorBody := bytes.NewReader(errorBuffer.Bytes())
13424
13425	errorCode := "UnknownError"
13426	errorMessage := errorCode
13427
13428	code := response.Header.Get("X-Amzn-ErrorType")
13429	if len(code) != 0 {
13430		errorCode = restjson.SanitizeErrorCode(code)
13431	}
13432
13433	var buff [1024]byte
13434	ringBuffer := smithyio.NewRingBuffer(buff[:])
13435
13436	body := io.TeeReader(errorBody, ringBuffer)
13437	decoder := json.NewDecoder(body)
13438	decoder.UseNumber()
13439	code, message, err := restjson.GetErrorInfo(decoder)
13440	if err != nil {
13441		var snapshot bytes.Buffer
13442		io.Copy(&snapshot, ringBuffer)
13443		err = &smithy.DeserializationError{
13444			Err:      fmt.Errorf("failed to decode response body, %w", err),
13445			Snapshot: snapshot.Bytes(),
13446		}
13447		return err
13448	}
13449
13450	errorBody.Seek(0, io.SeekStart)
13451	if len(code) != 0 {
13452		errorCode = restjson.SanitizeErrorCode(code)
13453	}
13454	if len(message) != 0 {
13455		errorMessage = message
13456	}
13457
13458	switch {
13459	case strings.EqualFold("BadRequestException", errorCode):
13460		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13461
13462	case strings.EqualFold("ForbiddenException", errorCode):
13463		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13464
13465	case strings.EqualFold("NotFoundException", errorCode):
13466		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13467
13468	case strings.EqualFold("ServiceFailureException", errorCode):
13469		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13470
13471	case strings.EqualFold("ServiceUnavailableException", errorCode):
13472		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13473
13474	case strings.EqualFold("ThrottledClientException", errorCode):
13475		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13476
13477	case strings.EqualFold("UnauthorizedClientException", errorCode):
13478		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13479
13480	default:
13481		genericError := &smithy.GenericAPIError{
13482			Code:    errorCode,
13483			Message: errorMessage,
13484		}
13485		return genericError
13486
13487	}
13488}
13489
13490func awsRestjson1_deserializeOpDocumentGetSipMediaApplicationOutput(v **GetSipMediaApplicationOutput, value interface{}) error {
13491	if v == nil {
13492		return fmt.Errorf("unexpected nil of type %T", v)
13493	}
13494	if value == nil {
13495		return nil
13496	}
13497
13498	shape, ok := value.(map[string]interface{})
13499	if !ok {
13500		return fmt.Errorf("unexpected JSON type %v", value)
13501	}
13502
13503	var sv *GetSipMediaApplicationOutput
13504	if *v == nil {
13505		sv = &GetSipMediaApplicationOutput{}
13506	} else {
13507		sv = *v
13508	}
13509
13510	for key, value := range shape {
13511		switch key {
13512		case "SipMediaApplication":
13513			if err := awsRestjson1_deserializeDocumentSipMediaApplication(&sv.SipMediaApplication, value); err != nil {
13514				return err
13515			}
13516
13517		default:
13518			_, _ = key, value
13519
13520		}
13521	}
13522	*v = sv
13523	return nil
13524}
13525
13526type awsRestjson1_deserializeOpGetSipMediaApplicationLoggingConfiguration struct {
13527}
13528
13529func (*awsRestjson1_deserializeOpGetSipMediaApplicationLoggingConfiguration) ID() string {
13530	return "OperationDeserializer"
13531}
13532
13533func (m *awsRestjson1_deserializeOpGetSipMediaApplicationLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13534	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13535) {
13536	out, metadata, err = next.HandleDeserialize(ctx, in)
13537	if err != nil {
13538		return out, metadata, err
13539	}
13540
13541	response, ok := out.RawResponse.(*smithyhttp.Response)
13542	if !ok {
13543		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13544	}
13545
13546	if response.StatusCode < 200 || response.StatusCode >= 300 {
13547		return out, metadata, awsRestjson1_deserializeOpErrorGetSipMediaApplicationLoggingConfiguration(response, &metadata)
13548	}
13549	output := &GetSipMediaApplicationLoggingConfigurationOutput{}
13550	out.Result = output
13551
13552	var buff [1024]byte
13553	ringBuffer := smithyio.NewRingBuffer(buff[:])
13554
13555	body := io.TeeReader(response.Body, ringBuffer)
13556
13557	decoder := json.NewDecoder(body)
13558	decoder.UseNumber()
13559	var shape interface{}
13560	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13561		var snapshot bytes.Buffer
13562		io.Copy(&snapshot, ringBuffer)
13563		err = &smithy.DeserializationError{
13564			Err:      fmt.Errorf("failed to decode response body, %w", err),
13565			Snapshot: snapshot.Bytes(),
13566		}
13567		return out, metadata, err
13568	}
13569
13570	err = awsRestjson1_deserializeOpDocumentGetSipMediaApplicationLoggingConfigurationOutput(&output, shape)
13571	if err != nil {
13572		var snapshot bytes.Buffer
13573		io.Copy(&snapshot, ringBuffer)
13574		return out, metadata, &smithy.DeserializationError{
13575			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13576			Snapshot: snapshot.Bytes(),
13577		}
13578	}
13579
13580	return out, metadata, err
13581}
13582
13583func awsRestjson1_deserializeOpErrorGetSipMediaApplicationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13584	var errorBuffer bytes.Buffer
13585	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13586		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13587	}
13588	errorBody := bytes.NewReader(errorBuffer.Bytes())
13589
13590	errorCode := "UnknownError"
13591	errorMessage := errorCode
13592
13593	code := response.Header.Get("X-Amzn-ErrorType")
13594	if len(code) != 0 {
13595		errorCode = restjson.SanitizeErrorCode(code)
13596	}
13597
13598	var buff [1024]byte
13599	ringBuffer := smithyio.NewRingBuffer(buff[:])
13600
13601	body := io.TeeReader(errorBody, ringBuffer)
13602	decoder := json.NewDecoder(body)
13603	decoder.UseNumber()
13604	code, message, err := restjson.GetErrorInfo(decoder)
13605	if err != nil {
13606		var snapshot bytes.Buffer
13607		io.Copy(&snapshot, ringBuffer)
13608		err = &smithy.DeserializationError{
13609			Err:      fmt.Errorf("failed to decode response body, %w", err),
13610			Snapshot: snapshot.Bytes(),
13611		}
13612		return err
13613	}
13614
13615	errorBody.Seek(0, io.SeekStart)
13616	if len(code) != 0 {
13617		errorCode = restjson.SanitizeErrorCode(code)
13618	}
13619	if len(message) != 0 {
13620		errorMessage = message
13621	}
13622
13623	switch {
13624	case strings.EqualFold("BadRequestException", errorCode):
13625		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13626
13627	case strings.EqualFold("ForbiddenException", errorCode):
13628		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13629
13630	case strings.EqualFold("NotFoundException", errorCode):
13631		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13632
13633	case strings.EqualFold("ServiceFailureException", errorCode):
13634		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13635
13636	case strings.EqualFold("ServiceUnavailableException", errorCode):
13637		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13638
13639	case strings.EqualFold("ThrottledClientException", errorCode):
13640		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13641
13642	case strings.EqualFold("UnauthorizedClientException", errorCode):
13643		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13644
13645	default:
13646		genericError := &smithy.GenericAPIError{
13647			Code:    errorCode,
13648			Message: errorMessage,
13649		}
13650		return genericError
13651
13652	}
13653}
13654
13655func awsRestjson1_deserializeOpDocumentGetSipMediaApplicationLoggingConfigurationOutput(v **GetSipMediaApplicationLoggingConfigurationOutput, value interface{}) error {
13656	if v == nil {
13657		return fmt.Errorf("unexpected nil of type %T", v)
13658	}
13659	if value == nil {
13660		return nil
13661	}
13662
13663	shape, ok := value.(map[string]interface{})
13664	if !ok {
13665		return fmt.Errorf("unexpected JSON type %v", value)
13666	}
13667
13668	var sv *GetSipMediaApplicationLoggingConfigurationOutput
13669	if *v == nil {
13670		sv = &GetSipMediaApplicationLoggingConfigurationOutput{}
13671	} else {
13672		sv = *v
13673	}
13674
13675	for key, value := range shape {
13676		switch key {
13677		case "SipMediaApplicationLoggingConfiguration":
13678			if err := awsRestjson1_deserializeDocumentSipMediaApplicationLoggingConfiguration(&sv.SipMediaApplicationLoggingConfiguration, value); err != nil {
13679				return err
13680			}
13681
13682		default:
13683			_, _ = key, value
13684
13685		}
13686	}
13687	*v = sv
13688	return nil
13689}
13690
13691type awsRestjson1_deserializeOpGetSipRule struct {
13692}
13693
13694func (*awsRestjson1_deserializeOpGetSipRule) ID() string {
13695	return "OperationDeserializer"
13696}
13697
13698func (m *awsRestjson1_deserializeOpGetSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13699	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13700) {
13701	out, metadata, err = next.HandleDeserialize(ctx, in)
13702	if err != nil {
13703		return out, metadata, err
13704	}
13705
13706	response, ok := out.RawResponse.(*smithyhttp.Response)
13707	if !ok {
13708		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13709	}
13710
13711	if response.StatusCode < 200 || response.StatusCode >= 300 {
13712		return out, metadata, awsRestjson1_deserializeOpErrorGetSipRule(response, &metadata)
13713	}
13714	output := &GetSipRuleOutput{}
13715	out.Result = output
13716
13717	var buff [1024]byte
13718	ringBuffer := smithyio.NewRingBuffer(buff[:])
13719
13720	body := io.TeeReader(response.Body, ringBuffer)
13721
13722	decoder := json.NewDecoder(body)
13723	decoder.UseNumber()
13724	var shape interface{}
13725	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13726		var snapshot bytes.Buffer
13727		io.Copy(&snapshot, ringBuffer)
13728		err = &smithy.DeserializationError{
13729			Err:      fmt.Errorf("failed to decode response body, %w", err),
13730			Snapshot: snapshot.Bytes(),
13731		}
13732		return out, metadata, err
13733	}
13734
13735	err = awsRestjson1_deserializeOpDocumentGetSipRuleOutput(&output, shape)
13736	if err != nil {
13737		var snapshot bytes.Buffer
13738		io.Copy(&snapshot, ringBuffer)
13739		return out, metadata, &smithy.DeserializationError{
13740			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13741			Snapshot: snapshot.Bytes(),
13742		}
13743	}
13744
13745	return out, metadata, err
13746}
13747
13748func awsRestjson1_deserializeOpErrorGetSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13749	var errorBuffer bytes.Buffer
13750	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13751		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13752	}
13753	errorBody := bytes.NewReader(errorBuffer.Bytes())
13754
13755	errorCode := "UnknownError"
13756	errorMessage := errorCode
13757
13758	code := response.Header.Get("X-Amzn-ErrorType")
13759	if len(code) != 0 {
13760		errorCode = restjson.SanitizeErrorCode(code)
13761	}
13762
13763	var buff [1024]byte
13764	ringBuffer := smithyio.NewRingBuffer(buff[:])
13765
13766	body := io.TeeReader(errorBody, ringBuffer)
13767	decoder := json.NewDecoder(body)
13768	decoder.UseNumber()
13769	code, message, err := restjson.GetErrorInfo(decoder)
13770	if err != nil {
13771		var snapshot bytes.Buffer
13772		io.Copy(&snapshot, ringBuffer)
13773		err = &smithy.DeserializationError{
13774			Err:      fmt.Errorf("failed to decode response body, %w", err),
13775			Snapshot: snapshot.Bytes(),
13776		}
13777		return err
13778	}
13779
13780	errorBody.Seek(0, io.SeekStart)
13781	if len(code) != 0 {
13782		errorCode = restjson.SanitizeErrorCode(code)
13783	}
13784	if len(message) != 0 {
13785		errorMessage = message
13786	}
13787
13788	switch {
13789	case strings.EqualFold("BadRequestException", errorCode):
13790		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13791
13792	case strings.EqualFold("ForbiddenException", errorCode):
13793		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13794
13795	case strings.EqualFold("NotFoundException", errorCode):
13796		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13797
13798	case strings.EqualFold("ServiceFailureException", errorCode):
13799		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13800
13801	case strings.EqualFold("ServiceUnavailableException", errorCode):
13802		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13803
13804	case strings.EqualFold("ThrottledClientException", errorCode):
13805		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13806
13807	case strings.EqualFold("UnauthorizedClientException", errorCode):
13808		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13809
13810	default:
13811		genericError := &smithy.GenericAPIError{
13812			Code:    errorCode,
13813			Message: errorMessage,
13814		}
13815		return genericError
13816
13817	}
13818}
13819
13820func awsRestjson1_deserializeOpDocumentGetSipRuleOutput(v **GetSipRuleOutput, value interface{}) error {
13821	if v == nil {
13822		return fmt.Errorf("unexpected nil of type %T", v)
13823	}
13824	if value == nil {
13825		return nil
13826	}
13827
13828	shape, ok := value.(map[string]interface{})
13829	if !ok {
13830		return fmt.Errorf("unexpected JSON type %v", value)
13831	}
13832
13833	var sv *GetSipRuleOutput
13834	if *v == nil {
13835		sv = &GetSipRuleOutput{}
13836	} else {
13837		sv = *v
13838	}
13839
13840	for key, value := range shape {
13841		switch key {
13842		case "SipRule":
13843			if err := awsRestjson1_deserializeDocumentSipRule(&sv.SipRule, value); err != nil {
13844				return err
13845			}
13846
13847		default:
13848			_, _ = key, value
13849
13850		}
13851	}
13852	*v = sv
13853	return nil
13854}
13855
13856type awsRestjson1_deserializeOpGetUser struct {
13857}
13858
13859func (*awsRestjson1_deserializeOpGetUser) ID() string {
13860	return "OperationDeserializer"
13861}
13862
13863func (m *awsRestjson1_deserializeOpGetUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
13864	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
13865) {
13866	out, metadata, err = next.HandleDeserialize(ctx, in)
13867	if err != nil {
13868		return out, metadata, err
13869	}
13870
13871	response, ok := out.RawResponse.(*smithyhttp.Response)
13872	if !ok {
13873		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
13874	}
13875
13876	if response.StatusCode < 200 || response.StatusCode >= 300 {
13877		return out, metadata, awsRestjson1_deserializeOpErrorGetUser(response, &metadata)
13878	}
13879	output := &GetUserOutput{}
13880	out.Result = output
13881
13882	var buff [1024]byte
13883	ringBuffer := smithyio.NewRingBuffer(buff[:])
13884
13885	body := io.TeeReader(response.Body, ringBuffer)
13886
13887	decoder := json.NewDecoder(body)
13888	decoder.UseNumber()
13889	var shape interface{}
13890	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
13891		var snapshot bytes.Buffer
13892		io.Copy(&snapshot, ringBuffer)
13893		err = &smithy.DeserializationError{
13894			Err:      fmt.Errorf("failed to decode response body, %w", err),
13895			Snapshot: snapshot.Bytes(),
13896		}
13897		return out, metadata, err
13898	}
13899
13900	err = awsRestjson1_deserializeOpDocumentGetUserOutput(&output, shape)
13901	if err != nil {
13902		var snapshot bytes.Buffer
13903		io.Copy(&snapshot, ringBuffer)
13904		return out, metadata, &smithy.DeserializationError{
13905			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
13906			Snapshot: snapshot.Bytes(),
13907		}
13908	}
13909
13910	return out, metadata, err
13911}
13912
13913func awsRestjson1_deserializeOpErrorGetUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
13914	var errorBuffer bytes.Buffer
13915	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
13916		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
13917	}
13918	errorBody := bytes.NewReader(errorBuffer.Bytes())
13919
13920	errorCode := "UnknownError"
13921	errorMessage := errorCode
13922
13923	code := response.Header.Get("X-Amzn-ErrorType")
13924	if len(code) != 0 {
13925		errorCode = restjson.SanitizeErrorCode(code)
13926	}
13927
13928	var buff [1024]byte
13929	ringBuffer := smithyio.NewRingBuffer(buff[:])
13930
13931	body := io.TeeReader(errorBody, ringBuffer)
13932	decoder := json.NewDecoder(body)
13933	decoder.UseNumber()
13934	code, message, err := restjson.GetErrorInfo(decoder)
13935	if err != nil {
13936		var snapshot bytes.Buffer
13937		io.Copy(&snapshot, ringBuffer)
13938		err = &smithy.DeserializationError{
13939			Err:      fmt.Errorf("failed to decode response body, %w", err),
13940			Snapshot: snapshot.Bytes(),
13941		}
13942		return err
13943	}
13944
13945	errorBody.Seek(0, io.SeekStart)
13946	if len(code) != 0 {
13947		errorCode = restjson.SanitizeErrorCode(code)
13948	}
13949	if len(message) != 0 {
13950		errorMessage = message
13951	}
13952
13953	switch {
13954	case strings.EqualFold("BadRequestException", errorCode):
13955		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
13956
13957	case strings.EqualFold("ForbiddenException", errorCode):
13958		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
13959
13960	case strings.EqualFold("NotFoundException", errorCode):
13961		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
13962
13963	case strings.EqualFold("ServiceFailureException", errorCode):
13964		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
13965
13966	case strings.EqualFold("ServiceUnavailableException", errorCode):
13967		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
13968
13969	case strings.EqualFold("ThrottledClientException", errorCode):
13970		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
13971
13972	case strings.EqualFold("UnauthorizedClientException", errorCode):
13973		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
13974
13975	default:
13976		genericError := &smithy.GenericAPIError{
13977			Code:    errorCode,
13978			Message: errorMessage,
13979		}
13980		return genericError
13981
13982	}
13983}
13984
13985func awsRestjson1_deserializeOpDocumentGetUserOutput(v **GetUserOutput, value interface{}) error {
13986	if v == nil {
13987		return fmt.Errorf("unexpected nil of type %T", v)
13988	}
13989	if value == nil {
13990		return nil
13991	}
13992
13993	shape, ok := value.(map[string]interface{})
13994	if !ok {
13995		return fmt.Errorf("unexpected JSON type %v", value)
13996	}
13997
13998	var sv *GetUserOutput
13999	if *v == nil {
14000		sv = &GetUserOutput{}
14001	} else {
14002		sv = *v
14003	}
14004
14005	for key, value := range shape {
14006		switch key {
14007		case "User":
14008			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
14009				return err
14010			}
14011
14012		default:
14013			_, _ = key, value
14014
14015		}
14016	}
14017	*v = sv
14018	return nil
14019}
14020
14021type awsRestjson1_deserializeOpGetUserSettings struct {
14022}
14023
14024func (*awsRestjson1_deserializeOpGetUserSettings) ID() string {
14025	return "OperationDeserializer"
14026}
14027
14028func (m *awsRestjson1_deserializeOpGetUserSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14029	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14030) {
14031	out, metadata, err = next.HandleDeserialize(ctx, in)
14032	if err != nil {
14033		return out, metadata, err
14034	}
14035
14036	response, ok := out.RawResponse.(*smithyhttp.Response)
14037	if !ok {
14038		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14039	}
14040
14041	if response.StatusCode < 200 || response.StatusCode >= 300 {
14042		return out, metadata, awsRestjson1_deserializeOpErrorGetUserSettings(response, &metadata)
14043	}
14044	output := &GetUserSettingsOutput{}
14045	out.Result = output
14046
14047	var buff [1024]byte
14048	ringBuffer := smithyio.NewRingBuffer(buff[:])
14049
14050	body := io.TeeReader(response.Body, ringBuffer)
14051
14052	decoder := json.NewDecoder(body)
14053	decoder.UseNumber()
14054	var shape interface{}
14055	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14056		var snapshot bytes.Buffer
14057		io.Copy(&snapshot, ringBuffer)
14058		err = &smithy.DeserializationError{
14059			Err:      fmt.Errorf("failed to decode response body, %w", err),
14060			Snapshot: snapshot.Bytes(),
14061		}
14062		return out, metadata, err
14063	}
14064
14065	err = awsRestjson1_deserializeOpDocumentGetUserSettingsOutput(&output, shape)
14066	if err != nil {
14067		var snapshot bytes.Buffer
14068		io.Copy(&snapshot, ringBuffer)
14069		return out, metadata, &smithy.DeserializationError{
14070			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14071			Snapshot: snapshot.Bytes(),
14072		}
14073	}
14074
14075	return out, metadata, err
14076}
14077
14078func awsRestjson1_deserializeOpErrorGetUserSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14079	var errorBuffer bytes.Buffer
14080	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14081		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14082	}
14083	errorBody := bytes.NewReader(errorBuffer.Bytes())
14084
14085	errorCode := "UnknownError"
14086	errorMessage := errorCode
14087
14088	code := response.Header.Get("X-Amzn-ErrorType")
14089	if len(code) != 0 {
14090		errorCode = restjson.SanitizeErrorCode(code)
14091	}
14092
14093	var buff [1024]byte
14094	ringBuffer := smithyio.NewRingBuffer(buff[:])
14095
14096	body := io.TeeReader(errorBody, ringBuffer)
14097	decoder := json.NewDecoder(body)
14098	decoder.UseNumber()
14099	code, message, err := restjson.GetErrorInfo(decoder)
14100	if err != nil {
14101		var snapshot bytes.Buffer
14102		io.Copy(&snapshot, ringBuffer)
14103		err = &smithy.DeserializationError{
14104			Err:      fmt.Errorf("failed to decode response body, %w", err),
14105			Snapshot: snapshot.Bytes(),
14106		}
14107		return err
14108	}
14109
14110	errorBody.Seek(0, io.SeekStart)
14111	if len(code) != 0 {
14112		errorCode = restjson.SanitizeErrorCode(code)
14113	}
14114	if len(message) != 0 {
14115		errorMessage = message
14116	}
14117
14118	switch {
14119	case strings.EqualFold("BadRequestException", errorCode):
14120		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14121
14122	case strings.EqualFold("ForbiddenException", errorCode):
14123		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14124
14125	case strings.EqualFold("NotFoundException", errorCode):
14126		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14127
14128	case strings.EqualFold("ServiceFailureException", errorCode):
14129		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14130
14131	case strings.EqualFold("ServiceUnavailableException", errorCode):
14132		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14133
14134	case strings.EqualFold("ThrottledClientException", errorCode):
14135		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14136
14137	case strings.EqualFold("UnauthorizedClientException", errorCode):
14138		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14139
14140	default:
14141		genericError := &smithy.GenericAPIError{
14142			Code:    errorCode,
14143			Message: errorMessage,
14144		}
14145		return genericError
14146
14147	}
14148}
14149
14150func awsRestjson1_deserializeOpDocumentGetUserSettingsOutput(v **GetUserSettingsOutput, value interface{}) error {
14151	if v == nil {
14152		return fmt.Errorf("unexpected nil of type %T", v)
14153	}
14154	if value == nil {
14155		return nil
14156	}
14157
14158	shape, ok := value.(map[string]interface{})
14159	if !ok {
14160		return fmt.Errorf("unexpected JSON type %v", value)
14161	}
14162
14163	var sv *GetUserSettingsOutput
14164	if *v == nil {
14165		sv = &GetUserSettingsOutput{}
14166	} else {
14167		sv = *v
14168	}
14169
14170	for key, value := range shape {
14171		switch key {
14172		case "UserSettings":
14173			if err := awsRestjson1_deserializeDocumentUserSettings(&sv.UserSettings, value); err != nil {
14174				return err
14175			}
14176
14177		default:
14178			_, _ = key, value
14179
14180		}
14181	}
14182	*v = sv
14183	return nil
14184}
14185
14186type awsRestjson1_deserializeOpGetVoiceConnector struct {
14187}
14188
14189func (*awsRestjson1_deserializeOpGetVoiceConnector) ID() string {
14190	return "OperationDeserializer"
14191}
14192
14193func (m *awsRestjson1_deserializeOpGetVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14194	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14195) {
14196	out, metadata, err = next.HandleDeserialize(ctx, in)
14197	if err != nil {
14198		return out, metadata, err
14199	}
14200
14201	response, ok := out.RawResponse.(*smithyhttp.Response)
14202	if !ok {
14203		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14204	}
14205
14206	if response.StatusCode < 200 || response.StatusCode >= 300 {
14207		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnector(response, &metadata)
14208	}
14209	output := &GetVoiceConnectorOutput{}
14210	out.Result = output
14211
14212	var buff [1024]byte
14213	ringBuffer := smithyio.NewRingBuffer(buff[:])
14214
14215	body := io.TeeReader(response.Body, ringBuffer)
14216
14217	decoder := json.NewDecoder(body)
14218	decoder.UseNumber()
14219	var shape interface{}
14220	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14221		var snapshot bytes.Buffer
14222		io.Copy(&snapshot, ringBuffer)
14223		err = &smithy.DeserializationError{
14224			Err:      fmt.Errorf("failed to decode response body, %w", err),
14225			Snapshot: snapshot.Bytes(),
14226		}
14227		return out, metadata, err
14228	}
14229
14230	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorOutput(&output, shape)
14231	if err != nil {
14232		var snapshot bytes.Buffer
14233		io.Copy(&snapshot, ringBuffer)
14234		return out, metadata, &smithy.DeserializationError{
14235			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14236			Snapshot: snapshot.Bytes(),
14237		}
14238	}
14239
14240	return out, metadata, err
14241}
14242
14243func awsRestjson1_deserializeOpErrorGetVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14244	var errorBuffer bytes.Buffer
14245	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14246		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14247	}
14248	errorBody := bytes.NewReader(errorBuffer.Bytes())
14249
14250	errorCode := "UnknownError"
14251	errorMessage := errorCode
14252
14253	code := response.Header.Get("X-Amzn-ErrorType")
14254	if len(code) != 0 {
14255		errorCode = restjson.SanitizeErrorCode(code)
14256	}
14257
14258	var buff [1024]byte
14259	ringBuffer := smithyio.NewRingBuffer(buff[:])
14260
14261	body := io.TeeReader(errorBody, ringBuffer)
14262	decoder := json.NewDecoder(body)
14263	decoder.UseNumber()
14264	code, message, err := restjson.GetErrorInfo(decoder)
14265	if err != nil {
14266		var snapshot bytes.Buffer
14267		io.Copy(&snapshot, ringBuffer)
14268		err = &smithy.DeserializationError{
14269			Err:      fmt.Errorf("failed to decode response body, %w", err),
14270			Snapshot: snapshot.Bytes(),
14271		}
14272		return err
14273	}
14274
14275	errorBody.Seek(0, io.SeekStart)
14276	if len(code) != 0 {
14277		errorCode = restjson.SanitizeErrorCode(code)
14278	}
14279	if len(message) != 0 {
14280		errorMessage = message
14281	}
14282
14283	switch {
14284	case strings.EqualFold("BadRequestException", errorCode):
14285		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14286
14287	case strings.EqualFold("ForbiddenException", errorCode):
14288		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14289
14290	case strings.EqualFold("NotFoundException", errorCode):
14291		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14292
14293	case strings.EqualFold("ServiceFailureException", errorCode):
14294		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14295
14296	case strings.EqualFold("ServiceUnavailableException", errorCode):
14297		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14298
14299	case strings.EqualFold("ThrottledClientException", errorCode):
14300		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14301
14302	case strings.EqualFold("UnauthorizedClientException", errorCode):
14303		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14304
14305	default:
14306		genericError := &smithy.GenericAPIError{
14307			Code:    errorCode,
14308			Message: errorMessage,
14309		}
14310		return genericError
14311
14312	}
14313}
14314
14315func awsRestjson1_deserializeOpDocumentGetVoiceConnectorOutput(v **GetVoiceConnectorOutput, value interface{}) error {
14316	if v == nil {
14317		return fmt.Errorf("unexpected nil of type %T", v)
14318	}
14319	if value == nil {
14320		return nil
14321	}
14322
14323	shape, ok := value.(map[string]interface{})
14324	if !ok {
14325		return fmt.Errorf("unexpected JSON type %v", value)
14326	}
14327
14328	var sv *GetVoiceConnectorOutput
14329	if *v == nil {
14330		sv = &GetVoiceConnectorOutput{}
14331	} else {
14332		sv = *v
14333	}
14334
14335	for key, value := range shape {
14336		switch key {
14337		case "VoiceConnector":
14338			if err := awsRestjson1_deserializeDocumentVoiceConnector(&sv.VoiceConnector, value); err != nil {
14339				return err
14340			}
14341
14342		default:
14343			_, _ = key, value
14344
14345		}
14346	}
14347	*v = sv
14348	return nil
14349}
14350
14351type awsRestjson1_deserializeOpGetVoiceConnectorEmergencyCallingConfiguration struct {
14352}
14353
14354func (*awsRestjson1_deserializeOpGetVoiceConnectorEmergencyCallingConfiguration) ID() string {
14355	return "OperationDeserializer"
14356}
14357
14358func (m *awsRestjson1_deserializeOpGetVoiceConnectorEmergencyCallingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14359	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14360) {
14361	out, metadata, err = next.HandleDeserialize(ctx, in)
14362	if err != nil {
14363		return out, metadata, err
14364	}
14365
14366	response, ok := out.RawResponse.(*smithyhttp.Response)
14367	if !ok {
14368		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14369	}
14370
14371	if response.StatusCode < 200 || response.StatusCode >= 300 {
14372		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorEmergencyCallingConfiguration(response, &metadata)
14373	}
14374	output := &GetVoiceConnectorEmergencyCallingConfigurationOutput{}
14375	out.Result = output
14376
14377	var buff [1024]byte
14378	ringBuffer := smithyio.NewRingBuffer(buff[:])
14379
14380	body := io.TeeReader(response.Body, ringBuffer)
14381
14382	decoder := json.NewDecoder(body)
14383	decoder.UseNumber()
14384	var shape interface{}
14385	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14386		var snapshot bytes.Buffer
14387		io.Copy(&snapshot, ringBuffer)
14388		err = &smithy.DeserializationError{
14389			Err:      fmt.Errorf("failed to decode response body, %w", err),
14390			Snapshot: snapshot.Bytes(),
14391		}
14392		return out, metadata, err
14393	}
14394
14395	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorEmergencyCallingConfigurationOutput(&output, shape)
14396	if err != nil {
14397		var snapshot bytes.Buffer
14398		io.Copy(&snapshot, ringBuffer)
14399		return out, metadata, &smithy.DeserializationError{
14400			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14401			Snapshot: snapshot.Bytes(),
14402		}
14403	}
14404
14405	return out, metadata, err
14406}
14407
14408func awsRestjson1_deserializeOpErrorGetVoiceConnectorEmergencyCallingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14409	var errorBuffer bytes.Buffer
14410	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14411		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14412	}
14413	errorBody := bytes.NewReader(errorBuffer.Bytes())
14414
14415	errorCode := "UnknownError"
14416	errorMessage := errorCode
14417
14418	code := response.Header.Get("X-Amzn-ErrorType")
14419	if len(code) != 0 {
14420		errorCode = restjson.SanitizeErrorCode(code)
14421	}
14422
14423	var buff [1024]byte
14424	ringBuffer := smithyio.NewRingBuffer(buff[:])
14425
14426	body := io.TeeReader(errorBody, ringBuffer)
14427	decoder := json.NewDecoder(body)
14428	decoder.UseNumber()
14429	code, message, err := restjson.GetErrorInfo(decoder)
14430	if err != nil {
14431		var snapshot bytes.Buffer
14432		io.Copy(&snapshot, ringBuffer)
14433		err = &smithy.DeserializationError{
14434			Err:      fmt.Errorf("failed to decode response body, %w", err),
14435			Snapshot: snapshot.Bytes(),
14436		}
14437		return err
14438	}
14439
14440	errorBody.Seek(0, io.SeekStart)
14441	if len(code) != 0 {
14442		errorCode = restjson.SanitizeErrorCode(code)
14443	}
14444	if len(message) != 0 {
14445		errorMessage = message
14446	}
14447
14448	switch {
14449	case strings.EqualFold("BadRequestException", errorCode):
14450		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14451
14452	case strings.EqualFold("ForbiddenException", errorCode):
14453		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14454
14455	case strings.EqualFold("NotFoundException", errorCode):
14456		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14457
14458	case strings.EqualFold("ServiceFailureException", errorCode):
14459		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14460
14461	case strings.EqualFold("ServiceUnavailableException", errorCode):
14462		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14463
14464	case strings.EqualFold("ThrottledClientException", errorCode):
14465		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14466
14467	case strings.EqualFold("UnauthorizedClientException", errorCode):
14468		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14469
14470	default:
14471		genericError := &smithy.GenericAPIError{
14472			Code:    errorCode,
14473			Message: errorMessage,
14474		}
14475		return genericError
14476
14477	}
14478}
14479
14480func awsRestjson1_deserializeOpDocumentGetVoiceConnectorEmergencyCallingConfigurationOutput(v **GetVoiceConnectorEmergencyCallingConfigurationOutput, value interface{}) error {
14481	if v == nil {
14482		return fmt.Errorf("unexpected nil of type %T", v)
14483	}
14484	if value == nil {
14485		return nil
14486	}
14487
14488	shape, ok := value.(map[string]interface{})
14489	if !ok {
14490		return fmt.Errorf("unexpected JSON type %v", value)
14491	}
14492
14493	var sv *GetVoiceConnectorEmergencyCallingConfigurationOutput
14494	if *v == nil {
14495		sv = &GetVoiceConnectorEmergencyCallingConfigurationOutput{}
14496	} else {
14497		sv = *v
14498	}
14499
14500	for key, value := range shape {
14501		switch key {
14502		case "EmergencyCallingConfiguration":
14503			if err := awsRestjson1_deserializeDocumentEmergencyCallingConfiguration(&sv.EmergencyCallingConfiguration, value); err != nil {
14504				return err
14505			}
14506
14507		default:
14508			_, _ = key, value
14509
14510		}
14511	}
14512	*v = sv
14513	return nil
14514}
14515
14516type awsRestjson1_deserializeOpGetVoiceConnectorGroup struct {
14517}
14518
14519func (*awsRestjson1_deserializeOpGetVoiceConnectorGroup) ID() string {
14520	return "OperationDeserializer"
14521}
14522
14523func (m *awsRestjson1_deserializeOpGetVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14524	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14525) {
14526	out, metadata, err = next.HandleDeserialize(ctx, in)
14527	if err != nil {
14528		return out, metadata, err
14529	}
14530
14531	response, ok := out.RawResponse.(*smithyhttp.Response)
14532	if !ok {
14533		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14534	}
14535
14536	if response.StatusCode < 200 || response.StatusCode >= 300 {
14537		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorGroup(response, &metadata)
14538	}
14539	output := &GetVoiceConnectorGroupOutput{}
14540	out.Result = output
14541
14542	var buff [1024]byte
14543	ringBuffer := smithyio.NewRingBuffer(buff[:])
14544
14545	body := io.TeeReader(response.Body, ringBuffer)
14546
14547	decoder := json.NewDecoder(body)
14548	decoder.UseNumber()
14549	var shape interface{}
14550	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14551		var snapshot bytes.Buffer
14552		io.Copy(&snapshot, ringBuffer)
14553		err = &smithy.DeserializationError{
14554			Err:      fmt.Errorf("failed to decode response body, %w", err),
14555			Snapshot: snapshot.Bytes(),
14556		}
14557		return out, metadata, err
14558	}
14559
14560	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorGroupOutput(&output, shape)
14561	if err != nil {
14562		var snapshot bytes.Buffer
14563		io.Copy(&snapshot, ringBuffer)
14564		return out, metadata, &smithy.DeserializationError{
14565			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14566			Snapshot: snapshot.Bytes(),
14567		}
14568	}
14569
14570	return out, metadata, err
14571}
14572
14573func awsRestjson1_deserializeOpErrorGetVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14574	var errorBuffer bytes.Buffer
14575	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14576		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14577	}
14578	errorBody := bytes.NewReader(errorBuffer.Bytes())
14579
14580	errorCode := "UnknownError"
14581	errorMessage := errorCode
14582
14583	code := response.Header.Get("X-Amzn-ErrorType")
14584	if len(code) != 0 {
14585		errorCode = restjson.SanitizeErrorCode(code)
14586	}
14587
14588	var buff [1024]byte
14589	ringBuffer := smithyio.NewRingBuffer(buff[:])
14590
14591	body := io.TeeReader(errorBody, ringBuffer)
14592	decoder := json.NewDecoder(body)
14593	decoder.UseNumber()
14594	code, message, err := restjson.GetErrorInfo(decoder)
14595	if err != nil {
14596		var snapshot bytes.Buffer
14597		io.Copy(&snapshot, ringBuffer)
14598		err = &smithy.DeserializationError{
14599			Err:      fmt.Errorf("failed to decode response body, %w", err),
14600			Snapshot: snapshot.Bytes(),
14601		}
14602		return err
14603	}
14604
14605	errorBody.Seek(0, io.SeekStart)
14606	if len(code) != 0 {
14607		errorCode = restjson.SanitizeErrorCode(code)
14608	}
14609	if len(message) != 0 {
14610		errorMessage = message
14611	}
14612
14613	switch {
14614	case strings.EqualFold("BadRequestException", errorCode):
14615		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14616
14617	case strings.EqualFold("ForbiddenException", errorCode):
14618		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14619
14620	case strings.EqualFold("NotFoundException", errorCode):
14621		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14622
14623	case strings.EqualFold("ServiceFailureException", errorCode):
14624		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14625
14626	case strings.EqualFold("ServiceUnavailableException", errorCode):
14627		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14628
14629	case strings.EqualFold("ThrottledClientException", errorCode):
14630		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14631
14632	case strings.EqualFold("UnauthorizedClientException", errorCode):
14633		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14634
14635	default:
14636		genericError := &smithy.GenericAPIError{
14637			Code:    errorCode,
14638			Message: errorMessage,
14639		}
14640		return genericError
14641
14642	}
14643}
14644
14645func awsRestjson1_deserializeOpDocumentGetVoiceConnectorGroupOutput(v **GetVoiceConnectorGroupOutput, value interface{}) error {
14646	if v == nil {
14647		return fmt.Errorf("unexpected nil of type %T", v)
14648	}
14649	if value == nil {
14650		return nil
14651	}
14652
14653	shape, ok := value.(map[string]interface{})
14654	if !ok {
14655		return fmt.Errorf("unexpected JSON type %v", value)
14656	}
14657
14658	var sv *GetVoiceConnectorGroupOutput
14659	if *v == nil {
14660		sv = &GetVoiceConnectorGroupOutput{}
14661	} else {
14662		sv = *v
14663	}
14664
14665	for key, value := range shape {
14666		switch key {
14667		case "VoiceConnectorGroup":
14668			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&sv.VoiceConnectorGroup, value); err != nil {
14669				return err
14670			}
14671
14672		default:
14673			_, _ = key, value
14674
14675		}
14676	}
14677	*v = sv
14678	return nil
14679}
14680
14681type awsRestjson1_deserializeOpGetVoiceConnectorLoggingConfiguration struct {
14682}
14683
14684func (*awsRestjson1_deserializeOpGetVoiceConnectorLoggingConfiguration) ID() string {
14685	return "OperationDeserializer"
14686}
14687
14688func (m *awsRestjson1_deserializeOpGetVoiceConnectorLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14689	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14690) {
14691	out, metadata, err = next.HandleDeserialize(ctx, in)
14692	if err != nil {
14693		return out, metadata, err
14694	}
14695
14696	response, ok := out.RawResponse.(*smithyhttp.Response)
14697	if !ok {
14698		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14699	}
14700
14701	if response.StatusCode < 200 || response.StatusCode >= 300 {
14702		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorLoggingConfiguration(response, &metadata)
14703	}
14704	output := &GetVoiceConnectorLoggingConfigurationOutput{}
14705	out.Result = output
14706
14707	var buff [1024]byte
14708	ringBuffer := smithyio.NewRingBuffer(buff[:])
14709
14710	body := io.TeeReader(response.Body, ringBuffer)
14711
14712	decoder := json.NewDecoder(body)
14713	decoder.UseNumber()
14714	var shape interface{}
14715	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14716		var snapshot bytes.Buffer
14717		io.Copy(&snapshot, ringBuffer)
14718		err = &smithy.DeserializationError{
14719			Err:      fmt.Errorf("failed to decode response body, %w", err),
14720			Snapshot: snapshot.Bytes(),
14721		}
14722		return out, metadata, err
14723	}
14724
14725	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorLoggingConfigurationOutput(&output, shape)
14726	if err != nil {
14727		var snapshot bytes.Buffer
14728		io.Copy(&snapshot, ringBuffer)
14729		return out, metadata, &smithy.DeserializationError{
14730			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14731			Snapshot: snapshot.Bytes(),
14732		}
14733	}
14734
14735	return out, metadata, err
14736}
14737
14738func awsRestjson1_deserializeOpErrorGetVoiceConnectorLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14739	var errorBuffer bytes.Buffer
14740	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14741		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14742	}
14743	errorBody := bytes.NewReader(errorBuffer.Bytes())
14744
14745	errorCode := "UnknownError"
14746	errorMessage := errorCode
14747
14748	code := response.Header.Get("X-Amzn-ErrorType")
14749	if len(code) != 0 {
14750		errorCode = restjson.SanitizeErrorCode(code)
14751	}
14752
14753	var buff [1024]byte
14754	ringBuffer := smithyio.NewRingBuffer(buff[:])
14755
14756	body := io.TeeReader(errorBody, ringBuffer)
14757	decoder := json.NewDecoder(body)
14758	decoder.UseNumber()
14759	code, message, err := restjson.GetErrorInfo(decoder)
14760	if err != nil {
14761		var snapshot bytes.Buffer
14762		io.Copy(&snapshot, ringBuffer)
14763		err = &smithy.DeserializationError{
14764			Err:      fmt.Errorf("failed to decode response body, %w", err),
14765			Snapshot: snapshot.Bytes(),
14766		}
14767		return err
14768	}
14769
14770	errorBody.Seek(0, io.SeekStart)
14771	if len(code) != 0 {
14772		errorCode = restjson.SanitizeErrorCode(code)
14773	}
14774	if len(message) != 0 {
14775		errorMessage = message
14776	}
14777
14778	switch {
14779	case strings.EqualFold("BadRequestException", errorCode):
14780		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14781
14782	case strings.EqualFold("ForbiddenException", errorCode):
14783		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14784
14785	case strings.EqualFold("NotFoundException", errorCode):
14786		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14787
14788	case strings.EqualFold("ServiceFailureException", errorCode):
14789		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14790
14791	case strings.EqualFold("ServiceUnavailableException", errorCode):
14792		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14793
14794	case strings.EqualFold("ThrottledClientException", errorCode):
14795		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14796
14797	case strings.EqualFold("UnauthorizedClientException", errorCode):
14798		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14799
14800	default:
14801		genericError := &smithy.GenericAPIError{
14802			Code:    errorCode,
14803			Message: errorMessage,
14804		}
14805		return genericError
14806
14807	}
14808}
14809
14810func awsRestjson1_deserializeOpDocumentGetVoiceConnectorLoggingConfigurationOutput(v **GetVoiceConnectorLoggingConfigurationOutput, value interface{}) error {
14811	if v == nil {
14812		return fmt.Errorf("unexpected nil of type %T", v)
14813	}
14814	if value == nil {
14815		return nil
14816	}
14817
14818	shape, ok := value.(map[string]interface{})
14819	if !ok {
14820		return fmt.Errorf("unexpected JSON type %v", value)
14821	}
14822
14823	var sv *GetVoiceConnectorLoggingConfigurationOutput
14824	if *v == nil {
14825		sv = &GetVoiceConnectorLoggingConfigurationOutput{}
14826	} else {
14827		sv = *v
14828	}
14829
14830	for key, value := range shape {
14831		switch key {
14832		case "LoggingConfiguration":
14833			if err := awsRestjson1_deserializeDocumentLoggingConfiguration(&sv.LoggingConfiguration, value); err != nil {
14834				return err
14835			}
14836
14837		default:
14838			_, _ = key, value
14839
14840		}
14841	}
14842	*v = sv
14843	return nil
14844}
14845
14846type awsRestjson1_deserializeOpGetVoiceConnectorOrigination struct {
14847}
14848
14849func (*awsRestjson1_deserializeOpGetVoiceConnectorOrigination) ID() string {
14850	return "OperationDeserializer"
14851}
14852
14853func (m *awsRestjson1_deserializeOpGetVoiceConnectorOrigination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
14854	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
14855) {
14856	out, metadata, err = next.HandleDeserialize(ctx, in)
14857	if err != nil {
14858		return out, metadata, err
14859	}
14860
14861	response, ok := out.RawResponse.(*smithyhttp.Response)
14862	if !ok {
14863		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
14864	}
14865
14866	if response.StatusCode < 200 || response.StatusCode >= 300 {
14867		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorOrigination(response, &metadata)
14868	}
14869	output := &GetVoiceConnectorOriginationOutput{}
14870	out.Result = output
14871
14872	var buff [1024]byte
14873	ringBuffer := smithyio.NewRingBuffer(buff[:])
14874
14875	body := io.TeeReader(response.Body, ringBuffer)
14876
14877	decoder := json.NewDecoder(body)
14878	decoder.UseNumber()
14879	var shape interface{}
14880	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
14881		var snapshot bytes.Buffer
14882		io.Copy(&snapshot, ringBuffer)
14883		err = &smithy.DeserializationError{
14884			Err:      fmt.Errorf("failed to decode response body, %w", err),
14885			Snapshot: snapshot.Bytes(),
14886		}
14887		return out, metadata, err
14888	}
14889
14890	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorOriginationOutput(&output, shape)
14891	if err != nil {
14892		var snapshot bytes.Buffer
14893		io.Copy(&snapshot, ringBuffer)
14894		return out, metadata, &smithy.DeserializationError{
14895			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
14896			Snapshot: snapshot.Bytes(),
14897		}
14898	}
14899
14900	return out, metadata, err
14901}
14902
14903func awsRestjson1_deserializeOpErrorGetVoiceConnectorOrigination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
14904	var errorBuffer bytes.Buffer
14905	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
14906		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
14907	}
14908	errorBody := bytes.NewReader(errorBuffer.Bytes())
14909
14910	errorCode := "UnknownError"
14911	errorMessage := errorCode
14912
14913	code := response.Header.Get("X-Amzn-ErrorType")
14914	if len(code) != 0 {
14915		errorCode = restjson.SanitizeErrorCode(code)
14916	}
14917
14918	var buff [1024]byte
14919	ringBuffer := smithyio.NewRingBuffer(buff[:])
14920
14921	body := io.TeeReader(errorBody, ringBuffer)
14922	decoder := json.NewDecoder(body)
14923	decoder.UseNumber()
14924	code, message, err := restjson.GetErrorInfo(decoder)
14925	if err != nil {
14926		var snapshot bytes.Buffer
14927		io.Copy(&snapshot, ringBuffer)
14928		err = &smithy.DeserializationError{
14929			Err:      fmt.Errorf("failed to decode response body, %w", err),
14930			Snapshot: snapshot.Bytes(),
14931		}
14932		return err
14933	}
14934
14935	errorBody.Seek(0, io.SeekStart)
14936	if len(code) != 0 {
14937		errorCode = restjson.SanitizeErrorCode(code)
14938	}
14939	if len(message) != 0 {
14940		errorMessage = message
14941	}
14942
14943	switch {
14944	case strings.EqualFold("BadRequestException", errorCode):
14945		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
14946
14947	case strings.EqualFold("ForbiddenException", errorCode):
14948		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
14949
14950	case strings.EqualFold("NotFoundException", errorCode):
14951		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
14952
14953	case strings.EqualFold("ServiceFailureException", errorCode):
14954		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
14955
14956	case strings.EqualFold("ServiceUnavailableException", errorCode):
14957		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
14958
14959	case strings.EqualFold("ThrottledClientException", errorCode):
14960		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
14961
14962	case strings.EqualFold("UnauthorizedClientException", errorCode):
14963		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
14964
14965	default:
14966		genericError := &smithy.GenericAPIError{
14967			Code:    errorCode,
14968			Message: errorMessage,
14969		}
14970		return genericError
14971
14972	}
14973}
14974
14975func awsRestjson1_deserializeOpDocumentGetVoiceConnectorOriginationOutput(v **GetVoiceConnectorOriginationOutput, value interface{}) error {
14976	if v == nil {
14977		return fmt.Errorf("unexpected nil of type %T", v)
14978	}
14979	if value == nil {
14980		return nil
14981	}
14982
14983	shape, ok := value.(map[string]interface{})
14984	if !ok {
14985		return fmt.Errorf("unexpected JSON type %v", value)
14986	}
14987
14988	var sv *GetVoiceConnectorOriginationOutput
14989	if *v == nil {
14990		sv = &GetVoiceConnectorOriginationOutput{}
14991	} else {
14992		sv = *v
14993	}
14994
14995	for key, value := range shape {
14996		switch key {
14997		case "Origination":
14998			if err := awsRestjson1_deserializeDocumentOrigination(&sv.Origination, value); err != nil {
14999				return err
15000			}
15001
15002		default:
15003			_, _ = key, value
15004
15005		}
15006	}
15007	*v = sv
15008	return nil
15009}
15010
15011type awsRestjson1_deserializeOpGetVoiceConnectorProxy struct {
15012}
15013
15014func (*awsRestjson1_deserializeOpGetVoiceConnectorProxy) ID() string {
15015	return "OperationDeserializer"
15016}
15017
15018func (m *awsRestjson1_deserializeOpGetVoiceConnectorProxy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15019	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15020) {
15021	out, metadata, err = next.HandleDeserialize(ctx, in)
15022	if err != nil {
15023		return out, metadata, err
15024	}
15025
15026	response, ok := out.RawResponse.(*smithyhttp.Response)
15027	if !ok {
15028		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15029	}
15030
15031	if response.StatusCode < 200 || response.StatusCode >= 300 {
15032		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorProxy(response, &metadata)
15033	}
15034	output := &GetVoiceConnectorProxyOutput{}
15035	out.Result = output
15036
15037	var buff [1024]byte
15038	ringBuffer := smithyio.NewRingBuffer(buff[:])
15039
15040	body := io.TeeReader(response.Body, ringBuffer)
15041
15042	decoder := json.NewDecoder(body)
15043	decoder.UseNumber()
15044	var shape interface{}
15045	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15046		var snapshot bytes.Buffer
15047		io.Copy(&snapshot, ringBuffer)
15048		err = &smithy.DeserializationError{
15049			Err:      fmt.Errorf("failed to decode response body, %w", err),
15050			Snapshot: snapshot.Bytes(),
15051		}
15052		return out, metadata, err
15053	}
15054
15055	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorProxyOutput(&output, shape)
15056	if err != nil {
15057		var snapshot bytes.Buffer
15058		io.Copy(&snapshot, ringBuffer)
15059		return out, metadata, &smithy.DeserializationError{
15060			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15061			Snapshot: snapshot.Bytes(),
15062		}
15063	}
15064
15065	return out, metadata, err
15066}
15067
15068func awsRestjson1_deserializeOpErrorGetVoiceConnectorProxy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15069	var errorBuffer bytes.Buffer
15070	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15071		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15072	}
15073	errorBody := bytes.NewReader(errorBuffer.Bytes())
15074
15075	errorCode := "UnknownError"
15076	errorMessage := errorCode
15077
15078	code := response.Header.Get("X-Amzn-ErrorType")
15079	if len(code) != 0 {
15080		errorCode = restjson.SanitizeErrorCode(code)
15081	}
15082
15083	var buff [1024]byte
15084	ringBuffer := smithyio.NewRingBuffer(buff[:])
15085
15086	body := io.TeeReader(errorBody, ringBuffer)
15087	decoder := json.NewDecoder(body)
15088	decoder.UseNumber()
15089	code, message, err := restjson.GetErrorInfo(decoder)
15090	if err != nil {
15091		var snapshot bytes.Buffer
15092		io.Copy(&snapshot, ringBuffer)
15093		err = &smithy.DeserializationError{
15094			Err:      fmt.Errorf("failed to decode response body, %w", err),
15095			Snapshot: snapshot.Bytes(),
15096		}
15097		return err
15098	}
15099
15100	errorBody.Seek(0, io.SeekStart)
15101	if len(code) != 0 {
15102		errorCode = restjson.SanitizeErrorCode(code)
15103	}
15104	if len(message) != 0 {
15105		errorMessage = message
15106	}
15107
15108	switch {
15109	case strings.EqualFold("BadRequestException", errorCode):
15110		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15111
15112	case strings.EqualFold("ForbiddenException", errorCode):
15113		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15114
15115	case strings.EqualFold("NotFoundException", errorCode):
15116		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15117
15118	case strings.EqualFold("ServiceFailureException", errorCode):
15119		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15120
15121	case strings.EqualFold("ServiceUnavailableException", errorCode):
15122		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15123
15124	case strings.EqualFold("ThrottledClientException", errorCode):
15125		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15126
15127	case strings.EqualFold("UnauthorizedClientException", errorCode):
15128		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15129
15130	default:
15131		genericError := &smithy.GenericAPIError{
15132			Code:    errorCode,
15133			Message: errorMessage,
15134		}
15135		return genericError
15136
15137	}
15138}
15139
15140func awsRestjson1_deserializeOpDocumentGetVoiceConnectorProxyOutput(v **GetVoiceConnectorProxyOutput, value interface{}) error {
15141	if v == nil {
15142		return fmt.Errorf("unexpected nil of type %T", v)
15143	}
15144	if value == nil {
15145		return nil
15146	}
15147
15148	shape, ok := value.(map[string]interface{})
15149	if !ok {
15150		return fmt.Errorf("unexpected JSON type %v", value)
15151	}
15152
15153	var sv *GetVoiceConnectorProxyOutput
15154	if *v == nil {
15155		sv = &GetVoiceConnectorProxyOutput{}
15156	} else {
15157		sv = *v
15158	}
15159
15160	for key, value := range shape {
15161		switch key {
15162		case "Proxy":
15163			if err := awsRestjson1_deserializeDocumentProxy(&sv.Proxy, value); err != nil {
15164				return err
15165			}
15166
15167		default:
15168			_, _ = key, value
15169
15170		}
15171	}
15172	*v = sv
15173	return nil
15174}
15175
15176type awsRestjson1_deserializeOpGetVoiceConnectorStreamingConfiguration struct {
15177}
15178
15179func (*awsRestjson1_deserializeOpGetVoiceConnectorStreamingConfiguration) ID() string {
15180	return "OperationDeserializer"
15181}
15182
15183func (m *awsRestjson1_deserializeOpGetVoiceConnectorStreamingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15184	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15185) {
15186	out, metadata, err = next.HandleDeserialize(ctx, in)
15187	if err != nil {
15188		return out, metadata, err
15189	}
15190
15191	response, ok := out.RawResponse.(*smithyhttp.Response)
15192	if !ok {
15193		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15194	}
15195
15196	if response.StatusCode < 200 || response.StatusCode >= 300 {
15197		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorStreamingConfiguration(response, &metadata)
15198	}
15199	output := &GetVoiceConnectorStreamingConfigurationOutput{}
15200	out.Result = output
15201
15202	var buff [1024]byte
15203	ringBuffer := smithyio.NewRingBuffer(buff[:])
15204
15205	body := io.TeeReader(response.Body, ringBuffer)
15206
15207	decoder := json.NewDecoder(body)
15208	decoder.UseNumber()
15209	var shape interface{}
15210	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15211		var snapshot bytes.Buffer
15212		io.Copy(&snapshot, ringBuffer)
15213		err = &smithy.DeserializationError{
15214			Err:      fmt.Errorf("failed to decode response body, %w", err),
15215			Snapshot: snapshot.Bytes(),
15216		}
15217		return out, metadata, err
15218	}
15219
15220	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorStreamingConfigurationOutput(&output, shape)
15221	if err != nil {
15222		var snapshot bytes.Buffer
15223		io.Copy(&snapshot, ringBuffer)
15224		return out, metadata, &smithy.DeserializationError{
15225			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15226			Snapshot: snapshot.Bytes(),
15227		}
15228	}
15229
15230	return out, metadata, err
15231}
15232
15233func awsRestjson1_deserializeOpErrorGetVoiceConnectorStreamingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15234	var errorBuffer bytes.Buffer
15235	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15236		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15237	}
15238	errorBody := bytes.NewReader(errorBuffer.Bytes())
15239
15240	errorCode := "UnknownError"
15241	errorMessage := errorCode
15242
15243	code := response.Header.Get("X-Amzn-ErrorType")
15244	if len(code) != 0 {
15245		errorCode = restjson.SanitizeErrorCode(code)
15246	}
15247
15248	var buff [1024]byte
15249	ringBuffer := smithyio.NewRingBuffer(buff[:])
15250
15251	body := io.TeeReader(errorBody, ringBuffer)
15252	decoder := json.NewDecoder(body)
15253	decoder.UseNumber()
15254	code, message, err := restjson.GetErrorInfo(decoder)
15255	if err != nil {
15256		var snapshot bytes.Buffer
15257		io.Copy(&snapshot, ringBuffer)
15258		err = &smithy.DeserializationError{
15259			Err:      fmt.Errorf("failed to decode response body, %w", err),
15260			Snapshot: snapshot.Bytes(),
15261		}
15262		return err
15263	}
15264
15265	errorBody.Seek(0, io.SeekStart)
15266	if len(code) != 0 {
15267		errorCode = restjson.SanitizeErrorCode(code)
15268	}
15269	if len(message) != 0 {
15270		errorMessage = message
15271	}
15272
15273	switch {
15274	case strings.EqualFold("BadRequestException", errorCode):
15275		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15276
15277	case strings.EqualFold("ForbiddenException", errorCode):
15278		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15279
15280	case strings.EqualFold("NotFoundException", errorCode):
15281		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15282
15283	case strings.EqualFold("ServiceFailureException", errorCode):
15284		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15285
15286	case strings.EqualFold("ServiceUnavailableException", errorCode):
15287		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15288
15289	case strings.EqualFold("ThrottledClientException", errorCode):
15290		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15291
15292	case strings.EqualFold("UnauthorizedClientException", errorCode):
15293		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15294
15295	default:
15296		genericError := &smithy.GenericAPIError{
15297			Code:    errorCode,
15298			Message: errorMessage,
15299		}
15300		return genericError
15301
15302	}
15303}
15304
15305func awsRestjson1_deserializeOpDocumentGetVoiceConnectorStreamingConfigurationOutput(v **GetVoiceConnectorStreamingConfigurationOutput, value interface{}) error {
15306	if v == nil {
15307		return fmt.Errorf("unexpected nil of type %T", v)
15308	}
15309	if value == nil {
15310		return nil
15311	}
15312
15313	shape, ok := value.(map[string]interface{})
15314	if !ok {
15315		return fmt.Errorf("unexpected JSON type %v", value)
15316	}
15317
15318	var sv *GetVoiceConnectorStreamingConfigurationOutput
15319	if *v == nil {
15320		sv = &GetVoiceConnectorStreamingConfigurationOutput{}
15321	} else {
15322		sv = *v
15323	}
15324
15325	for key, value := range shape {
15326		switch key {
15327		case "StreamingConfiguration":
15328			if err := awsRestjson1_deserializeDocumentStreamingConfiguration(&sv.StreamingConfiguration, value); err != nil {
15329				return err
15330			}
15331
15332		default:
15333			_, _ = key, value
15334
15335		}
15336	}
15337	*v = sv
15338	return nil
15339}
15340
15341type awsRestjson1_deserializeOpGetVoiceConnectorTermination struct {
15342}
15343
15344func (*awsRestjson1_deserializeOpGetVoiceConnectorTermination) ID() string {
15345	return "OperationDeserializer"
15346}
15347
15348func (m *awsRestjson1_deserializeOpGetVoiceConnectorTermination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15349	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15350) {
15351	out, metadata, err = next.HandleDeserialize(ctx, in)
15352	if err != nil {
15353		return out, metadata, err
15354	}
15355
15356	response, ok := out.RawResponse.(*smithyhttp.Response)
15357	if !ok {
15358		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15359	}
15360
15361	if response.StatusCode < 200 || response.StatusCode >= 300 {
15362		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorTermination(response, &metadata)
15363	}
15364	output := &GetVoiceConnectorTerminationOutput{}
15365	out.Result = output
15366
15367	var buff [1024]byte
15368	ringBuffer := smithyio.NewRingBuffer(buff[:])
15369
15370	body := io.TeeReader(response.Body, ringBuffer)
15371
15372	decoder := json.NewDecoder(body)
15373	decoder.UseNumber()
15374	var shape interface{}
15375	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15376		var snapshot bytes.Buffer
15377		io.Copy(&snapshot, ringBuffer)
15378		err = &smithy.DeserializationError{
15379			Err:      fmt.Errorf("failed to decode response body, %w", err),
15380			Snapshot: snapshot.Bytes(),
15381		}
15382		return out, metadata, err
15383	}
15384
15385	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationOutput(&output, shape)
15386	if err != nil {
15387		var snapshot bytes.Buffer
15388		io.Copy(&snapshot, ringBuffer)
15389		return out, metadata, &smithy.DeserializationError{
15390			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15391			Snapshot: snapshot.Bytes(),
15392		}
15393	}
15394
15395	return out, metadata, err
15396}
15397
15398func awsRestjson1_deserializeOpErrorGetVoiceConnectorTermination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15399	var errorBuffer bytes.Buffer
15400	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15401		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15402	}
15403	errorBody := bytes.NewReader(errorBuffer.Bytes())
15404
15405	errorCode := "UnknownError"
15406	errorMessage := errorCode
15407
15408	code := response.Header.Get("X-Amzn-ErrorType")
15409	if len(code) != 0 {
15410		errorCode = restjson.SanitizeErrorCode(code)
15411	}
15412
15413	var buff [1024]byte
15414	ringBuffer := smithyio.NewRingBuffer(buff[:])
15415
15416	body := io.TeeReader(errorBody, ringBuffer)
15417	decoder := json.NewDecoder(body)
15418	decoder.UseNumber()
15419	code, message, err := restjson.GetErrorInfo(decoder)
15420	if err != nil {
15421		var snapshot bytes.Buffer
15422		io.Copy(&snapshot, ringBuffer)
15423		err = &smithy.DeserializationError{
15424			Err:      fmt.Errorf("failed to decode response body, %w", err),
15425			Snapshot: snapshot.Bytes(),
15426		}
15427		return err
15428	}
15429
15430	errorBody.Seek(0, io.SeekStart)
15431	if len(code) != 0 {
15432		errorCode = restjson.SanitizeErrorCode(code)
15433	}
15434	if len(message) != 0 {
15435		errorMessage = message
15436	}
15437
15438	switch {
15439	case strings.EqualFold("BadRequestException", errorCode):
15440		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15441
15442	case strings.EqualFold("ForbiddenException", errorCode):
15443		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15444
15445	case strings.EqualFold("NotFoundException", errorCode):
15446		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15447
15448	case strings.EqualFold("ServiceFailureException", errorCode):
15449		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15450
15451	case strings.EqualFold("ServiceUnavailableException", errorCode):
15452		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15453
15454	case strings.EqualFold("ThrottledClientException", errorCode):
15455		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15456
15457	case strings.EqualFold("UnauthorizedClientException", errorCode):
15458		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15459
15460	default:
15461		genericError := &smithy.GenericAPIError{
15462			Code:    errorCode,
15463			Message: errorMessage,
15464		}
15465		return genericError
15466
15467	}
15468}
15469
15470func awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationOutput(v **GetVoiceConnectorTerminationOutput, value interface{}) error {
15471	if v == nil {
15472		return fmt.Errorf("unexpected nil of type %T", v)
15473	}
15474	if value == nil {
15475		return nil
15476	}
15477
15478	shape, ok := value.(map[string]interface{})
15479	if !ok {
15480		return fmt.Errorf("unexpected JSON type %v", value)
15481	}
15482
15483	var sv *GetVoiceConnectorTerminationOutput
15484	if *v == nil {
15485		sv = &GetVoiceConnectorTerminationOutput{}
15486	} else {
15487		sv = *v
15488	}
15489
15490	for key, value := range shape {
15491		switch key {
15492		case "Termination":
15493			if err := awsRestjson1_deserializeDocumentTermination(&sv.Termination, value); err != nil {
15494				return err
15495			}
15496
15497		default:
15498			_, _ = key, value
15499
15500		}
15501	}
15502	*v = sv
15503	return nil
15504}
15505
15506type awsRestjson1_deserializeOpGetVoiceConnectorTerminationHealth struct {
15507}
15508
15509func (*awsRestjson1_deserializeOpGetVoiceConnectorTerminationHealth) ID() string {
15510	return "OperationDeserializer"
15511}
15512
15513func (m *awsRestjson1_deserializeOpGetVoiceConnectorTerminationHealth) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15514	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15515) {
15516	out, metadata, err = next.HandleDeserialize(ctx, in)
15517	if err != nil {
15518		return out, metadata, err
15519	}
15520
15521	response, ok := out.RawResponse.(*smithyhttp.Response)
15522	if !ok {
15523		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15524	}
15525
15526	if response.StatusCode < 200 || response.StatusCode >= 300 {
15527		return out, metadata, awsRestjson1_deserializeOpErrorGetVoiceConnectorTerminationHealth(response, &metadata)
15528	}
15529	output := &GetVoiceConnectorTerminationHealthOutput{}
15530	out.Result = output
15531
15532	var buff [1024]byte
15533	ringBuffer := smithyio.NewRingBuffer(buff[:])
15534
15535	body := io.TeeReader(response.Body, ringBuffer)
15536
15537	decoder := json.NewDecoder(body)
15538	decoder.UseNumber()
15539	var shape interface{}
15540	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15541		var snapshot bytes.Buffer
15542		io.Copy(&snapshot, ringBuffer)
15543		err = &smithy.DeserializationError{
15544			Err:      fmt.Errorf("failed to decode response body, %w", err),
15545			Snapshot: snapshot.Bytes(),
15546		}
15547		return out, metadata, err
15548	}
15549
15550	err = awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationHealthOutput(&output, shape)
15551	if err != nil {
15552		var snapshot bytes.Buffer
15553		io.Copy(&snapshot, ringBuffer)
15554		return out, metadata, &smithy.DeserializationError{
15555			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15556			Snapshot: snapshot.Bytes(),
15557		}
15558	}
15559
15560	return out, metadata, err
15561}
15562
15563func awsRestjson1_deserializeOpErrorGetVoiceConnectorTerminationHealth(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15564	var errorBuffer bytes.Buffer
15565	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15566		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15567	}
15568	errorBody := bytes.NewReader(errorBuffer.Bytes())
15569
15570	errorCode := "UnknownError"
15571	errorMessage := errorCode
15572
15573	code := response.Header.Get("X-Amzn-ErrorType")
15574	if len(code) != 0 {
15575		errorCode = restjson.SanitizeErrorCode(code)
15576	}
15577
15578	var buff [1024]byte
15579	ringBuffer := smithyio.NewRingBuffer(buff[:])
15580
15581	body := io.TeeReader(errorBody, ringBuffer)
15582	decoder := json.NewDecoder(body)
15583	decoder.UseNumber()
15584	code, message, err := restjson.GetErrorInfo(decoder)
15585	if err != nil {
15586		var snapshot bytes.Buffer
15587		io.Copy(&snapshot, ringBuffer)
15588		err = &smithy.DeserializationError{
15589			Err:      fmt.Errorf("failed to decode response body, %w", err),
15590			Snapshot: snapshot.Bytes(),
15591		}
15592		return err
15593	}
15594
15595	errorBody.Seek(0, io.SeekStart)
15596	if len(code) != 0 {
15597		errorCode = restjson.SanitizeErrorCode(code)
15598	}
15599	if len(message) != 0 {
15600		errorMessage = message
15601	}
15602
15603	switch {
15604	case strings.EqualFold("BadRequestException", errorCode):
15605		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15606
15607	case strings.EqualFold("ForbiddenException", errorCode):
15608		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15609
15610	case strings.EqualFold("NotFoundException", errorCode):
15611		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15612
15613	case strings.EqualFold("ServiceFailureException", errorCode):
15614		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15615
15616	case strings.EqualFold("ServiceUnavailableException", errorCode):
15617		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15618
15619	case strings.EqualFold("ThrottledClientException", errorCode):
15620		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15621
15622	case strings.EqualFold("UnauthorizedClientException", errorCode):
15623		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15624
15625	default:
15626		genericError := &smithy.GenericAPIError{
15627			Code:    errorCode,
15628			Message: errorMessage,
15629		}
15630		return genericError
15631
15632	}
15633}
15634
15635func awsRestjson1_deserializeOpDocumentGetVoiceConnectorTerminationHealthOutput(v **GetVoiceConnectorTerminationHealthOutput, value interface{}) error {
15636	if v == nil {
15637		return fmt.Errorf("unexpected nil of type %T", v)
15638	}
15639	if value == nil {
15640		return nil
15641	}
15642
15643	shape, ok := value.(map[string]interface{})
15644	if !ok {
15645		return fmt.Errorf("unexpected JSON type %v", value)
15646	}
15647
15648	var sv *GetVoiceConnectorTerminationHealthOutput
15649	if *v == nil {
15650		sv = &GetVoiceConnectorTerminationHealthOutput{}
15651	} else {
15652		sv = *v
15653	}
15654
15655	for key, value := range shape {
15656		switch key {
15657		case "TerminationHealth":
15658			if err := awsRestjson1_deserializeDocumentTerminationHealth(&sv.TerminationHealth, value); err != nil {
15659				return err
15660			}
15661
15662		default:
15663			_, _ = key, value
15664
15665		}
15666	}
15667	*v = sv
15668	return nil
15669}
15670
15671type awsRestjson1_deserializeOpInviteUsers struct {
15672}
15673
15674func (*awsRestjson1_deserializeOpInviteUsers) ID() string {
15675	return "OperationDeserializer"
15676}
15677
15678func (m *awsRestjson1_deserializeOpInviteUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15679	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15680) {
15681	out, metadata, err = next.HandleDeserialize(ctx, in)
15682	if err != nil {
15683		return out, metadata, err
15684	}
15685
15686	response, ok := out.RawResponse.(*smithyhttp.Response)
15687	if !ok {
15688		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15689	}
15690
15691	if response.StatusCode < 200 || response.StatusCode >= 300 {
15692		return out, metadata, awsRestjson1_deserializeOpErrorInviteUsers(response, &metadata)
15693	}
15694	output := &InviteUsersOutput{}
15695	out.Result = output
15696
15697	var buff [1024]byte
15698	ringBuffer := smithyio.NewRingBuffer(buff[:])
15699
15700	body := io.TeeReader(response.Body, ringBuffer)
15701
15702	decoder := json.NewDecoder(body)
15703	decoder.UseNumber()
15704	var shape interface{}
15705	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15706		var snapshot bytes.Buffer
15707		io.Copy(&snapshot, ringBuffer)
15708		err = &smithy.DeserializationError{
15709			Err:      fmt.Errorf("failed to decode response body, %w", err),
15710			Snapshot: snapshot.Bytes(),
15711		}
15712		return out, metadata, err
15713	}
15714
15715	err = awsRestjson1_deserializeOpDocumentInviteUsersOutput(&output, shape)
15716	if err != nil {
15717		var snapshot bytes.Buffer
15718		io.Copy(&snapshot, ringBuffer)
15719		return out, metadata, &smithy.DeserializationError{
15720			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15721			Snapshot: snapshot.Bytes(),
15722		}
15723	}
15724
15725	return out, metadata, err
15726}
15727
15728func awsRestjson1_deserializeOpErrorInviteUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15729	var errorBuffer bytes.Buffer
15730	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15731		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15732	}
15733	errorBody := bytes.NewReader(errorBuffer.Bytes())
15734
15735	errorCode := "UnknownError"
15736	errorMessage := errorCode
15737
15738	code := response.Header.Get("X-Amzn-ErrorType")
15739	if len(code) != 0 {
15740		errorCode = restjson.SanitizeErrorCode(code)
15741	}
15742
15743	var buff [1024]byte
15744	ringBuffer := smithyio.NewRingBuffer(buff[:])
15745
15746	body := io.TeeReader(errorBody, ringBuffer)
15747	decoder := json.NewDecoder(body)
15748	decoder.UseNumber()
15749	code, message, err := restjson.GetErrorInfo(decoder)
15750	if err != nil {
15751		var snapshot bytes.Buffer
15752		io.Copy(&snapshot, ringBuffer)
15753		err = &smithy.DeserializationError{
15754			Err:      fmt.Errorf("failed to decode response body, %w", err),
15755			Snapshot: snapshot.Bytes(),
15756		}
15757		return err
15758	}
15759
15760	errorBody.Seek(0, io.SeekStart)
15761	if len(code) != 0 {
15762		errorCode = restjson.SanitizeErrorCode(code)
15763	}
15764	if len(message) != 0 {
15765		errorMessage = message
15766	}
15767
15768	switch {
15769	case strings.EqualFold("BadRequestException", errorCode):
15770		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15771
15772	case strings.EqualFold("ForbiddenException", errorCode):
15773		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15774
15775	case strings.EqualFold("NotFoundException", errorCode):
15776		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15777
15778	case strings.EqualFold("ServiceFailureException", errorCode):
15779		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15780
15781	case strings.EqualFold("ServiceUnavailableException", errorCode):
15782		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15783
15784	case strings.EqualFold("ThrottledClientException", errorCode):
15785		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15786
15787	case strings.EqualFold("UnauthorizedClientException", errorCode):
15788		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15789
15790	default:
15791		genericError := &smithy.GenericAPIError{
15792			Code:    errorCode,
15793			Message: errorMessage,
15794		}
15795		return genericError
15796
15797	}
15798}
15799
15800func awsRestjson1_deserializeOpDocumentInviteUsersOutput(v **InviteUsersOutput, value interface{}) error {
15801	if v == nil {
15802		return fmt.Errorf("unexpected nil of type %T", v)
15803	}
15804	if value == nil {
15805		return nil
15806	}
15807
15808	shape, ok := value.(map[string]interface{})
15809	if !ok {
15810		return fmt.Errorf("unexpected JSON type %v", value)
15811	}
15812
15813	var sv *InviteUsersOutput
15814	if *v == nil {
15815		sv = &InviteUsersOutput{}
15816	} else {
15817		sv = *v
15818	}
15819
15820	for key, value := range shape {
15821		switch key {
15822		case "Invites":
15823			if err := awsRestjson1_deserializeDocumentInviteList(&sv.Invites, value); err != nil {
15824				return err
15825			}
15826
15827		default:
15828			_, _ = key, value
15829
15830		}
15831	}
15832	*v = sv
15833	return nil
15834}
15835
15836type awsRestjson1_deserializeOpListAccounts struct {
15837}
15838
15839func (*awsRestjson1_deserializeOpListAccounts) ID() string {
15840	return "OperationDeserializer"
15841}
15842
15843func (m *awsRestjson1_deserializeOpListAccounts) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
15844	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
15845) {
15846	out, metadata, err = next.HandleDeserialize(ctx, in)
15847	if err != nil {
15848		return out, metadata, err
15849	}
15850
15851	response, ok := out.RawResponse.(*smithyhttp.Response)
15852	if !ok {
15853		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
15854	}
15855
15856	if response.StatusCode < 200 || response.StatusCode >= 300 {
15857		return out, metadata, awsRestjson1_deserializeOpErrorListAccounts(response, &metadata)
15858	}
15859	output := &ListAccountsOutput{}
15860	out.Result = output
15861
15862	var buff [1024]byte
15863	ringBuffer := smithyio.NewRingBuffer(buff[:])
15864
15865	body := io.TeeReader(response.Body, ringBuffer)
15866
15867	decoder := json.NewDecoder(body)
15868	decoder.UseNumber()
15869	var shape interface{}
15870	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
15871		var snapshot bytes.Buffer
15872		io.Copy(&snapshot, ringBuffer)
15873		err = &smithy.DeserializationError{
15874			Err:      fmt.Errorf("failed to decode response body, %w", err),
15875			Snapshot: snapshot.Bytes(),
15876		}
15877		return out, metadata, err
15878	}
15879
15880	err = awsRestjson1_deserializeOpDocumentListAccountsOutput(&output, shape)
15881	if err != nil {
15882		var snapshot bytes.Buffer
15883		io.Copy(&snapshot, ringBuffer)
15884		return out, metadata, &smithy.DeserializationError{
15885			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
15886			Snapshot: snapshot.Bytes(),
15887		}
15888	}
15889
15890	return out, metadata, err
15891}
15892
15893func awsRestjson1_deserializeOpErrorListAccounts(response *smithyhttp.Response, metadata *middleware.Metadata) error {
15894	var errorBuffer bytes.Buffer
15895	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
15896		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
15897	}
15898	errorBody := bytes.NewReader(errorBuffer.Bytes())
15899
15900	errorCode := "UnknownError"
15901	errorMessage := errorCode
15902
15903	code := response.Header.Get("X-Amzn-ErrorType")
15904	if len(code) != 0 {
15905		errorCode = restjson.SanitizeErrorCode(code)
15906	}
15907
15908	var buff [1024]byte
15909	ringBuffer := smithyio.NewRingBuffer(buff[:])
15910
15911	body := io.TeeReader(errorBody, ringBuffer)
15912	decoder := json.NewDecoder(body)
15913	decoder.UseNumber()
15914	code, message, err := restjson.GetErrorInfo(decoder)
15915	if err != nil {
15916		var snapshot bytes.Buffer
15917		io.Copy(&snapshot, ringBuffer)
15918		err = &smithy.DeserializationError{
15919			Err:      fmt.Errorf("failed to decode response body, %w", err),
15920			Snapshot: snapshot.Bytes(),
15921		}
15922		return err
15923	}
15924
15925	errorBody.Seek(0, io.SeekStart)
15926	if len(code) != 0 {
15927		errorCode = restjson.SanitizeErrorCode(code)
15928	}
15929	if len(message) != 0 {
15930		errorMessage = message
15931	}
15932
15933	switch {
15934	case strings.EqualFold("BadRequestException", errorCode):
15935		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
15936
15937	case strings.EqualFold("ForbiddenException", errorCode):
15938		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
15939
15940	case strings.EqualFold("NotFoundException", errorCode):
15941		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
15942
15943	case strings.EqualFold("ServiceFailureException", errorCode):
15944		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
15945
15946	case strings.EqualFold("ServiceUnavailableException", errorCode):
15947		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
15948
15949	case strings.EqualFold("ThrottledClientException", errorCode):
15950		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
15951
15952	case strings.EqualFold("UnauthorizedClientException", errorCode):
15953		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
15954
15955	default:
15956		genericError := &smithy.GenericAPIError{
15957			Code:    errorCode,
15958			Message: errorMessage,
15959		}
15960		return genericError
15961
15962	}
15963}
15964
15965func awsRestjson1_deserializeOpDocumentListAccountsOutput(v **ListAccountsOutput, value interface{}) error {
15966	if v == nil {
15967		return fmt.Errorf("unexpected nil of type %T", v)
15968	}
15969	if value == nil {
15970		return nil
15971	}
15972
15973	shape, ok := value.(map[string]interface{})
15974	if !ok {
15975		return fmt.Errorf("unexpected JSON type %v", value)
15976	}
15977
15978	var sv *ListAccountsOutput
15979	if *v == nil {
15980		sv = &ListAccountsOutput{}
15981	} else {
15982		sv = *v
15983	}
15984
15985	for key, value := range shape {
15986		switch key {
15987		case "Accounts":
15988			if err := awsRestjson1_deserializeDocumentAccountList(&sv.Accounts, value); err != nil {
15989				return err
15990			}
15991
15992		case "NextToken":
15993			if value != nil {
15994				jtv, ok := value.(string)
15995				if !ok {
15996					return fmt.Errorf("expected String to be of type string, got %T instead", value)
15997				}
15998				sv.NextToken = ptr.String(jtv)
15999			}
16000
16001		default:
16002			_, _ = key, value
16003
16004		}
16005	}
16006	*v = sv
16007	return nil
16008}
16009
16010type awsRestjson1_deserializeOpListAppInstanceAdmins struct {
16011}
16012
16013func (*awsRestjson1_deserializeOpListAppInstanceAdmins) ID() string {
16014	return "OperationDeserializer"
16015}
16016
16017func (m *awsRestjson1_deserializeOpListAppInstanceAdmins) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16018	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16019) {
16020	out, metadata, err = next.HandleDeserialize(ctx, in)
16021	if err != nil {
16022		return out, metadata, err
16023	}
16024
16025	response, ok := out.RawResponse.(*smithyhttp.Response)
16026	if !ok {
16027		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16028	}
16029
16030	if response.StatusCode < 200 || response.StatusCode >= 300 {
16031		return out, metadata, awsRestjson1_deserializeOpErrorListAppInstanceAdmins(response, &metadata)
16032	}
16033	output := &ListAppInstanceAdminsOutput{}
16034	out.Result = output
16035
16036	var buff [1024]byte
16037	ringBuffer := smithyio.NewRingBuffer(buff[:])
16038
16039	body := io.TeeReader(response.Body, ringBuffer)
16040
16041	decoder := json.NewDecoder(body)
16042	decoder.UseNumber()
16043	var shape interface{}
16044	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16045		var snapshot bytes.Buffer
16046		io.Copy(&snapshot, ringBuffer)
16047		err = &smithy.DeserializationError{
16048			Err:      fmt.Errorf("failed to decode response body, %w", err),
16049			Snapshot: snapshot.Bytes(),
16050		}
16051		return out, metadata, err
16052	}
16053
16054	err = awsRestjson1_deserializeOpDocumentListAppInstanceAdminsOutput(&output, shape)
16055	if err != nil {
16056		var snapshot bytes.Buffer
16057		io.Copy(&snapshot, ringBuffer)
16058		return out, metadata, &smithy.DeserializationError{
16059			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16060			Snapshot: snapshot.Bytes(),
16061		}
16062	}
16063
16064	return out, metadata, err
16065}
16066
16067func awsRestjson1_deserializeOpErrorListAppInstanceAdmins(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16068	var errorBuffer bytes.Buffer
16069	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16070		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16071	}
16072	errorBody := bytes.NewReader(errorBuffer.Bytes())
16073
16074	errorCode := "UnknownError"
16075	errorMessage := errorCode
16076
16077	code := response.Header.Get("X-Amzn-ErrorType")
16078	if len(code) != 0 {
16079		errorCode = restjson.SanitizeErrorCode(code)
16080	}
16081
16082	var buff [1024]byte
16083	ringBuffer := smithyio.NewRingBuffer(buff[:])
16084
16085	body := io.TeeReader(errorBody, ringBuffer)
16086	decoder := json.NewDecoder(body)
16087	decoder.UseNumber()
16088	code, message, err := restjson.GetErrorInfo(decoder)
16089	if err != nil {
16090		var snapshot bytes.Buffer
16091		io.Copy(&snapshot, ringBuffer)
16092		err = &smithy.DeserializationError{
16093			Err:      fmt.Errorf("failed to decode response body, %w", err),
16094			Snapshot: snapshot.Bytes(),
16095		}
16096		return err
16097	}
16098
16099	errorBody.Seek(0, io.SeekStart)
16100	if len(code) != 0 {
16101		errorCode = restjson.SanitizeErrorCode(code)
16102	}
16103	if len(message) != 0 {
16104		errorMessage = message
16105	}
16106
16107	switch {
16108	case strings.EqualFold("BadRequestException", errorCode):
16109		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16110
16111	case strings.EqualFold("ForbiddenException", errorCode):
16112		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16113
16114	case strings.EqualFold("ResourceLimitExceededException", errorCode):
16115		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
16116
16117	case strings.EqualFold("ServiceFailureException", errorCode):
16118		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16119
16120	case strings.EqualFold("ServiceUnavailableException", errorCode):
16121		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16122
16123	case strings.EqualFold("ThrottledClientException", errorCode):
16124		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16125
16126	case strings.EqualFold("UnauthorizedClientException", errorCode):
16127		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16128
16129	default:
16130		genericError := &smithy.GenericAPIError{
16131			Code:    errorCode,
16132			Message: errorMessage,
16133		}
16134		return genericError
16135
16136	}
16137}
16138
16139func awsRestjson1_deserializeOpDocumentListAppInstanceAdminsOutput(v **ListAppInstanceAdminsOutput, value interface{}) error {
16140	if v == nil {
16141		return fmt.Errorf("unexpected nil of type %T", v)
16142	}
16143	if value == nil {
16144		return nil
16145	}
16146
16147	shape, ok := value.(map[string]interface{})
16148	if !ok {
16149		return fmt.Errorf("unexpected JSON type %v", value)
16150	}
16151
16152	var sv *ListAppInstanceAdminsOutput
16153	if *v == nil {
16154		sv = &ListAppInstanceAdminsOutput{}
16155	} else {
16156		sv = *v
16157	}
16158
16159	for key, value := range shape {
16160		switch key {
16161		case "AppInstanceAdmins":
16162			if err := awsRestjson1_deserializeDocumentAppInstanceAdminList(&sv.AppInstanceAdmins, value); err != nil {
16163				return err
16164			}
16165
16166		case "AppInstanceArn":
16167			if value != nil {
16168				jtv, ok := value.(string)
16169				if !ok {
16170					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
16171				}
16172				sv.AppInstanceArn = ptr.String(jtv)
16173			}
16174
16175		case "NextToken":
16176			if value != nil {
16177				jtv, ok := value.(string)
16178				if !ok {
16179					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
16180				}
16181				sv.NextToken = ptr.String(jtv)
16182			}
16183
16184		default:
16185			_, _ = key, value
16186
16187		}
16188	}
16189	*v = sv
16190	return nil
16191}
16192
16193type awsRestjson1_deserializeOpListAppInstances struct {
16194}
16195
16196func (*awsRestjson1_deserializeOpListAppInstances) ID() string {
16197	return "OperationDeserializer"
16198}
16199
16200func (m *awsRestjson1_deserializeOpListAppInstances) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16201	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16202) {
16203	out, metadata, err = next.HandleDeserialize(ctx, in)
16204	if err != nil {
16205		return out, metadata, err
16206	}
16207
16208	response, ok := out.RawResponse.(*smithyhttp.Response)
16209	if !ok {
16210		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16211	}
16212
16213	if response.StatusCode < 200 || response.StatusCode >= 300 {
16214		return out, metadata, awsRestjson1_deserializeOpErrorListAppInstances(response, &metadata)
16215	}
16216	output := &ListAppInstancesOutput{}
16217	out.Result = output
16218
16219	var buff [1024]byte
16220	ringBuffer := smithyio.NewRingBuffer(buff[:])
16221
16222	body := io.TeeReader(response.Body, ringBuffer)
16223
16224	decoder := json.NewDecoder(body)
16225	decoder.UseNumber()
16226	var shape interface{}
16227	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16228		var snapshot bytes.Buffer
16229		io.Copy(&snapshot, ringBuffer)
16230		err = &smithy.DeserializationError{
16231			Err:      fmt.Errorf("failed to decode response body, %w", err),
16232			Snapshot: snapshot.Bytes(),
16233		}
16234		return out, metadata, err
16235	}
16236
16237	err = awsRestjson1_deserializeOpDocumentListAppInstancesOutput(&output, shape)
16238	if err != nil {
16239		var snapshot bytes.Buffer
16240		io.Copy(&snapshot, ringBuffer)
16241		return out, metadata, &smithy.DeserializationError{
16242			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16243			Snapshot: snapshot.Bytes(),
16244		}
16245	}
16246
16247	return out, metadata, err
16248}
16249
16250func awsRestjson1_deserializeOpErrorListAppInstances(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16251	var errorBuffer bytes.Buffer
16252	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16253		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16254	}
16255	errorBody := bytes.NewReader(errorBuffer.Bytes())
16256
16257	errorCode := "UnknownError"
16258	errorMessage := errorCode
16259
16260	code := response.Header.Get("X-Amzn-ErrorType")
16261	if len(code) != 0 {
16262		errorCode = restjson.SanitizeErrorCode(code)
16263	}
16264
16265	var buff [1024]byte
16266	ringBuffer := smithyio.NewRingBuffer(buff[:])
16267
16268	body := io.TeeReader(errorBody, ringBuffer)
16269	decoder := json.NewDecoder(body)
16270	decoder.UseNumber()
16271	code, message, err := restjson.GetErrorInfo(decoder)
16272	if err != nil {
16273		var snapshot bytes.Buffer
16274		io.Copy(&snapshot, ringBuffer)
16275		err = &smithy.DeserializationError{
16276			Err:      fmt.Errorf("failed to decode response body, %w", err),
16277			Snapshot: snapshot.Bytes(),
16278		}
16279		return err
16280	}
16281
16282	errorBody.Seek(0, io.SeekStart)
16283	if len(code) != 0 {
16284		errorCode = restjson.SanitizeErrorCode(code)
16285	}
16286	if len(message) != 0 {
16287		errorMessage = message
16288	}
16289
16290	switch {
16291	case strings.EqualFold("BadRequestException", errorCode):
16292		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16293
16294	case strings.EqualFold("ForbiddenException", errorCode):
16295		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16296
16297	case strings.EqualFold("ServiceFailureException", errorCode):
16298		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16299
16300	case strings.EqualFold("ServiceUnavailableException", errorCode):
16301		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16302
16303	case strings.EqualFold("ThrottledClientException", errorCode):
16304		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16305
16306	case strings.EqualFold("UnauthorizedClientException", errorCode):
16307		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16308
16309	default:
16310		genericError := &smithy.GenericAPIError{
16311			Code:    errorCode,
16312			Message: errorMessage,
16313		}
16314		return genericError
16315
16316	}
16317}
16318
16319func awsRestjson1_deserializeOpDocumentListAppInstancesOutput(v **ListAppInstancesOutput, value interface{}) error {
16320	if v == nil {
16321		return fmt.Errorf("unexpected nil of type %T", v)
16322	}
16323	if value == nil {
16324		return nil
16325	}
16326
16327	shape, ok := value.(map[string]interface{})
16328	if !ok {
16329		return fmt.Errorf("unexpected JSON type %v", value)
16330	}
16331
16332	var sv *ListAppInstancesOutput
16333	if *v == nil {
16334		sv = &ListAppInstancesOutput{}
16335	} else {
16336		sv = *v
16337	}
16338
16339	for key, value := range shape {
16340		switch key {
16341		case "AppInstances":
16342			if err := awsRestjson1_deserializeDocumentAppInstanceList(&sv.AppInstances, value); err != nil {
16343				return err
16344			}
16345
16346		case "NextToken":
16347			if value != nil {
16348				jtv, ok := value.(string)
16349				if !ok {
16350					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
16351				}
16352				sv.NextToken = ptr.String(jtv)
16353			}
16354
16355		default:
16356			_, _ = key, value
16357
16358		}
16359	}
16360	*v = sv
16361	return nil
16362}
16363
16364type awsRestjson1_deserializeOpListAppInstanceUsers struct {
16365}
16366
16367func (*awsRestjson1_deserializeOpListAppInstanceUsers) ID() string {
16368	return "OperationDeserializer"
16369}
16370
16371func (m *awsRestjson1_deserializeOpListAppInstanceUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16372	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16373) {
16374	out, metadata, err = next.HandleDeserialize(ctx, in)
16375	if err != nil {
16376		return out, metadata, err
16377	}
16378
16379	response, ok := out.RawResponse.(*smithyhttp.Response)
16380	if !ok {
16381		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16382	}
16383
16384	if response.StatusCode < 200 || response.StatusCode >= 300 {
16385		return out, metadata, awsRestjson1_deserializeOpErrorListAppInstanceUsers(response, &metadata)
16386	}
16387	output := &ListAppInstanceUsersOutput{}
16388	out.Result = output
16389
16390	var buff [1024]byte
16391	ringBuffer := smithyio.NewRingBuffer(buff[:])
16392
16393	body := io.TeeReader(response.Body, ringBuffer)
16394
16395	decoder := json.NewDecoder(body)
16396	decoder.UseNumber()
16397	var shape interface{}
16398	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16399		var snapshot bytes.Buffer
16400		io.Copy(&snapshot, ringBuffer)
16401		err = &smithy.DeserializationError{
16402			Err:      fmt.Errorf("failed to decode response body, %w", err),
16403			Snapshot: snapshot.Bytes(),
16404		}
16405		return out, metadata, err
16406	}
16407
16408	err = awsRestjson1_deserializeOpDocumentListAppInstanceUsersOutput(&output, shape)
16409	if err != nil {
16410		var snapshot bytes.Buffer
16411		io.Copy(&snapshot, ringBuffer)
16412		return out, metadata, &smithy.DeserializationError{
16413			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16414			Snapshot: snapshot.Bytes(),
16415		}
16416	}
16417
16418	return out, metadata, err
16419}
16420
16421func awsRestjson1_deserializeOpErrorListAppInstanceUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16422	var errorBuffer bytes.Buffer
16423	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16424		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16425	}
16426	errorBody := bytes.NewReader(errorBuffer.Bytes())
16427
16428	errorCode := "UnknownError"
16429	errorMessage := errorCode
16430
16431	code := response.Header.Get("X-Amzn-ErrorType")
16432	if len(code) != 0 {
16433		errorCode = restjson.SanitizeErrorCode(code)
16434	}
16435
16436	var buff [1024]byte
16437	ringBuffer := smithyio.NewRingBuffer(buff[:])
16438
16439	body := io.TeeReader(errorBody, ringBuffer)
16440	decoder := json.NewDecoder(body)
16441	decoder.UseNumber()
16442	code, message, err := restjson.GetErrorInfo(decoder)
16443	if err != nil {
16444		var snapshot bytes.Buffer
16445		io.Copy(&snapshot, ringBuffer)
16446		err = &smithy.DeserializationError{
16447			Err:      fmt.Errorf("failed to decode response body, %w", err),
16448			Snapshot: snapshot.Bytes(),
16449		}
16450		return err
16451	}
16452
16453	errorBody.Seek(0, io.SeekStart)
16454	if len(code) != 0 {
16455		errorCode = restjson.SanitizeErrorCode(code)
16456	}
16457	if len(message) != 0 {
16458		errorMessage = message
16459	}
16460
16461	switch {
16462	case strings.EqualFold("BadRequestException", errorCode):
16463		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16464
16465	case strings.EqualFold("ForbiddenException", errorCode):
16466		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16467
16468	case strings.EqualFold("ServiceFailureException", errorCode):
16469		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16470
16471	case strings.EqualFold("ServiceUnavailableException", errorCode):
16472		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16473
16474	case strings.EqualFold("ThrottledClientException", errorCode):
16475		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16476
16477	case strings.EqualFold("UnauthorizedClientException", errorCode):
16478		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16479
16480	default:
16481		genericError := &smithy.GenericAPIError{
16482			Code:    errorCode,
16483			Message: errorMessage,
16484		}
16485		return genericError
16486
16487	}
16488}
16489
16490func awsRestjson1_deserializeOpDocumentListAppInstanceUsersOutput(v **ListAppInstanceUsersOutput, value interface{}) error {
16491	if v == nil {
16492		return fmt.Errorf("unexpected nil of type %T", v)
16493	}
16494	if value == nil {
16495		return nil
16496	}
16497
16498	shape, ok := value.(map[string]interface{})
16499	if !ok {
16500		return fmt.Errorf("unexpected JSON type %v", value)
16501	}
16502
16503	var sv *ListAppInstanceUsersOutput
16504	if *v == nil {
16505		sv = &ListAppInstanceUsersOutput{}
16506	} else {
16507		sv = *v
16508	}
16509
16510	for key, value := range shape {
16511		switch key {
16512		case "AppInstanceArn":
16513			if value != nil {
16514				jtv, ok := value.(string)
16515				if !ok {
16516					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
16517				}
16518				sv.AppInstanceArn = ptr.String(jtv)
16519			}
16520
16521		case "AppInstanceUsers":
16522			if err := awsRestjson1_deserializeDocumentAppInstanceUserList(&sv.AppInstanceUsers, value); err != nil {
16523				return err
16524			}
16525
16526		case "NextToken":
16527			if value != nil {
16528				jtv, ok := value.(string)
16529				if !ok {
16530					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
16531				}
16532				sv.NextToken = ptr.String(jtv)
16533			}
16534
16535		default:
16536			_, _ = key, value
16537
16538		}
16539	}
16540	*v = sv
16541	return nil
16542}
16543
16544type awsRestjson1_deserializeOpListAttendees struct {
16545}
16546
16547func (*awsRestjson1_deserializeOpListAttendees) ID() string {
16548	return "OperationDeserializer"
16549}
16550
16551func (m *awsRestjson1_deserializeOpListAttendees) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16552	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16553) {
16554	out, metadata, err = next.HandleDeserialize(ctx, in)
16555	if err != nil {
16556		return out, metadata, err
16557	}
16558
16559	response, ok := out.RawResponse.(*smithyhttp.Response)
16560	if !ok {
16561		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16562	}
16563
16564	if response.StatusCode < 200 || response.StatusCode >= 300 {
16565		return out, metadata, awsRestjson1_deserializeOpErrorListAttendees(response, &metadata)
16566	}
16567	output := &ListAttendeesOutput{}
16568	out.Result = output
16569
16570	var buff [1024]byte
16571	ringBuffer := smithyio.NewRingBuffer(buff[:])
16572
16573	body := io.TeeReader(response.Body, ringBuffer)
16574
16575	decoder := json.NewDecoder(body)
16576	decoder.UseNumber()
16577	var shape interface{}
16578	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16579		var snapshot bytes.Buffer
16580		io.Copy(&snapshot, ringBuffer)
16581		err = &smithy.DeserializationError{
16582			Err:      fmt.Errorf("failed to decode response body, %w", err),
16583			Snapshot: snapshot.Bytes(),
16584		}
16585		return out, metadata, err
16586	}
16587
16588	err = awsRestjson1_deserializeOpDocumentListAttendeesOutput(&output, shape)
16589	if err != nil {
16590		var snapshot bytes.Buffer
16591		io.Copy(&snapshot, ringBuffer)
16592		return out, metadata, &smithy.DeserializationError{
16593			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16594			Snapshot: snapshot.Bytes(),
16595		}
16596	}
16597
16598	return out, metadata, err
16599}
16600
16601func awsRestjson1_deserializeOpErrorListAttendees(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16602	var errorBuffer bytes.Buffer
16603	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16604		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16605	}
16606	errorBody := bytes.NewReader(errorBuffer.Bytes())
16607
16608	errorCode := "UnknownError"
16609	errorMessage := errorCode
16610
16611	code := response.Header.Get("X-Amzn-ErrorType")
16612	if len(code) != 0 {
16613		errorCode = restjson.SanitizeErrorCode(code)
16614	}
16615
16616	var buff [1024]byte
16617	ringBuffer := smithyio.NewRingBuffer(buff[:])
16618
16619	body := io.TeeReader(errorBody, ringBuffer)
16620	decoder := json.NewDecoder(body)
16621	decoder.UseNumber()
16622	code, message, err := restjson.GetErrorInfo(decoder)
16623	if err != nil {
16624		var snapshot bytes.Buffer
16625		io.Copy(&snapshot, ringBuffer)
16626		err = &smithy.DeserializationError{
16627			Err:      fmt.Errorf("failed to decode response body, %w", err),
16628			Snapshot: snapshot.Bytes(),
16629		}
16630		return err
16631	}
16632
16633	errorBody.Seek(0, io.SeekStart)
16634	if len(code) != 0 {
16635		errorCode = restjson.SanitizeErrorCode(code)
16636	}
16637	if len(message) != 0 {
16638		errorMessage = message
16639	}
16640
16641	switch {
16642	case strings.EqualFold("BadRequestException", errorCode):
16643		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16644
16645	case strings.EqualFold("ForbiddenException", errorCode):
16646		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16647
16648	case strings.EqualFold("NotFoundException", errorCode):
16649		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16650
16651	case strings.EqualFold("ServiceFailureException", errorCode):
16652		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16653
16654	case strings.EqualFold("ServiceUnavailableException", errorCode):
16655		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16656
16657	case strings.EqualFold("ThrottledClientException", errorCode):
16658		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16659
16660	case strings.EqualFold("UnauthorizedClientException", errorCode):
16661		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16662
16663	default:
16664		genericError := &smithy.GenericAPIError{
16665			Code:    errorCode,
16666			Message: errorMessage,
16667		}
16668		return genericError
16669
16670	}
16671}
16672
16673func awsRestjson1_deserializeOpDocumentListAttendeesOutput(v **ListAttendeesOutput, value interface{}) error {
16674	if v == nil {
16675		return fmt.Errorf("unexpected nil of type %T", v)
16676	}
16677	if value == nil {
16678		return nil
16679	}
16680
16681	shape, ok := value.(map[string]interface{})
16682	if !ok {
16683		return fmt.Errorf("unexpected JSON type %v", value)
16684	}
16685
16686	var sv *ListAttendeesOutput
16687	if *v == nil {
16688		sv = &ListAttendeesOutput{}
16689	} else {
16690		sv = *v
16691	}
16692
16693	for key, value := range shape {
16694		switch key {
16695		case "Attendees":
16696			if err := awsRestjson1_deserializeDocumentAttendeeList(&sv.Attendees, value); err != nil {
16697				return err
16698			}
16699
16700		case "NextToken":
16701			if value != nil {
16702				jtv, ok := value.(string)
16703				if !ok {
16704					return fmt.Errorf("expected String to be of type string, got %T instead", value)
16705				}
16706				sv.NextToken = ptr.String(jtv)
16707			}
16708
16709		default:
16710			_, _ = key, value
16711
16712		}
16713	}
16714	*v = sv
16715	return nil
16716}
16717
16718type awsRestjson1_deserializeOpListAttendeeTags struct {
16719}
16720
16721func (*awsRestjson1_deserializeOpListAttendeeTags) ID() string {
16722	return "OperationDeserializer"
16723}
16724
16725func (m *awsRestjson1_deserializeOpListAttendeeTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16726	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16727) {
16728	out, metadata, err = next.HandleDeserialize(ctx, in)
16729	if err != nil {
16730		return out, metadata, err
16731	}
16732
16733	response, ok := out.RawResponse.(*smithyhttp.Response)
16734	if !ok {
16735		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16736	}
16737
16738	if response.StatusCode < 200 || response.StatusCode >= 300 {
16739		return out, metadata, awsRestjson1_deserializeOpErrorListAttendeeTags(response, &metadata)
16740	}
16741	output := &ListAttendeeTagsOutput{}
16742	out.Result = output
16743
16744	var buff [1024]byte
16745	ringBuffer := smithyio.NewRingBuffer(buff[:])
16746
16747	body := io.TeeReader(response.Body, ringBuffer)
16748
16749	decoder := json.NewDecoder(body)
16750	decoder.UseNumber()
16751	var shape interface{}
16752	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16753		var snapshot bytes.Buffer
16754		io.Copy(&snapshot, ringBuffer)
16755		err = &smithy.DeserializationError{
16756			Err:      fmt.Errorf("failed to decode response body, %w", err),
16757			Snapshot: snapshot.Bytes(),
16758		}
16759		return out, metadata, err
16760	}
16761
16762	err = awsRestjson1_deserializeOpDocumentListAttendeeTagsOutput(&output, shape)
16763	if err != nil {
16764		var snapshot bytes.Buffer
16765		io.Copy(&snapshot, ringBuffer)
16766		return out, metadata, &smithy.DeserializationError{
16767			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16768			Snapshot: snapshot.Bytes(),
16769		}
16770	}
16771
16772	return out, metadata, err
16773}
16774
16775func awsRestjson1_deserializeOpErrorListAttendeeTags(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16776	var errorBuffer bytes.Buffer
16777	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16778		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16779	}
16780	errorBody := bytes.NewReader(errorBuffer.Bytes())
16781
16782	errorCode := "UnknownError"
16783	errorMessage := errorCode
16784
16785	code := response.Header.Get("X-Amzn-ErrorType")
16786	if len(code) != 0 {
16787		errorCode = restjson.SanitizeErrorCode(code)
16788	}
16789
16790	var buff [1024]byte
16791	ringBuffer := smithyio.NewRingBuffer(buff[:])
16792
16793	body := io.TeeReader(errorBody, ringBuffer)
16794	decoder := json.NewDecoder(body)
16795	decoder.UseNumber()
16796	code, message, err := restjson.GetErrorInfo(decoder)
16797	if err != nil {
16798		var snapshot bytes.Buffer
16799		io.Copy(&snapshot, ringBuffer)
16800		err = &smithy.DeserializationError{
16801			Err:      fmt.Errorf("failed to decode response body, %w", err),
16802			Snapshot: snapshot.Bytes(),
16803		}
16804		return err
16805	}
16806
16807	errorBody.Seek(0, io.SeekStart)
16808	if len(code) != 0 {
16809		errorCode = restjson.SanitizeErrorCode(code)
16810	}
16811	if len(message) != 0 {
16812		errorMessage = message
16813	}
16814
16815	switch {
16816	case strings.EqualFold("BadRequestException", errorCode):
16817		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16818
16819	case strings.EqualFold("ForbiddenException", errorCode):
16820		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16821
16822	case strings.EqualFold("NotFoundException", errorCode):
16823		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16824
16825	case strings.EqualFold("ServiceFailureException", errorCode):
16826		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16827
16828	case strings.EqualFold("ServiceUnavailableException", errorCode):
16829		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16830
16831	case strings.EqualFold("ThrottledClientException", errorCode):
16832		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16833
16834	case strings.EqualFold("UnauthorizedClientException", errorCode):
16835		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
16836
16837	default:
16838		genericError := &smithy.GenericAPIError{
16839			Code:    errorCode,
16840			Message: errorMessage,
16841		}
16842		return genericError
16843
16844	}
16845}
16846
16847func awsRestjson1_deserializeOpDocumentListAttendeeTagsOutput(v **ListAttendeeTagsOutput, value interface{}) error {
16848	if v == nil {
16849		return fmt.Errorf("unexpected nil of type %T", v)
16850	}
16851	if value == nil {
16852		return nil
16853	}
16854
16855	shape, ok := value.(map[string]interface{})
16856	if !ok {
16857		return fmt.Errorf("unexpected JSON type %v", value)
16858	}
16859
16860	var sv *ListAttendeeTagsOutput
16861	if *v == nil {
16862		sv = &ListAttendeeTagsOutput{}
16863	} else {
16864		sv = *v
16865	}
16866
16867	for key, value := range shape {
16868		switch key {
16869		case "Tags":
16870			if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil {
16871				return err
16872			}
16873
16874		default:
16875			_, _ = key, value
16876
16877		}
16878	}
16879	*v = sv
16880	return nil
16881}
16882
16883type awsRestjson1_deserializeOpListBots struct {
16884}
16885
16886func (*awsRestjson1_deserializeOpListBots) ID() string {
16887	return "OperationDeserializer"
16888}
16889
16890func (m *awsRestjson1_deserializeOpListBots) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
16891	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
16892) {
16893	out, metadata, err = next.HandleDeserialize(ctx, in)
16894	if err != nil {
16895		return out, metadata, err
16896	}
16897
16898	response, ok := out.RawResponse.(*smithyhttp.Response)
16899	if !ok {
16900		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
16901	}
16902
16903	if response.StatusCode < 200 || response.StatusCode >= 300 {
16904		return out, metadata, awsRestjson1_deserializeOpErrorListBots(response, &metadata)
16905	}
16906	output := &ListBotsOutput{}
16907	out.Result = output
16908
16909	var buff [1024]byte
16910	ringBuffer := smithyio.NewRingBuffer(buff[:])
16911
16912	body := io.TeeReader(response.Body, ringBuffer)
16913
16914	decoder := json.NewDecoder(body)
16915	decoder.UseNumber()
16916	var shape interface{}
16917	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
16918		var snapshot bytes.Buffer
16919		io.Copy(&snapshot, ringBuffer)
16920		err = &smithy.DeserializationError{
16921			Err:      fmt.Errorf("failed to decode response body, %w", err),
16922			Snapshot: snapshot.Bytes(),
16923		}
16924		return out, metadata, err
16925	}
16926
16927	err = awsRestjson1_deserializeOpDocumentListBotsOutput(&output, shape)
16928	if err != nil {
16929		var snapshot bytes.Buffer
16930		io.Copy(&snapshot, ringBuffer)
16931		return out, metadata, &smithy.DeserializationError{
16932			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
16933			Snapshot: snapshot.Bytes(),
16934		}
16935	}
16936
16937	return out, metadata, err
16938}
16939
16940func awsRestjson1_deserializeOpErrorListBots(response *smithyhttp.Response, metadata *middleware.Metadata) error {
16941	var errorBuffer bytes.Buffer
16942	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
16943		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
16944	}
16945	errorBody := bytes.NewReader(errorBuffer.Bytes())
16946
16947	errorCode := "UnknownError"
16948	errorMessage := errorCode
16949
16950	code := response.Header.Get("X-Amzn-ErrorType")
16951	if len(code) != 0 {
16952		errorCode = restjson.SanitizeErrorCode(code)
16953	}
16954
16955	var buff [1024]byte
16956	ringBuffer := smithyio.NewRingBuffer(buff[:])
16957
16958	body := io.TeeReader(errorBody, ringBuffer)
16959	decoder := json.NewDecoder(body)
16960	decoder.UseNumber()
16961	code, message, err := restjson.GetErrorInfo(decoder)
16962	if err != nil {
16963		var snapshot bytes.Buffer
16964		io.Copy(&snapshot, ringBuffer)
16965		err = &smithy.DeserializationError{
16966			Err:      fmt.Errorf("failed to decode response body, %w", err),
16967			Snapshot: snapshot.Bytes(),
16968		}
16969		return err
16970	}
16971
16972	errorBody.Seek(0, io.SeekStart)
16973	if len(code) != 0 {
16974		errorCode = restjson.SanitizeErrorCode(code)
16975	}
16976	if len(message) != 0 {
16977		errorMessage = message
16978	}
16979
16980	switch {
16981	case strings.EqualFold("BadRequestException", errorCode):
16982		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
16983
16984	case strings.EqualFold("ForbiddenException", errorCode):
16985		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
16986
16987	case strings.EqualFold("NotFoundException", errorCode):
16988		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
16989
16990	case strings.EqualFold("ServiceFailureException", errorCode):
16991		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
16992
16993	case strings.EqualFold("ServiceUnavailableException", errorCode):
16994		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
16995
16996	case strings.EqualFold("ThrottledClientException", errorCode):
16997		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
16998
16999	case strings.EqualFold("UnauthorizedClientException", errorCode):
17000		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17001
17002	default:
17003		genericError := &smithy.GenericAPIError{
17004			Code:    errorCode,
17005			Message: errorMessage,
17006		}
17007		return genericError
17008
17009	}
17010}
17011
17012func awsRestjson1_deserializeOpDocumentListBotsOutput(v **ListBotsOutput, value interface{}) error {
17013	if v == nil {
17014		return fmt.Errorf("unexpected nil of type %T", v)
17015	}
17016	if value == nil {
17017		return nil
17018	}
17019
17020	shape, ok := value.(map[string]interface{})
17021	if !ok {
17022		return fmt.Errorf("unexpected JSON type %v", value)
17023	}
17024
17025	var sv *ListBotsOutput
17026	if *v == nil {
17027		sv = &ListBotsOutput{}
17028	} else {
17029		sv = *v
17030	}
17031
17032	for key, value := range shape {
17033		switch key {
17034		case "Bots":
17035			if err := awsRestjson1_deserializeDocumentBotList(&sv.Bots, value); err != nil {
17036				return err
17037			}
17038
17039		case "NextToken":
17040			if value != nil {
17041				jtv, ok := value.(string)
17042				if !ok {
17043					return fmt.Errorf("expected String to be of type string, got %T instead", value)
17044				}
17045				sv.NextToken = ptr.String(jtv)
17046			}
17047
17048		default:
17049			_, _ = key, value
17050
17051		}
17052	}
17053	*v = sv
17054	return nil
17055}
17056
17057type awsRestjson1_deserializeOpListChannelBans struct {
17058}
17059
17060func (*awsRestjson1_deserializeOpListChannelBans) ID() string {
17061	return "OperationDeserializer"
17062}
17063
17064func (m *awsRestjson1_deserializeOpListChannelBans) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17065	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17066) {
17067	out, metadata, err = next.HandleDeserialize(ctx, in)
17068	if err != nil {
17069		return out, metadata, err
17070	}
17071
17072	response, ok := out.RawResponse.(*smithyhttp.Response)
17073	if !ok {
17074		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17075	}
17076
17077	if response.StatusCode < 200 || response.StatusCode >= 300 {
17078		return out, metadata, awsRestjson1_deserializeOpErrorListChannelBans(response, &metadata)
17079	}
17080	output := &ListChannelBansOutput{}
17081	out.Result = output
17082
17083	var buff [1024]byte
17084	ringBuffer := smithyio.NewRingBuffer(buff[:])
17085
17086	body := io.TeeReader(response.Body, ringBuffer)
17087
17088	decoder := json.NewDecoder(body)
17089	decoder.UseNumber()
17090	var shape interface{}
17091	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17092		var snapshot bytes.Buffer
17093		io.Copy(&snapshot, ringBuffer)
17094		err = &smithy.DeserializationError{
17095			Err:      fmt.Errorf("failed to decode response body, %w", err),
17096			Snapshot: snapshot.Bytes(),
17097		}
17098		return out, metadata, err
17099	}
17100
17101	err = awsRestjson1_deserializeOpDocumentListChannelBansOutput(&output, shape)
17102	if err != nil {
17103		var snapshot bytes.Buffer
17104		io.Copy(&snapshot, ringBuffer)
17105		return out, metadata, &smithy.DeserializationError{
17106			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17107			Snapshot: snapshot.Bytes(),
17108		}
17109	}
17110
17111	return out, metadata, err
17112}
17113
17114func awsRestjson1_deserializeOpErrorListChannelBans(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17115	var errorBuffer bytes.Buffer
17116	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17117		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17118	}
17119	errorBody := bytes.NewReader(errorBuffer.Bytes())
17120
17121	errorCode := "UnknownError"
17122	errorMessage := errorCode
17123
17124	code := response.Header.Get("X-Amzn-ErrorType")
17125	if len(code) != 0 {
17126		errorCode = restjson.SanitizeErrorCode(code)
17127	}
17128
17129	var buff [1024]byte
17130	ringBuffer := smithyio.NewRingBuffer(buff[:])
17131
17132	body := io.TeeReader(errorBody, ringBuffer)
17133	decoder := json.NewDecoder(body)
17134	decoder.UseNumber()
17135	code, message, err := restjson.GetErrorInfo(decoder)
17136	if err != nil {
17137		var snapshot bytes.Buffer
17138		io.Copy(&snapshot, ringBuffer)
17139		err = &smithy.DeserializationError{
17140			Err:      fmt.Errorf("failed to decode response body, %w", err),
17141			Snapshot: snapshot.Bytes(),
17142		}
17143		return err
17144	}
17145
17146	errorBody.Seek(0, io.SeekStart)
17147	if len(code) != 0 {
17148		errorCode = restjson.SanitizeErrorCode(code)
17149	}
17150	if len(message) != 0 {
17151		errorMessage = message
17152	}
17153
17154	switch {
17155	case strings.EqualFold("BadRequestException", errorCode):
17156		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17157
17158	case strings.EqualFold("ForbiddenException", errorCode):
17159		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17160
17161	case strings.EqualFold("ServiceFailureException", errorCode):
17162		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17163
17164	case strings.EqualFold("ServiceUnavailableException", errorCode):
17165		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17166
17167	case strings.EqualFold("ThrottledClientException", errorCode):
17168		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17169
17170	case strings.EqualFold("UnauthorizedClientException", errorCode):
17171		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17172
17173	default:
17174		genericError := &smithy.GenericAPIError{
17175			Code:    errorCode,
17176			Message: errorMessage,
17177		}
17178		return genericError
17179
17180	}
17181}
17182
17183func awsRestjson1_deserializeOpDocumentListChannelBansOutput(v **ListChannelBansOutput, value interface{}) error {
17184	if v == nil {
17185		return fmt.Errorf("unexpected nil of type %T", v)
17186	}
17187	if value == nil {
17188		return nil
17189	}
17190
17191	shape, ok := value.(map[string]interface{})
17192	if !ok {
17193		return fmt.Errorf("unexpected JSON type %v", value)
17194	}
17195
17196	var sv *ListChannelBansOutput
17197	if *v == nil {
17198		sv = &ListChannelBansOutput{}
17199	} else {
17200		sv = *v
17201	}
17202
17203	for key, value := range shape {
17204		switch key {
17205		case "ChannelArn":
17206			if value != nil {
17207				jtv, ok := value.(string)
17208				if !ok {
17209					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17210				}
17211				sv.ChannelArn = ptr.String(jtv)
17212			}
17213
17214		case "ChannelBans":
17215			if err := awsRestjson1_deserializeDocumentChannelBanSummaryList(&sv.ChannelBans, value); err != nil {
17216				return err
17217			}
17218
17219		case "NextToken":
17220			if value != nil {
17221				jtv, ok := value.(string)
17222				if !ok {
17223					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17224				}
17225				sv.NextToken = ptr.String(jtv)
17226			}
17227
17228		default:
17229			_, _ = key, value
17230
17231		}
17232	}
17233	*v = sv
17234	return nil
17235}
17236
17237type awsRestjson1_deserializeOpListChannelMemberships struct {
17238}
17239
17240func (*awsRestjson1_deserializeOpListChannelMemberships) ID() string {
17241	return "OperationDeserializer"
17242}
17243
17244func (m *awsRestjson1_deserializeOpListChannelMemberships) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17245	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17246) {
17247	out, metadata, err = next.HandleDeserialize(ctx, in)
17248	if err != nil {
17249		return out, metadata, err
17250	}
17251
17252	response, ok := out.RawResponse.(*smithyhttp.Response)
17253	if !ok {
17254		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17255	}
17256
17257	if response.StatusCode < 200 || response.StatusCode >= 300 {
17258		return out, metadata, awsRestjson1_deserializeOpErrorListChannelMemberships(response, &metadata)
17259	}
17260	output := &ListChannelMembershipsOutput{}
17261	out.Result = output
17262
17263	var buff [1024]byte
17264	ringBuffer := smithyio.NewRingBuffer(buff[:])
17265
17266	body := io.TeeReader(response.Body, ringBuffer)
17267
17268	decoder := json.NewDecoder(body)
17269	decoder.UseNumber()
17270	var shape interface{}
17271	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17272		var snapshot bytes.Buffer
17273		io.Copy(&snapshot, ringBuffer)
17274		err = &smithy.DeserializationError{
17275			Err:      fmt.Errorf("failed to decode response body, %w", err),
17276			Snapshot: snapshot.Bytes(),
17277		}
17278		return out, metadata, err
17279	}
17280
17281	err = awsRestjson1_deserializeOpDocumentListChannelMembershipsOutput(&output, shape)
17282	if err != nil {
17283		var snapshot bytes.Buffer
17284		io.Copy(&snapshot, ringBuffer)
17285		return out, metadata, &smithy.DeserializationError{
17286			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17287			Snapshot: snapshot.Bytes(),
17288		}
17289	}
17290
17291	return out, metadata, err
17292}
17293
17294func awsRestjson1_deserializeOpErrorListChannelMemberships(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17295	var errorBuffer bytes.Buffer
17296	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17297		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17298	}
17299	errorBody := bytes.NewReader(errorBuffer.Bytes())
17300
17301	errorCode := "UnknownError"
17302	errorMessage := errorCode
17303
17304	code := response.Header.Get("X-Amzn-ErrorType")
17305	if len(code) != 0 {
17306		errorCode = restjson.SanitizeErrorCode(code)
17307	}
17308
17309	var buff [1024]byte
17310	ringBuffer := smithyio.NewRingBuffer(buff[:])
17311
17312	body := io.TeeReader(errorBody, ringBuffer)
17313	decoder := json.NewDecoder(body)
17314	decoder.UseNumber()
17315	code, message, err := restjson.GetErrorInfo(decoder)
17316	if err != nil {
17317		var snapshot bytes.Buffer
17318		io.Copy(&snapshot, ringBuffer)
17319		err = &smithy.DeserializationError{
17320			Err:      fmt.Errorf("failed to decode response body, %w", err),
17321			Snapshot: snapshot.Bytes(),
17322		}
17323		return err
17324	}
17325
17326	errorBody.Seek(0, io.SeekStart)
17327	if len(code) != 0 {
17328		errorCode = restjson.SanitizeErrorCode(code)
17329	}
17330	if len(message) != 0 {
17331		errorMessage = message
17332	}
17333
17334	switch {
17335	case strings.EqualFold("BadRequestException", errorCode):
17336		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17337
17338	case strings.EqualFold("ForbiddenException", errorCode):
17339		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17340
17341	case strings.EqualFold("ServiceFailureException", errorCode):
17342		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17343
17344	case strings.EqualFold("ServiceUnavailableException", errorCode):
17345		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17346
17347	case strings.EqualFold("ThrottledClientException", errorCode):
17348		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17349
17350	case strings.EqualFold("UnauthorizedClientException", errorCode):
17351		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17352
17353	default:
17354		genericError := &smithy.GenericAPIError{
17355			Code:    errorCode,
17356			Message: errorMessage,
17357		}
17358		return genericError
17359
17360	}
17361}
17362
17363func awsRestjson1_deserializeOpDocumentListChannelMembershipsOutput(v **ListChannelMembershipsOutput, value interface{}) error {
17364	if v == nil {
17365		return fmt.Errorf("unexpected nil of type %T", v)
17366	}
17367	if value == nil {
17368		return nil
17369	}
17370
17371	shape, ok := value.(map[string]interface{})
17372	if !ok {
17373		return fmt.Errorf("unexpected JSON type %v", value)
17374	}
17375
17376	var sv *ListChannelMembershipsOutput
17377	if *v == nil {
17378		sv = &ListChannelMembershipsOutput{}
17379	} else {
17380		sv = *v
17381	}
17382
17383	for key, value := range shape {
17384		switch key {
17385		case "ChannelArn":
17386			if value != nil {
17387				jtv, ok := value.(string)
17388				if !ok {
17389					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17390				}
17391				sv.ChannelArn = ptr.String(jtv)
17392			}
17393
17394		case "ChannelMemberships":
17395			if err := awsRestjson1_deserializeDocumentChannelMembershipSummaryList(&sv.ChannelMemberships, value); err != nil {
17396				return err
17397			}
17398
17399		case "NextToken":
17400			if value != nil {
17401				jtv, ok := value.(string)
17402				if !ok {
17403					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17404				}
17405				sv.NextToken = ptr.String(jtv)
17406			}
17407
17408		default:
17409			_, _ = key, value
17410
17411		}
17412	}
17413	*v = sv
17414	return nil
17415}
17416
17417type awsRestjson1_deserializeOpListChannelMembershipsForAppInstanceUser struct {
17418}
17419
17420func (*awsRestjson1_deserializeOpListChannelMembershipsForAppInstanceUser) ID() string {
17421	return "OperationDeserializer"
17422}
17423
17424func (m *awsRestjson1_deserializeOpListChannelMembershipsForAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17425	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17426) {
17427	out, metadata, err = next.HandleDeserialize(ctx, in)
17428	if err != nil {
17429		return out, metadata, err
17430	}
17431
17432	response, ok := out.RawResponse.(*smithyhttp.Response)
17433	if !ok {
17434		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17435	}
17436
17437	if response.StatusCode < 200 || response.StatusCode >= 300 {
17438		return out, metadata, awsRestjson1_deserializeOpErrorListChannelMembershipsForAppInstanceUser(response, &metadata)
17439	}
17440	output := &ListChannelMembershipsForAppInstanceUserOutput{}
17441	out.Result = output
17442
17443	var buff [1024]byte
17444	ringBuffer := smithyio.NewRingBuffer(buff[:])
17445
17446	body := io.TeeReader(response.Body, ringBuffer)
17447
17448	decoder := json.NewDecoder(body)
17449	decoder.UseNumber()
17450	var shape interface{}
17451	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17452		var snapshot bytes.Buffer
17453		io.Copy(&snapshot, ringBuffer)
17454		err = &smithy.DeserializationError{
17455			Err:      fmt.Errorf("failed to decode response body, %w", err),
17456			Snapshot: snapshot.Bytes(),
17457		}
17458		return out, metadata, err
17459	}
17460
17461	err = awsRestjson1_deserializeOpDocumentListChannelMembershipsForAppInstanceUserOutput(&output, shape)
17462	if err != nil {
17463		var snapshot bytes.Buffer
17464		io.Copy(&snapshot, ringBuffer)
17465		return out, metadata, &smithy.DeserializationError{
17466			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17467			Snapshot: snapshot.Bytes(),
17468		}
17469	}
17470
17471	return out, metadata, err
17472}
17473
17474func awsRestjson1_deserializeOpErrorListChannelMembershipsForAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17475	var errorBuffer bytes.Buffer
17476	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17477		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17478	}
17479	errorBody := bytes.NewReader(errorBuffer.Bytes())
17480
17481	errorCode := "UnknownError"
17482	errorMessage := errorCode
17483
17484	code := response.Header.Get("X-Amzn-ErrorType")
17485	if len(code) != 0 {
17486		errorCode = restjson.SanitizeErrorCode(code)
17487	}
17488
17489	var buff [1024]byte
17490	ringBuffer := smithyio.NewRingBuffer(buff[:])
17491
17492	body := io.TeeReader(errorBody, ringBuffer)
17493	decoder := json.NewDecoder(body)
17494	decoder.UseNumber()
17495	code, message, err := restjson.GetErrorInfo(decoder)
17496	if err != nil {
17497		var snapshot bytes.Buffer
17498		io.Copy(&snapshot, ringBuffer)
17499		err = &smithy.DeserializationError{
17500			Err:      fmt.Errorf("failed to decode response body, %w", err),
17501			Snapshot: snapshot.Bytes(),
17502		}
17503		return err
17504	}
17505
17506	errorBody.Seek(0, io.SeekStart)
17507	if len(code) != 0 {
17508		errorCode = restjson.SanitizeErrorCode(code)
17509	}
17510	if len(message) != 0 {
17511		errorMessage = message
17512	}
17513
17514	switch {
17515	case strings.EqualFold("BadRequestException", errorCode):
17516		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17517
17518	case strings.EqualFold("ForbiddenException", errorCode):
17519		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17520
17521	case strings.EqualFold("ServiceFailureException", errorCode):
17522		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17523
17524	case strings.EqualFold("ServiceUnavailableException", errorCode):
17525		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17526
17527	case strings.EqualFold("ThrottledClientException", errorCode):
17528		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17529
17530	case strings.EqualFold("UnauthorizedClientException", errorCode):
17531		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17532
17533	default:
17534		genericError := &smithy.GenericAPIError{
17535			Code:    errorCode,
17536			Message: errorMessage,
17537		}
17538		return genericError
17539
17540	}
17541}
17542
17543func awsRestjson1_deserializeOpDocumentListChannelMembershipsForAppInstanceUserOutput(v **ListChannelMembershipsForAppInstanceUserOutput, value interface{}) error {
17544	if v == nil {
17545		return fmt.Errorf("unexpected nil of type %T", v)
17546	}
17547	if value == nil {
17548		return nil
17549	}
17550
17551	shape, ok := value.(map[string]interface{})
17552	if !ok {
17553		return fmt.Errorf("unexpected JSON type %v", value)
17554	}
17555
17556	var sv *ListChannelMembershipsForAppInstanceUserOutput
17557	if *v == nil {
17558		sv = &ListChannelMembershipsForAppInstanceUserOutput{}
17559	} else {
17560		sv = *v
17561	}
17562
17563	for key, value := range shape {
17564		switch key {
17565		case "ChannelMemberships":
17566			if err := awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummaryList(&sv.ChannelMemberships, value); err != nil {
17567				return err
17568			}
17569
17570		case "NextToken":
17571			if value != nil {
17572				jtv, ok := value.(string)
17573				if !ok {
17574					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17575				}
17576				sv.NextToken = ptr.String(jtv)
17577			}
17578
17579		default:
17580			_, _ = key, value
17581
17582		}
17583	}
17584	*v = sv
17585	return nil
17586}
17587
17588type awsRestjson1_deserializeOpListChannelMessages struct {
17589}
17590
17591func (*awsRestjson1_deserializeOpListChannelMessages) ID() string {
17592	return "OperationDeserializer"
17593}
17594
17595func (m *awsRestjson1_deserializeOpListChannelMessages) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17596	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17597) {
17598	out, metadata, err = next.HandleDeserialize(ctx, in)
17599	if err != nil {
17600		return out, metadata, err
17601	}
17602
17603	response, ok := out.RawResponse.(*smithyhttp.Response)
17604	if !ok {
17605		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17606	}
17607
17608	if response.StatusCode < 200 || response.StatusCode >= 300 {
17609		return out, metadata, awsRestjson1_deserializeOpErrorListChannelMessages(response, &metadata)
17610	}
17611	output := &ListChannelMessagesOutput{}
17612	out.Result = output
17613
17614	var buff [1024]byte
17615	ringBuffer := smithyio.NewRingBuffer(buff[:])
17616
17617	body := io.TeeReader(response.Body, ringBuffer)
17618
17619	decoder := json.NewDecoder(body)
17620	decoder.UseNumber()
17621	var shape interface{}
17622	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17623		var snapshot bytes.Buffer
17624		io.Copy(&snapshot, ringBuffer)
17625		err = &smithy.DeserializationError{
17626			Err:      fmt.Errorf("failed to decode response body, %w", err),
17627			Snapshot: snapshot.Bytes(),
17628		}
17629		return out, metadata, err
17630	}
17631
17632	err = awsRestjson1_deserializeOpDocumentListChannelMessagesOutput(&output, shape)
17633	if err != nil {
17634		var snapshot bytes.Buffer
17635		io.Copy(&snapshot, ringBuffer)
17636		return out, metadata, &smithy.DeserializationError{
17637			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17638			Snapshot: snapshot.Bytes(),
17639		}
17640	}
17641
17642	return out, metadata, err
17643}
17644
17645func awsRestjson1_deserializeOpErrorListChannelMessages(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17646	var errorBuffer bytes.Buffer
17647	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17648		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17649	}
17650	errorBody := bytes.NewReader(errorBuffer.Bytes())
17651
17652	errorCode := "UnknownError"
17653	errorMessage := errorCode
17654
17655	code := response.Header.Get("X-Amzn-ErrorType")
17656	if len(code) != 0 {
17657		errorCode = restjson.SanitizeErrorCode(code)
17658	}
17659
17660	var buff [1024]byte
17661	ringBuffer := smithyio.NewRingBuffer(buff[:])
17662
17663	body := io.TeeReader(errorBody, ringBuffer)
17664	decoder := json.NewDecoder(body)
17665	decoder.UseNumber()
17666	code, message, err := restjson.GetErrorInfo(decoder)
17667	if err != nil {
17668		var snapshot bytes.Buffer
17669		io.Copy(&snapshot, ringBuffer)
17670		err = &smithy.DeserializationError{
17671			Err:      fmt.Errorf("failed to decode response body, %w", err),
17672			Snapshot: snapshot.Bytes(),
17673		}
17674		return err
17675	}
17676
17677	errorBody.Seek(0, io.SeekStart)
17678	if len(code) != 0 {
17679		errorCode = restjson.SanitizeErrorCode(code)
17680	}
17681	if len(message) != 0 {
17682		errorMessage = message
17683	}
17684
17685	switch {
17686	case strings.EqualFold("BadRequestException", errorCode):
17687		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17688
17689	case strings.EqualFold("ForbiddenException", errorCode):
17690		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17691
17692	case strings.EqualFold("ServiceFailureException", errorCode):
17693		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17694
17695	case strings.EqualFold("ServiceUnavailableException", errorCode):
17696		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17697
17698	case strings.EqualFold("ThrottledClientException", errorCode):
17699		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17700
17701	case strings.EqualFold("UnauthorizedClientException", errorCode):
17702		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17703
17704	default:
17705		genericError := &smithy.GenericAPIError{
17706			Code:    errorCode,
17707			Message: errorMessage,
17708		}
17709		return genericError
17710
17711	}
17712}
17713
17714func awsRestjson1_deserializeOpDocumentListChannelMessagesOutput(v **ListChannelMessagesOutput, value interface{}) error {
17715	if v == nil {
17716		return fmt.Errorf("unexpected nil of type %T", v)
17717	}
17718	if value == nil {
17719		return nil
17720	}
17721
17722	shape, ok := value.(map[string]interface{})
17723	if !ok {
17724		return fmt.Errorf("unexpected JSON type %v", value)
17725	}
17726
17727	var sv *ListChannelMessagesOutput
17728	if *v == nil {
17729		sv = &ListChannelMessagesOutput{}
17730	} else {
17731		sv = *v
17732	}
17733
17734	for key, value := range shape {
17735		switch key {
17736		case "ChannelArn":
17737			if value != nil {
17738				jtv, ok := value.(string)
17739				if !ok {
17740					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17741				}
17742				sv.ChannelArn = ptr.String(jtv)
17743			}
17744
17745		case "ChannelMessages":
17746			if err := awsRestjson1_deserializeDocumentChannelMessageSummaryList(&sv.ChannelMessages, value); err != nil {
17747				return err
17748			}
17749
17750		case "NextToken":
17751			if value != nil {
17752				jtv, ok := value.(string)
17753				if !ok {
17754					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17755				}
17756				sv.NextToken = ptr.String(jtv)
17757			}
17758
17759		default:
17760			_, _ = key, value
17761
17762		}
17763	}
17764	*v = sv
17765	return nil
17766}
17767
17768type awsRestjson1_deserializeOpListChannelModerators struct {
17769}
17770
17771func (*awsRestjson1_deserializeOpListChannelModerators) ID() string {
17772	return "OperationDeserializer"
17773}
17774
17775func (m *awsRestjson1_deserializeOpListChannelModerators) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17776	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17777) {
17778	out, metadata, err = next.HandleDeserialize(ctx, in)
17779	if err != nil {
17780		return out, metadata, err
17781	}
17782
17783	response, ok := out.RawResponse.(*smithyhttp.Response)
17784	if !ok {
17785		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17786	}
17787
17788	if response.StatusCode < 200 || response.StatusCode >= 300 {
17789		return out, metadata, awsRestjson1_deserializeOpErrorListChannelModerators(response, &metadata)
17790	}
17791	output := &ListChannelModeratorsOutput{}
17792	out.Result = output
17793
17794	var buff [1024]byte
17795	ringBuffer := smithyio.NewRingBuffer(buff[:])
17796
17797	body := io.TeeReader(response.Body, ringBuffer)
17798
17799	decoder := json.NewDecoder(body)
17800	decoder.UseNumber()
17801	var shape interface{}
17802	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17803		var snapshot bytes.Buffer
17804		io.Copy(&snapshot, ringBuffer)
17805		err = &smithy.DeserializationError{
17806			Err:      fmt.Errorf("failed to decode response body, %w", err),
17807			Snapshot: snapshot.Bytes(),
17808		}
17809		return out, metadata, err
17810	}
17811
17812	err = awsRestjson1_deserializeOpDocumentListChannelModeratorsOutput(&output, shape)
17813	if err != nil {
17814		var snapshot bytes.Buffer
17815		io.Copy(&snapshot, ringBuffer)
17816		return out, metadata, &smithy.DeserializationError{
17817			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17818			Snapshot: snapshot.Bytes(),
17819		}
17820	}
17821
17822	return out, metadata, err
17823}
17824
17825func awsRestjson1_deserializeOpErrorListChannelModerators(response *smithyhttp.Response, metadata *middleware.Metadata) error {
17826	var errorBuffer bytes.Buffer
17827	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
17828		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
17829	}
17830	errorBody := bytes.NewReader(errorBuffer.Bytes())
17831
17832	errorCode := "UnknownError"
17833	errorMessage := errorCode
17834
17835	code := response.Header.Get("X-Amzn-ErrorType")
17836	if len(code) != 0 {
17837		errorCode = restjson.SanitizeErrorCode(code)
17838	}
17839
17840	var buff [1024]byte
17841	ringBuffer := smithyio.NewRingBuffer(buff[:])
17842
17843	body := io.TeeReader(errorBody, ringBuffer)
17844	decoder := json.NewDecoder(body)
17845	decoder.UseNumber()
17846	code, message, err := restjson.GetErrorInfo(decoder)
17847	if err != nil {
17848		var snapshot bytes.Buffer
17849		io.Copy(&snapshot, ringBuffer)
17850		err = &smithy.DeserializationError{
17851			Err:      fmt.Errorf("failed to decode response body, %w", err),
17852			Snapshot: snapshot.Bytes(),
17853		}
17854		return err
17855	}
17856
17857	errorBody.Seek(0, io.SeekStart)
17858	if len(code) != 0 {
17859		errorCode = restjson.SanitizeErrorCode(code)
17860	}
17861	if len(message) != 0 {
17862		errorMessage = message
17863	}
17864
17865	switch {
17866	case strings.EqualFold("BadRequestException", errorCode):
17867		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
17868
17869	case strings.EqualFold("ForbiddenException", errorCode):
17870		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
17871
17872	case strings.EqualFold("ServiceFailureException", errorCode):
17873		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
17874
17875	case strings.EqualFold("ServiceUnavailableException", errorCode):
17876		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
17877
17878	case strings.EqualFold("ThrottledClientException", errorCode):
17879		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
17880
17881	case strings.EqualFold("UnauthorizedClientException", errorCode):
17882		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
17883
17884	default:
17885		genericError := &smithy.GenericAPIError{
17886			Code:    errorCode,
17887			Message: errorMessage,
17888		}
17889		return genericError
17890
17891	}
17892}
17893
17894func awsRestjson1_deserializeOpDocumentListChannelModeratorsOutput(v **ListChannelModeratorsOutput, value interface{}) error {
17895	if v == nil {
17896		return fmt.Errorf("unexpected nil of type %T", v)
17897	}
17898	if value == nil {
17899		return nil
17900	}
17901
17902	shape, ok := value.(map[string]interface{})
17903	if !ok {
17904		return fmt.Errorf("unexpected JSON type %v", value)
17905	}
17906
17907	var sv *ListChannelModeratorsOutput
17908	if *v == nil {
17909		sv = &ListChannelModeratorsOutput{}
17910	} else {
17911		sv = *v
17912	}
17913
17914	for key, value := range shape {
17915		switch key {
17916		case "ChannelArn":
17917			if value != nil {
17918				jtv, ok := value.(string)
17919				if !ok {
17920					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
17921				}
17922				sv.ChannelArn = ptr.String(jtv)
17923			}
17924
17925		case "ChannelModerators":
17926			if err := awsRestjson1_deserializeDocumentChannelModeratorSummaryList(&sv.ChannelModerators, value); err != nil {
17927				return err
17928			}
17929
17930		case "NextToken":
17931			if value != nil {
17932				jtv, ok := value.(string)
17933				if !ok {
17934					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
17935				}
17936				sv.NextToken = ptr.String(jtv)
17937			}
17938
17939		default:
17940			_, _ = key, value
17941
17942		}
17943	}
17944	*v = sv
17945	return nil
17946}
17947
17948type awsRestjson1_deserializeOpListChannels struct {
17949}
17950
17951func (*awsRestjson1_deserializeOpListChannels) ID() string {
17952	return "OperationDeserializer"
17953}
17954
17955func (m *awsRestjson1_deserializeOpListChannels) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
17956	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
17957) {
17958	out, metadata, err = next.HandleDeserialize(ctx, in)
17959	if err != nil {
17960		return out, metadata, err
17961	}
17962
17963	response, ok := out.RawResponse.(*smithyhttp.Response)
17964	if !ok {
17965		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
17966	}
17967
17968	if response.StatusCode < 200 || response.StatusCode >= 300 {
17969		return out, metadata, awsRestjson1_deserializeOpErrorListChannels(response, &metadata)
17970	}
17971	output := &ListChannelsOutput{}
17972	out.Result = output
17973
17974	var buff [1024]byte
17975	ringBuffer := smithyio.NewRingBuffer(buff[:])
17976
17977	body := io.TeeReader(response.Body, ringBuffer)
17978
17979	decoder := json.NewDecoder(body)
17980	decoder.UseNumber()
17981	var shape interface{}
17982	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
17983		var snapshot bytes.Buffer
17984		io.Copy(&snapshot, ringBuffer)
17985		err = &smithy.DeserializationError{
17986			Err:      fmt.Errorf("failed to decode response body, %w", err),
17987			Snapshot: snapshot.Bytes(),
17988		}
17989		return out, metadata, err
17990	}
17991
17992	err = awsRestjson1_deserializeOpDocumentListChannelsOutput(&output, shape)
17993	if err != nil {
17994		var snapshot bytes.Buffer
17995		io.Copy(&snapshot, ringBuffer)
17996		return out, metadata, &smithy.DeserializationError{
17997			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
17998			Snapshot: snapshot.Bytes(),
17999		}
18000	}
18001
18002	return out, metadata, err
18003}
18004
18005func awsRestjson1_deserializeOpErrorListChannels(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18006	var errorBuffer bytes.Buffer
18007	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18008		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18009	}
18010	errorBody := bytes.NewReader(errorBuffer.Bytes())
18011
18012	errorCode := "UnknownError"
18013	errorMessage := errorCode
18014
18015	code := response.Header.Get("X-Amzn-ErrorType")
18016	if len(code) != 0 {
18017		errorCode = restjson.SanitizeErrorCode(code)
18018	}
18019
18020	var buff [1024]byte
18021	ringBuffer := smithyio.NewRingBuffer(buff[:])
18022
18023	body := io.TeeReader(errorBody, ringBuffer)
18024	decoder := json.NewDecoder(body)
18025	decoder.UseNumber()
18026	code, message, err := restjson.GetErrorInfo(decoder)
18027	if err != nil {
18028		var snapshot bytes.Buffer
18029		io.Copy(&snapshot, ringBuffer)
18030		err = &smithy.DeserializationError{
18031			Err:      fmt.Errorf("failed to decode response body, %w", err),
18032			Snapshot: snapshot.Bytes(),
18033		}
18034		return err
18035	}
18036
18037	errorBody.Seek(0, io.SeekStart)
18038	if len(code) != 0 {
18039		errorCode = restjson.SanitizeErrorCode(code)
18040	}
18041	if len(message) != 0 {
18042		errorMessage = message
18043	}
18044
18045	switch {
18046	case strings.EqualFold("BadRequestException", errorCode):
18047		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18048
18049	case strings.EqualFold("ForbiddenException", errorCode):
18050		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18051
18052	case strings.EqualFold("ServiceFailureException", errorCode):
18053		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18054
18055	case strings.EqualFold("ServiceUnavailableException", errorCode):
18056		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18057
18058	case strings.EqualFold("ThrottledClientException", errorCode):
18059		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18060
18061	case strings.EqualFold("UnauthorizedClientException", errorCode):
18062		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18063
18064	default:
18065		genericError := &smithy.GenericAPIError{
18066			Code:    errorCode,
18067			Message: errorMessage,
18068		}
18069		return genericError
18070
18071	}
18072}
18073
18074func awsRestjson1_deserializeOpDocumentListChannelsOutput(v **ListChannelsOutput, value interface{}) error {
18075	if v == nil {
18076		return fmt.Errorf("unexpected nil of type %T", v)
18077	}
18078	if value == nil {
18079		return nil
18080	}
18081
18082	shape, ok := value.(map[string]interface{})
18083	if !ok {
18084		return fmt.Errorf("unexpected JSON type %v", value)
18085	}
18086
18087	var sv *ListChannelsOutput
18088	if *v == nil {
18089		sv = &ListChannelsOutput{}
18090	} else {
18091		sv = *v
18092	}
18093
18094	for key, value := range shape {
18095		switch key {
18096		case "Channels":
18097			if err := awsRestjson1_deserializeDocumentChannelSummaryList(&sv.Channels, value); err != nil {
18098				return err
18099			}
18100
18101		case "NextToken":
18102			if value != nil {
18103				jtv, ok := value.(string)
18104				if !ok {
18105					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18106				}
18107				sv.NextToken = ptr.String(jtv)
18108			}
18109
18110		default:
18111			_, _ = key, value
18112
18113		}
18114	}
18115	*v = sv
18116	return nil
18117}
18118
18119type awsRestjson1_deserializeOpListChannelsModeratedByAppInstanceUser struct {
18120}
18121
18122func (*awsRestjson1_deserializeOpListChannelsModeratedByAppInstanceUser) ID() string {
18123	return "OperationDeserializer"
18124}
18125
18126func (m *awsRestjson1_deserializeOpListChannelsModeratedByAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18127	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18128) {
18129	out, metadata, err = next.HandleDeserialize(ctx, in)
18130	if err != nil {
18131		return out, metadata, err
18132	}
18133
18134	response, ok := out.RawResponse.(*smithyhttp.Response)
18135	if !ok {
18136		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18137	}
18138
18139	if response.StatusCode < 200 || response.StatusCode >= 300 {
18140		return out, metadata, awsRestjson1_deserializeOpErrorListChannelsModeratedByAppInstanceUser(response, &metadata)
18141	}
18142	output := &ListChannelsModeratedByAppInstanceUserOutput{}
18143	out.Result = output
18144
18145	var buff [1024]byte
18146	ringBuffer := smithyio.NewRingBuffer(buff[:])
18147
18148	body := io.TeeReader(response.Body, ringBuffer)
18149
18150	decoder := json.NewDecoder(body)
18151	decoder.UseNumber()
18152	var shape interface{}
18153	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18154		var snapshot bytes.Buffer
18155		io.Copy(&snapshot, ringBuffer)
18156		err = &smithy.DeserializationError{
18157			Err:      fmt.Errorf("failed to decode response body, %w", err),
18158			Snapshot: snapshot.Bytes(),
18159		}
18160		return out, metadata, err
18161	}
18162
18163	err = awsRestjson1_deserializeOpDocumentListChannelsModeratedByAppInstanceUserOutput(&output, shape)
18164	if err != nil {
18165		var snapshot bytes.Buffer
18166		io.Copy(&snapshot, ringBuffer)
18167		return out, metadata, &smithy.DeserializationError{
18168			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18169			Snapshot: snapshot.Bytes(),
18170		}
18171	}
18172
18173	return out, metadata, err
18174}
18175
18176func awsRestjson1_deserializeOpErrorListChannelsModeratedByAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18177	var errorBuffer bytes.Buffer
18178	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18179		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18180	}
18181	errorBody := bytes.NewReader(errorBuffer.Bytes())
18182
18183	errorCode := "UnknownError"
18184	errorMessage := errorCode
18185
18186	code := response.Header.Get("X-Amzn-ErrorType")
18187	if len(code) != 0 {
18188		errorCode = restjson.SanitizeErrorCode(code)
18189	}
18190
18191	var buff [1024]byte
18192	ringBuffer := smithyio.NewRingBuffer(buff[:])
18193
18194	body := io.TeeReader(errorBody, ringBuffer)
18195	decoder := json.NewDecoder(body)
18196	decoder.UseNumber()
18197	code, message, err := restjson.GetErrorInfo(decoder)
18198	if err != nil {
18199		var snapshot bytes.Buffer
18200		io.Copy(&snapshot, ringBuffer)
18201		err = &smithy.DeserializationError{
18202			Err:      fmt.Errorf("failed to decode response body, %w", err),
18203			Snapshot: snapshot.Bytes(),
18204		}
18205		return err
18206	}
18207
18208	errorBody.Seek(0, io.SeekStart)
18209	if len(code) != 0 {
18210		errorCode = restjson.SanitizeErrorCode(code)
18211	}
18212	if len(message) != 0 {
18213		errorMessage = message
18214	}
18215
18216	switch {
18217	case strings.EqualFold("BadRequestException", errorCode):
18218		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18219
18220	case strings.EqualFold("ForbiddenException", errorCode):
18221		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18222
18223	case strings.EqualFold("ServiceFailureException", errorCode):
18224		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18225
18226	case strings.EqualFold("ServiceUnavailableException", errorCode):
18227		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18228
18229	case strings.EqualFold("ThrottledClientException", errorCode):
18230		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18231
18232	case strings.EqualFold("UnauthorizedClientException", errorCode):
18233		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18234
18235	default:
18236		genericError := &smithy.GenericAPIError{
18237			Code:    errorCode,
18238			Message: errorMessage,
18239		}
18240		return genericError
18241
18242	}
18243}
18244
18245func awsRestjson1_deserializeOpDocumentListChannelsModeratedByAppInstanceUserOutput(v **ListChannelsModeratedByAppInstanceUserOutput, value interface{}) error {
18246	if v == nil {
18247		return fmt.Errorf("unexpected nil of type %T", v)
18248	}
18249	if value == nil {
18250		return nil
18251	}
18252
18253	shape, ok := value.(map[string]interface{})
18254	if !ok {
18255		return fmt.Errorf("unexpected JSON type %v", value)
18256	}
18257
18258	var sv *ListChannelsModeratedByAppInstanceUserOutput
18259	if *v == nil {
18260		sv = &ListChannelsModeratedByAppInstanceUserOutput{}
18261	} else {
18262		sv = *v
18263	}
18264
18265	for key, value := range shape {
18266		switch key {
18267		case "Channels":
18268			if err := awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummaryList(&sv.Channels, value); err != nil {
18269				return err
18270			}
18271
18272		case "NextToken":
18273			if value != nil {
18274				jtv, ok := value.(string)
18275				if !ok {
18276					return fmt.Errorf("expected NextToken to be of type string, got %T instead", value)
18277				}
18278				sv.NextToken = ptr.String(jtv)
18279			}
18280
18281		default:
18282			_, _ = key, value
18283
18284		}
18285	}
18286	*v = sv
18287	return nil
18288}
18289
18290type awsRestjson1_deserializeOpListMeetings struct {
18291}
18292
18293func (*awsRestjson1_deserializeOpListMeetings) ID() string {
18294	return "OperationDeserializer"
18295}
18296
18297func (m *awsRestjson1_deserializeOpListMeetings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18298	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18299) {
18300	out, metadata, err = next.HandleDeserialize(ctx, in)
18301	if err != nil {
18302		return out, metadata, err
18303	}
18304
18305	response, ok := out.RawResponse.(*smithyhttp.Response)
18306	if !ok {
18307		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18308	}
18309
18310	if response.StatusCode < 200 || response.StatusCode >= 300 {
18311		return out, metadata, awsRestjson1_deserializeOpErrorListMeetings(response, &metadata)
18312	}
18313	output := &ListMeetingsOutput{}
18314	out.Result = output
18315
18316	var buff [1024]byte
18317	ringBuffer := smithyio.NewRingBuffer(buff[:])
18318
18319	body := io.TeeReader(response.Body, ringBuffer)
18320
18321	decoder := json.NewDecoder(body)
18322	decoder.UseNumber()
18323	var shape interface{}
18324	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18325		var snapshot bytes.Buffer
18326		io.Copy(&snapshot, ringBuffer)
18327		err = &smithy.DeserializationError{
18328			Err:      fmt.Errorf("failed to decode response body, %w", err),
18329			Snapshot: snapshot.Bytes(),
18330		}
18331		return out, metadata, err
18332	}
18333
18334	err = awsRestjson1_deserializeOpDocumentListMeetingsOutput(&output, shape)
18335	if err != nil {
18336		var snapshot bytes.Buffer
18337		io.Copy(&snapshot, ringBuffer)
18338		return out, metadata, &smithy.DeserializationError{
18339			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18340			Snapshot: snapshot.Bytes(),
18341		}
18342	}
18343
18344	return out, metadata, err
18345}
18346
18347func awsRestjson1_deserializeOpErrorListMeetings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18348	var errorBuffer bytes.Buffer
18349	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18350		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18351	}
18352	errorBody := bytes.NewReader(errorBuffer.Bytes())
18353
18354	errorCode := "UnknownError"
18355	errorMessage := errorCode
18356
18357	code := response.Header.Get("X-Amzn-ErrorType")
18358	if len(code) != 0 {
18359		errorCode = restjson.SanitizeErrorCode(code)
18360	}
18361
18362	var buff [1024]byte
18363	ringBuffer := smithyio.NewRingBuffer(buff[:])
18364
18365	body := io.TeeReader(errorBody, ringBuffer)
18366	decoder := json.NewDecoder(body)
18367	decoder.UseNumber()
18368	code, message, err := restjson.GetErrorInfo(decoder)
18369	if err != nil {
18370		var snapshot bytes.Buffer
18371		io.Copy(&snapshot, ringBuffer)
18372		err = &smithy.DeserializationError{
18373			Err:      fmt.Errorf("failed to decode response body, %w", err),
18374			Snapshot: snapshot.Bytes(),
18375		}
18376		return err
18377	}
18378
18379	errorBody.Seek(0, io.SeekStart)
18380	if len(code) != 0 {
18381		errorCode = restjson.SanitizeErrorCode(code)
18382	}
18383	if len(message) != 0 {
18384		errorMessage = message
18385	}
18386
18387	switch {
18388	case strings.EqualFold("BadRequestException", errorCode):
18389		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18390
18391	case strings.EqualFold("ForbiddenException", errorCode):
18392		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18393
18394	case strings.EqualFold("ServiceFailureException", errorCode):
18395		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18396
18397	case strings.EqualFold("ServiceUnavailableException", errorCode):
18398		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18399
18400	case strings.EqualFold("ThrottledClientException", errorCode):
18401		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18402
18403	case strings.EqualFold("UnauthorizedClientException", errorCode):
18404		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18405
18406	default:
18407		genericError := &smithy.GenericAPIError{
18408			Code:    errorCode,
18409			Message: errorMessage,
18410		}
18411		return genericError
18412
18413	}
18414}
18415
18416func awsRestjson1_deserializeOpDocumentListMeetingsOutput(v **ListMeetingsOutput, value interface{}) error {
18417	if v == nil {
18418		return fmt.Errorf("unexpected nil of type %T", v)
18419	}
18420	if value == nil {
18421		return nil
18422	}
18423
18424	shape, ok := value.(map[string]interface{})
18425	if !ok {
18426		return fmt.Errorf("unexpected JSON type %v", value)
18427	}
18428
18429	var sv *ListMeetingsOutput
18430	if *v == nil {
18431		sv = &ListMeetingsOutput{}
18432	} else {
18433		sv = *v
18434	}
18435
18436	for key, value := range shape {
18437		switch key {
18438		case "Meetings":
18439			if err := awsRestjson1_deserializeDocumentMeetingList(&sv.Meetings, value); err != nil {
18440				return err
18441			}
18442
18443		case "NextToken":
18444			if value != nil {
18445				jtv, ok := value.(string)
18446				if !ok {
18447					return fmt.Errorf("expected String to be of type string, got %T instead", value)
18448				}
18449				sv.NextToken = ptr.String(jtv)
18450			}
18451
18452		default:
18453			_, _ = key, value
18454
18455		}
18456	}
18457	*v = sv
18458	return nil
18459}
18460
18461type awsRestjson1_deserializeOpListMeetingTags struct {
18462}
18463
18464func (*awsRestjson1_deserializeOpListMeetingTags) ID() string {
18465	return "OperationDeserializer"
18466}
18467
18468func (m *awsRestjson1_deserializeOpListMeetingTags) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18469	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18470) {
18471	out, metadata, err = next.HandleDeserialize(ctx, in)
18472	if err != nil {
18473		return out, metadata, err
18474	}
18475
18476	response, ok := out.RawResponse.(*smithyhttp.Response)
18477	if !ok {
18478		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18479	}
18480
18481	if response.StatusCode < 200 || response.StatusCode >= 300 {
18482		return out, metadata, awsRestjson1_deserializeOpErrorListMeetingTags(response, &metadata)
18483	}
18484	output := &ListMeetingTagsOutput{}
18485	out.Result = output
18486
18487	var buff [1024]byte
18488	ringBuffer := smithyio.NewRingBuffer(buff[:])
18489
18490	body := io.TeeReader(response.Body, ringBuffer)
18491
18492	decoder := json.NewDecoder(body)
18493	decoder.UseNumber()
18494	var shape interface{}
18495	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18496		var snapshot bytes.Buffer
18497		io.Copy(&snapshot, ringBuffer)
18498		err = &smithy.DeserializationError{
18499			Err:      fmt.Errorf("failed to decode response body, %w", err),
18500			Snapshot: snapshot.Bytes(),
18501		}
18502		return out, metadata, err
18503	}
18504
18505	err = awsRestjson1_deserializeOpDocumentListMeetingTagsOutput(&output, shape)
18506	if err != nil {
18507		var snapshot bytes.Buffer
18508		io.Copy(&snapshot, ringBuffer)
18509		return out, metadata, &smithy.DeserializationError{
18510			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18511			Snapshot: snapshot.Bytes(),
18512		}
18513	}
18514
18515	return out, metadata, err
18516}
18517
18518func awsRestjson1_deserializeOpErrorListMeetingTags(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18519	var errorBuffer bytes.Buffer
18520	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18521		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18522	}
18523	errorBody := bytes.NewReader(errorBuffer.Bytes())
18524
18525	errorCode := "UnknownError"
18526	errorMessage := errorCode
18527
18528	code := response.Header.Get("X-Amzn-ErrorType")
18529	if len(code) != 0 {
18530		errorCode = restjson.SanitizeErrorCode(code)
18531	}
18532
18533	var buff [1024]byte
18534	ringBuffer := smithyio.NewRingBuffer(buff[:])
18535
18536	body := io.TeeReader(errorBody, ringBuffer)
18537	decoder := json.NewDecoder(body)
18538	decoder.UseNumber()
18539	code, message, err := restjson.GetErrorInfo(decoder)
18540	if err != nil {
18541		var snapshot bytes.Buffer
18542		io.Copy(&snapshot, ringBuffer)
18543		err = &smithy.DeserializationError{
18544			Err:      fmt.Errorf("failed to decode response body, %w", err),
18545			Snapshot: snapshot.Bytes(),
18546		}
18547		return err
18548	}
18549
18550	errorBody.Seek(0, io.SeekStart)
18551	if len(code) != 0 {
18552		errorCode = restjson.SanitizeErrorCode(code)
18553	}
18554	if len(message) != 0 {
18555		errorMessage = message
18556	}
18557
18558	switch {
18559	case strings.EqualFold("BadRequestException", errorCode):
18560		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18561
18562	case strings.EqualFold("ForbiddenException", errorCode):
18563		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18564
18565	case strings.EqualFold("NotFoundException", errorCode):
18566		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
18567
18568	case strings.EqualFold("ServiceFailureException", errorCode):
18569		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18570
18571	case strings.EqualFold("ServiceUnavailableException", errorCode):
18572		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18573
18574	case strings.EqualFold("ThrottledClientException", errorCode):
18575		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18576
18577	case strings.EqualFold("UnauthorizedClientException", errorCode):
18578		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18579
18580	default:
18581		genericError := &smithy.GenericAPIError{
18582			Code:    errorCode,
18583			Message: errorMessage,
18584		}
18585		return genericError
18586
18587	}
18588}
18589
18590func awsRestjson1_deserializeOpDocumentListMeetingTagsOutput(v **ListMeetingTagsOutput, value interface{}) error {
18591	if v == nil {
18592		return fmt.Errorf("unexpected nil of type %T", v)
18593	}
18594	if value == nil {
18595		return nil
18596	}
18597
18598	shape, ok := value.(map[string]interface{})
18599	if !ok {
18600		return fmt.Errorf("unexpected JSON type %v", value)
18601	}
18602
18603	var sv *ListMeetingTagsOutput
18604	if *v == nil {
18605		sv = &ListMeetingTagsOutput{}
18606	} else {
18607		sv = *v
18608	}
18609
18610	for key, value := range shape {
18611		switch key {
18612		case "Tags":
18613			if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil {
18614				return err
18615			}
18616
18617		default:
18618			_, _ = key, value
18619
18620		}
18621	}
18622	*v = sv
18623	return nil
18624}
18625
18626type awsRestjson1_deserializeOpListPhoneNumberOrders struct {
18627}
18628
18629func (*awsRestjson1_deserializeOpListPhoneNumberOrders) ID() string {
18630	return "OperationDeserializer"
18631}
18632
18633func (m *awsRestjson1_deserializeOpListPhoneNumberOrders) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18634	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18635) {
18636	out, metadata, err = next.HandleDeserialize(ctx, in)
18637	if err != nil {
18638		return out, metadata, err
18639	}
18640
18641	response, ok := out.RawResponse.(*smithyhttp.Response)
18642	if !ok {
18643		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18644	}
18645
18646	if response.StatusCode < 200 || response.StatusCode >= 300 {
18647		return out, metadata, awsRestjson1_deserializeOpErrorListPhoneNumberOrders(response, &metadata)
18648	}
18649	output := &ListPhoneNumberOrdersOutput{}
18650	out.Result = output
18651
18652	var buff [1024]byte
18653	ringBuffer := smithyio.NewRingBuffer(buff[:])
18654
18655	body := io.TeeReader(response.Body, ringBuffer)
18656
18657	decoder := json.NewDecoder(body)
18658	decoder.UseNumber()
18659	var shape interface{}
18660	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18661		var snapshot bytes.Buffer
18662		io.Copy(&snapshot, ringBuffer)
18663		err = &smithy.DeserializationError{
18664			Err:      fmt.Errorf("failed to decode response body, %w", err),
18665			Snapshot: snapshot.Bytes(),
18666		}
18667		return out, metadata, err
18668	}
18669
18670	err = awsRestjson1_deserializeOpDocumentListPhoneNumberOrdersOutput(&output, shape)
18671	if err != nil {
18672		var snapshot bytes.Buffer
18673		io.Copy(&snapshot, ringBuffer)
18674		return out, metadata, &smithy.DeserializationError{
18675			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18676			Snapshot: snapshot.Bytes(),
18677		}
18678	}
18679
18680	return out, metadata, err
18681}
18682
18683func awsRestjson1_deserializeOpErrorListPhoneNumberOrders(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18684	var errorBuffer bytes.Buffer
18685	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18686		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18687	}
18688	errorBody := bytes.NewReader(errorBuffer.Bytes())
18689
18690	errorCode := "UnknownError"
18691	errorMessage := errorCode
18692
18693	code := response.Header.Get("X-Amzn-ErrorType")
18694	if len(code) != 0 {
18695		errorCode = restjson.SanitizeErrorCode(code)
18696	}
18697
18698	var buff [1024]byte
18699	ringBuffer := smithyio.NewRingBuffer(buff[:])
18700
18701	body := io.TeeReader(errorBody, ringBuffer)
18702	decoder := json.NewDecoder(body)
18703	decoder.UseNumber()
18704	code, message, err := restjson.GetErrorInfo(decoder)
18705	if err != nil {
18706		var snapshot bytes.Buffer
18707		io.Copy(&snapshot, ringBuffer)
18708		err = &smithy.DeserializationError{
18709			Err:      fmt.Errorf("failed to decode response body, %w", err),
18710			Snapshot: snapshot.Bytes(),
18711		}
18712		return err
18713	}
18714
18715	errorBody.Seek(0, io.SeekStart)
18716	if len(code) != 0 {
18717		errorCode = restjson.SanitizeErrorCode(code)
18718	}
18719	if len(message) != 0 {
18720		errorMessage = message
18721	}
18722
18723	switch {
18724	case strings.EqualFold("BadRequestException", errorCode):
18725		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18726
18727	case strings.EqualFold("ForbiddenException", errorCode):
18728		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18729
18730	case strings.EqualFold("ServiceFailureException", errorCode):
18731		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18732
18733	case strings.EqualFold("ServiceUnavailableException", errorCode):
18734		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18735
18736	case strings.EqualFold("ThrottledClientException", errorCode):
18737		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18738
18739	case strings.EqualFold("UnauthorizedClientException", errorCode):
18740		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18741
18742	default:
18743		genericError := &smithy.GenericAPIError{
18744			Code:    errorCode,
18745			Message: errorMessage,
18746		}
18747		return genericError
18748
18749	}
18750}
18751
18752func awsRestjson1_deserializeOpDocumentListPhoneNumberOrdersOutput(v **ListPhoneNumberOrdersOutput, value interface{}) error {
18753	if v == nil {
18754		return fmt.Errorf("unexpected nil of type %T", v)
18755	}
18756	if value == nil {
18757		return nil
18758	}
18759
18760	shape, ok := value.(map[string]interface{})
18761	if !ok {
18762		return fmt.Errorf("unexpected JSON type %v", value)
18763	}
18764
18765	var sv *ListPhoneNumberOrdersOutput
18766	if *v == nil {
18767		sv = &ListPhoneNumberOrdersOutput{}
18768	} else {
18769		sv = *v
18770	}
18771
18772	for key, value := range shape {
18773		switch key {
18774		case "NextToken":
18775			if value != nil {
18776				jtv, ok := value.(string)
18777				if !ok {
18778					return fmt.Errorf("expected String to be of type string, got %T instead", value)
18779				}
18780				sv.NextToken = ptr.String(jtv)
18781			}
18782
18783		case "PhoneNumberOrders":
18784			if err := awsRestjson1_deserializeDocumentPhoneNumberOrderList(&sv.PhoneNumberOrders, value); err != nil {
18785				return err
18786			}
18787
18788		default:
18789			_, _ = key, value
18790
18791		}
18792	}
18793	*v = sv
18794	return nil
18795}
18796
18797type awsRestjson1_deserializeOpListPhoneNumbers struct {
18798}
18799
18800func (*awsRestjson1_deserializeOpListPhoneNumbers) ID() string {
18801	return "OperationDeserializer"
18802}
18803
18804func (m *awsRestjson1_deserializeOpListPhoneNumbers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18805	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18806) {
18807	out, metadata, err = next.HandleDeserialize(ctx, in)
18808	if err != nil {
18809		return out, metadata, err
18810	}
18811
18812	response, ok := out.RawResponse.(*smithyhttp.Response)
18813	if !ok {
18814		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18815	}
18816
18817	if response.StatusCode < 200 || response.StatusCode >= 300 {
18818		return out, metadata, awsRestjson1_deserializeOpErrorListPhoneNumbers(response, &metadata)
18819	}
18820	output := &ListPhoneNumbersOutput{}
18821	out.Result = output
18822
18823	var buff [1024]byte
18824	ringBuffer := smithyio.NewRingBuffer(buff[:])
18825
18826	body := io.TeeReader(response.Body, ringBuffer)
18827
18828	decoder := json.NewDecoder(body)
18829	decoder.UseNumber()
18830	var shape interface{}
18831	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
18832		var snapshot bytes.Buffer
18833		io.Copy(&snapshot, ringBuffer)
18834		err = &smithy.DeserializationError{
18835			Err:      fmt.Errorf("failed to decode response body, %w", err),
18836			Snapshot: snapshot.Bytes(),
18837		}
18838		return out, metadata, err
18839	}
18840
18841	err = awsRestjson1_deserializeOpDocumentListPhoneNumbersOutput(&output, shape)
18842	if err != nil {
18843		var snapshot bytes.Buffer
18844		io.Copy(&snapshot, ringBuffer)
18845		return out, metadata, &smithy.DeserializationError{
18846			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
18847			Snapshot: snapshot.Bytes(),
18848		}
18849	}
18850
18851	return out, metadata, err
18852}
18853
18854func awsRestjson1_deserializeOpErrorListPhoneNumbers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
18855	var errorBuffer bytes.Buffer
18856	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
18857		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
18858	}
18859	errorBody := bytes.NewReader(errorBuffer.Bytes())
18860
18861	errorCode := "UnknownError"
18862	errorMessage := errorCode
18863
18864	code := response.Header.Get("X-Amzn-ErrorType")
18865	if len(code) != 0 {
18866		errorCode = restjson.SanitizeErrorCode(code)
18867	}
18868
18869	var buff [1024]byte
18870	ringBuffer := smithyio.NewRingBuffer(buff[:])
18871
18872	body := io.TeeReader(errorBody, ringBuffer)
18873	decoder := json.NewDecoder(body)
18874	decoder.UseNumber()
18875	code, message, err := restjson.GetErrorInfo(decoder)
18876	if err != nil {
18877		var snapshot bytes.Buffer
18878		io.Copy(&snapshot, ringBuffer)
18879		err = &smithy.DeserializationError{
18880			Err:      fmt.Errorf("failed to decode response body, %w", err),
18881			Snapshot: snapshot.Bytes(),
18882		}
18883		return err
18884	}
18885
18886	errorBody.Seek(0, io.SeekStart)
18887	if len(code) != 0 {
18888		errorCode = restjson.SanitizeErrorCode(code)
18889	}
18890	if len(message) != 0 {
18891		errorMessage = message
18892	}
18893
18894	switch {
18895	case strings.EqualFold("BadRequestException", errorCode):
18896		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
18897
18898	case strings.EqualFold("ForbiddenException", errorCode):
18899		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
18900
18901	case strings.EqualFold("ServiceFailureException", errorCode):
18902		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
18903
18904	case strings.EqualFold("ServiceUnavailableException", errorCode):
18905		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
18906
18907	case strings.EqualFold("ThrottledClientException", errorCode):
18908		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
18909
18910	case strings.EqualFold("UnauthorizedClientException", errorCode):
18911		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
18912
18913	default:
18914		genericError := &smithy.GenericAPIError{
18915			Code:    errorCode,
18916			Message: errorMessage,
18917		}
18918		return genericError
18919
18920	}
18921}
18922
18923func awsRestjson1_deserializeOpDocumentListPhoneNumbersOutput(v **ListPhoneNumbersOutput, value interface{}) error {
18924	if v == nil {
18925		return fmt.Errorf("unexpected nil of type %T", v)
18926	}
18927	if value == nil {
18928		return nil
18929	}
18930
18931	shape, ok := value.(map[string]interface{})
18932	if !ok {
18933		return fmt.Errorf("unexpected JSON type %v", value)
18934	}
18935
18936	var sv *ListPhoneNumbersOutput
18937	if *v == nil {
18938		sv = &ListPhoneNumbersOutput{}
18939	} else {
18940		sv = *v
18941	}
18942
18943	for key, value := range shape {
18944		switch key {
18945		case "NextToken":
18946			if value != nil {
18947				jtv, ok := value.(string)
18948				if !ok {
18949					return fmt.Errorf("expected String to be of type string, got %T instead", value)
18950				}
18951				sv.NextToken = ptr.String(jtv)
18952			}
18953
18954		case "PhoneNumbers":
18955			if err := awsRestjson1_deserializeDocumentPhoneNumberList(&sv.PhoneNumbers, value); err != nil {
18956				return err
18957			}
18958
18959		default:
18960			_, _ = key, value
18961
18962		}
18963	}
18964	*v = sv
18965	return nil
18966}
18967
18968type awsRestjson1_deserializeOpListProxySessions struct {
18969}
18970
18971func (*awsRestjson1_deserializeOpListProxySessions) ID() string {
18972	return "OperationDeserializer"
18973}
18974
18975func (m *awsRestjson1_deserializeOpListProxySessions) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
18976	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
18977) {
18978	out, metadata, err = next.HandleDeserialize(ctx, in)
18979	if err != nil {
18980		return out, metadata, err
18981	}
18982
18983	response, ok := out.RawResponse.(*smithyhttp.Response)
18984	if !ok {
18985		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
18986	}
18987
18988	if response.StatusCode < 200 || response.StatusCode >= 300 {
18989		return out, metadata, awsRestjson1_deserializeOpErrorListProxySessions(response, &metadata)
18990	}
18991	output := &ListProxySessionsOutput{}
18992	out.Result = output
18993
18994	var buff [1024]byte
18995	ringBuffer := smithyio.NewRingBuffer(buff[:])
18996
18997	body := io.TeeReader(response.Body, ringBuffer)
18998
18999	decoder := json.NewDecoder(body)
19000	decoder.UseNumber()
19001	var shape interface{}
19002	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19003		var snapshot bytes.Buffer
19004		io.Copy(&snapshot, ringBuffer)
19005		err = &smithy.DeserializationError{
19006			Err:      fmt.Errorf("failed to decode response body, %w", err),
19007			Snapshot: snapshot.Bytes(),
19008		}
19009		return out, metadata, err
19010	}
19011
19012	err = awsRestjson1_deserializeOpDocumentListProxySessionsOutput(&output, shape)
19013	if err != nil {
19014		var snapshot bytes.Buffer
19015		io.Copy(&snapshot, ringBuffer)
19016		return out, metadata, &smithy.DeserializationError{
19017			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19018			Snapshot: snapshot.Bytes(),
19019		}
19020	}
19021
19022	return out, metadata, err
19023}
19024
19025func awsRestjson1_deserializeOpErrorListProxySessions(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19026	var errorBuffer bytes.Buffer
19027	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19028		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19029	}
19030	errorBody := bytes.NewReader(errorBuffer.Bytes())
19031
19032	errorCode := "UnknownError"
19033	errorMessage := errorCode
19034
19035	code := response.Header.Get("X-Amzn-ErrorType")
19036	if len(code) != 0 {
19037		errorCode = restjson.SanitizeErrorCode(code)
19038	}
19039
19040	var buff [1024]byte
19041	ringBuffer := smithyio.NewRingBuffer(buff[:])
19042
19043	body := io.TeeReader(errorBody, ringBuffer)
19044	decoder := json.NewDecoder(body)
19045	decoder.UseNumber()
19046	code, message, err := restjson.GetErrorInfo(decoder)
19047	if err != nil {
19048		var snapshot bytes.Buffer
19049		io.Copy(&snapshot, ringBuffer)
19050		err = &smithy.DeserializationError{
19051			Err:      fmt.Errorf("failed to decode response body, %w", err),
19052			Snapshot: snapshot.Bytes(),
19053		}
19054		return err
19055	}
19056
19057	errorBody.Seek(0, io.SeekStart)
19058	if len(code) != 0 {
19059		errorCode = restjson.SanitizeErrorCode(code)
19060	}
19061	if len(message) != 0 {
19062		errorMessage = message
19063	}
19064
19065	switch {
19066	case strings.EqualFold("BadRequestException", errorCode):
19067		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19068
19069	case strings.EqualFold("ForbiddenException", errorCode):
19070		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19071
19072	case strings.EqualFold("NotFoundException", errorCode):
19073		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19074
19075	case strings.EqualFold("ServiceFailureException", errorCode):
19076		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19077
19078	case strings.EqualFold("ServiceUnavailableException", errorCode):
19079		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19080
19081	case strings.EqualFold("ThrottledClientException", errorCode):
19082		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19083
19084	case strings.EqualFold("UnauthorizedClientException", errorCode):
19085		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19086
19087	default:
19088		genericError := &smithy.GenericAPIError{
19089			Code:    errorCode,
19090			Message: errorMessage,
19091		}
19092		return genericError
19093
19094	}
19095}
19096
19097func awsRestjson1_deserializeOpDocumentListProxySessionsOutput(v **ListProxySessionsOutput, value interface{}) error {
19098	if v == nil {
19099		return fmt.Errorf("unexpected nil of type %T", v)
19100	}
19101	if value == nil {
19102		return nil
19103	}
19104
19105	shape, ok := value.(map[string]interface{})
19106	if !ok {
19107		return fmt.Errorf("unexpected JSON type %v", value)
19108	}
19109
19110	var sv *ListProxySessionsOutput
19111	if *v == nil {
19112		sv = &ListProxySessionsOutput{}
19113	} else {
19114		sv = *v
19115	}
19116
19117	for key, value := range shape {
19118		switch key {
19119		case "NextToken":
19120			if value != nil {
19121				jtv, ok := value.(string)
19122				if !ok {
19123					return fmt.Errorf("expected NextTokenString to be of type string, got %T instead", value)
19124				}
19125				sv.NextToken = ptr.String(jtv)
19126			}
19127
19128		case "ProxySessions":
19129			if err := awsRestjson1_deserializeDocumentProxySessions(&sv.ProxySessions, value); err != nil {
19130				return err
19131			}
19132
19133		default:
19134			_, _ = key, value
19135
19136		}
19137	}
19138	*v = sv
19139	return nil
19140}
19141
19142type awsRestjson1_deserializeOpListRoomMemberships struct {
19143}
19144
19145func (*awsRestjson1_deserializeOpListRoomMemberships) ID() string {
19146	return "OperationDeserializer"
19147}
19148
19149func (m *awsRestjson1_deserializeOpListRoomMemberships) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19150	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19151) {
19152	out, metadata, err = next.HandleDeserialize(ctx, in)
19153	if err != nil {
19154		return out, metadata, err
19155	}
19156
19157	response, ok := out.RawResponse.(*smithyhttp.Response)
19158	if !ok {
19159		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19160	}
19161
19162	if response.StatusCode < 200 || response.StatusCode >= 300 {
19163		return out, metadata, awsRestjson1_deserializeOpErrorListRoomMemberships(response, &metadata)
19164	}
19165	output := &ListRoomMembershipsOutput{}
19166	out.Result = output
19167
19168	var buff [1024]byte
19169	ringBuffer := smithyio.NewRingBuffer(buff[:])
19170
19171	body := io.TeeReader(response.Body, ringBuffer)
19172
19173	decoder := json.NewDecoder(body)
19174	decoder.UseNumber()
19175	var shape interface{}
19176	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19177		var snapshot bytes.Buffer
19178		io.Copy(&snapshot, ringBuffer)
19179		err = &smithy.DeserializationError{
19180			Err:      fmt.Errorf("failed to decode response body, %w", err),
19181			Snapshot: snapshot.Bytes(),
19182		}
19183		return out, metadata, err
19184	}
19185
19186	err = awsRestjson1_deserializeOpDocumentListRoomMembershipsOutput(&output, shape)
19187	if err != nil {
19188		var snapshot bytes.Buffer
19189		io.Copy(&snapshot, ringBuffer)
19190		return out, metadata, &smithy.DeserializationError{
19191			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19192			Snapshot: snapshot.Bytes(),
19193		}
19194	}
19195
19196	return out, metadata, err
19197}
19198
19199func awsRestjson1_deserializeOpErrorListRoomMemberships(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19200	var errorBuffer bytes.Buffer
19201	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19202		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19203	}
19204	errorBody := bytes.NewReader(errorBuffer.Bytes())
19205
19206	errorCode := "UnknownError"
19207	errorMessage := errorCode
19208
19209	code := response.Header.Get("X-Amzn-ErrorType")
19210	if len(code) != 0 {
19211		errorCode = restjson.SanitizeErrorCode(code)
19212	}
19213
19214	var buff [1024]byte
19215	ringBuffer := smithyio.NewRingBuffer(buff[:])
19216
19217	body := io.TeeReader(errorBody, ringBuffer)
19218	decoder := json.NewDecoder(body)
19219	decoder.UseNumber()
19220	code, message, err := restjson.GetErrorInfo(decoder)
19221	if err != nil {
19222		var snapshot bytes.Buffer
19223		io.Copy(&snapshot, ringBuffer)
19224		err = &smithy.DeserializationError{
19225			Err:      fmt.Errorf("failed to decode response body, %w", err),
19226			Snapshot: snapshot.Bytes(),
19227		}
19228		return err
19229	}
19230
19231	errorBody.Seek(0, io.SeekStart)
19232	if len(code) != 0 {
19233		errorCode = restjson.SanitizeErrorCode(code)
19234	}
19235	if len(message) != 0 {
19236		errorMessage = message
19237	}
19238
19239	switch {
19240	case strings.EqualFold("BadRequestException", errorCode):
19241		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19242
19243	case strings.EqualFold("ForbiddenException", errorCode):
19244		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19245
19246	case strings.EqualFold("NotFoundException", errorCode):
19247		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19248
19249	case strings.EqualFold("ServiceFailureException", errorCode):
19250		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19251
19252	case strings.EqualFold("ServiceUnavailableException", errorCode):
19253		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19254
19255	case strings.EqualFold("ThrottledClientException", errorCode):
19256		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19257
19258	case strings.EqualFold("UnauthorizedClientException", errorCode):
19259		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19260
19261	default:
19262		genericError := &smithy.GenericAPIError{
19263			Code:    errorCode,
19264			Message: errorMessage,
19265		}
19266		return genericError
19267
19268	}
19269}
19270
19271func awsRestjson1_deserializeOpDocumentListRoomMembershipsOutput(v **ListRoomMembershipsOutput, value interface{}) error {
19272	if v == nil {
19273		return fmt.Errorf("unexpected nil of type %T", v)
19274	}
19275	if value == nil {
19276		return nil
19277	}
19278
19279	shape, ok := value.(map[string]interface{})
19280	if !ok {
19281		return fmt.Errorf("unexpected JSON type %v", value)
19282	}
19283
19284	var sv *ListRoomMembershipsOutput
19285	if *v == nil {
19286		sv = &ListRoomMembershipsOutput{}
19287	} else {
19288		sv = *v
19289	}
19290
19291	for key, value := range shape {
19292		switch key {
19293		case "NextToken":
19294			if value != nil {
19295				jtv, ok := value.(string)
19296				if !ok {
19297					return fmt.Errorf("expected String to be of type string, got %T instead", value)
19298				}
19299				sv.NextToken = ptr.String(jtv)
19300			}
19301
19302		case "RoomMemberships":
19303			if err := awsRestjson1_deserializeDocumentRoomMembershipList(&sv.RoomMemberships, value); err != nil {
19304				return err
19305			}
19306
19307		default:
19308			_, _ = key, value
19309
19310		}
19311	}
19312	*v = sv
19313	return nil
19314}
19315
19316type awsRestjson1_deserializeOpListRooms struct {
19317}
19318
19319func (*awsRestjson1_deserializeOpListRooms) ID() string {
19320	return "OperationDeserializer"
19321}
19322
19323func (m *awsRestjson1_deserializeOpListRooms) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19324	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19325) {
19326	out, metadata, err = next.HandleDeserialize(ctx, in)
19327	if err != nil {
19328		return out, metadata, err
19329	}
19330
19331	response, ok := out.RawResponse.(*smithyhttp.Response)
19332	if !ok {
19333		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19334	}
19335
19336	if response.StatusCode < 200 || response.StatusCode >= 300 {
19337		return out, metadata, awsRestjson1_deserializeOpErrorListRooms(response, &metadata)
19338	}
19339	output := &ListRoomsOutput{}
19340	out.Result = output
19341
19342	var buff [1024]byte
19343	ringBuffer := smithyio.NewRingBuffer(buff[:])
19344
19345	body := io.TeeReader(response.Body, ringBuffer)
19346
19347	decoder := json.NewDecoder(body)
19348	decoder.UseNumber()
19349	var shape interface{}
19350	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19351		var snapshot bytes.Buffer
19352		io.Copy(&snapshot, ringBuffer)
19353		err = &smithy.DeserializationError{
19354			Err:      fmt.Errorf("failed to decode response body, %w", err),
19355			Snapshot: snapshot.Bytes(),
19356		}
19357		return out, metadata, err
19358	}
19359
19360	err = awsRestjson1_deserializeOpDocumentListRoomsOutput(&output, shape)
19361	if err != nil {
19362		var snapshot bytes.Buffer
19363		io.Copy(&snapshot, ringBuffer)
19364		return out, metadata, &smithy.DeserializationError{
19365			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19366			Snapshot: snapshot.Bytes(),
19367		}
19368	}
19369
19370	return out, metadata, err
19371}
19372
19373func awsRestjson1_deserializeOpErrorListRooms(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19374	var errorBuffer bytes.Buffer
19375	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19376		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19377	}
19378	errorBody := bytes.NewReader(errorBuffer.Bytes())
19379
19380	errorCode := "UnknownError"
19381	errorMessage := errorCode
19382
19383	code := response.Header.Get("X-Amzn-ErrorType")
19384	if len(code) != 0 {
19385		errorCode = restjson.SanitizeErrorCode(code)
19386	}
19387
19388	var buff [1024]byte
19389	ringBuffer := smithyio.NewRingBuffer(buff[:])
19390
19391	body := io.TeeReader(errorBody, ringBuffer)
19392	decoder := json.NewDecoder(body)
19393	decoder.UseNumber()
19394	code, message, err := restjson.GetErrorInfo(decoder)
19395	if err != nil {
19396		var snapshot bytes.Buffer
19397		io.Copy(&snapshot, ringBuffer)
19398		err = &smithy.DeserializationError{
19399			Err:      fmt.Errorf("failed to decode response body, %w", err),
19400			Snapshot: snapshot.Bytes(),
19401		}
19402		return err
19403	}
19404
19405	errorBody.Seek(0, io.SeekStart)
19406	if len(code) != 0 {
19407		errorCode = restjson.SanitizeErrorCode(code)
19408	}
19409	if len(message) != 0 {
19410		errorMessage = message
19411	}
19412
19413	switch {
19414	case strings.EqualFold("BadRequestException", errorCode):
19415		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19416
19417	case strings.EqualFold("ForbiddenException", errorCode):
19418		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19419
19420	case strings.EqualFold("NotFoundException", errorCode):
19421		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19422
19423	case strings.EqualFold("ServiceFailureException", errorCode):
19424		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19425
19426	case strings.EqualFold("ServiceUnavailableException", errorCode):
19427		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19428
19429	case strings.EqualFold("ThrottledClientException", errorCode):
19430		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19431
19432	case strings.EqualFold("UnauthorizedClientException", errorCode):
19433		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19434
19435	default:
19436		genericError := &smithy.GenericAPIError{
19437			Code:    errorCode,
19438			Message: errorMessage,
19439		}
19440		return genericError
19441
19442	}
19443}
19444
19445func awsRestjson1_deserializeOpDocumentListRoomsOutput(v **ListRoomsOutput, value interface{}) error {
19446	if v == nil {
19447		return fmt.Errorf("unexpected nil of type %T", v)
19448	}
19449	if value == nil {
19450		return nil
19451	}
19452
19453	shape, ok := value.(map[string]interface{})
19454	if !ok {
19455		return fmt.Errorf("unexpected JSON type %v", value)
19456	}
19457
19458	var sv *ListRoomsOutput
19459	if *v == nil {
19460		sv = &ListRoomsOutput{}
19461	} else {
19462		sv = *v
19463	}
19464
19465	for key, value := range shape {
19466		switch key {
19467		case "NextToken":
19468			if value != nil {
19469				jtv, ok := value.(string)
19470				if !ok {
19471					return fmt.Errorf("expected String to be of type string, got %T instead", value)
19472				}
19473				sv.NextToken = ptr.String(jtv)
19474			}
19475
19476		case "Rooms":
19477			if err := awsRestjson1_deserializeDocumentRoomList(&sv.Rooms, value); err != nil {
19478				return err
19479			}
19480
19481		default:
19482			_, _ = key, value
19483
19484		}
19485	}
19486	*v = sv
19487	return nil
19488}
19489
19490type awsRestjson1_deserializeOpListSipMediaApplications struct {
19491}
19492
19493func (*awsRestjson1_deserializeOpListSipMediaApplications) ID() string {
19494	return "OperationDeserializer"
19495}
19496
19497func (m *awsRestjson1_deserializeOpListSipMediaApplications) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19498	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19499) {
19500	out, metadata, err = next.HandleDeserialize(ctx, in)
19501	if err != nil {
19502		return out, metadata, err
19503	}
19504
19505	response, ok := out.RawResponse.(*smithyhttp.Response)
19506	if !ok {
19507		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19508	}
19509
19510	if response.StatusCode < 200 || response.StatusCode >= 300 {
19511		return out, metadata, awsRestjson1_deserializeOpErrorListSipMediaApplications(response, &metadata)
19512	}
19513	output := &ListSipMediaApplicationsOutput{}
19514	out.Result = output
19515
19516	var buff [1024]byte
19517	ringBuffer := smithyio.NewRingBuffer(buff[:])
19518
19519	body := io.TeeReader(response.Body, ringBuffer)
19520
19521	decoder := json.NewDecoder(body)
19522	decoder.UseNumber()
19523	var shape interface{}
19524	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19525		var snapshot bytes.Buffer
19526		io.Copy(&snapshot, ringBuffer)
19527		err = &smithy.DeserializationError{
19528			Err:      fmt.Errorf("failed to decode response body, %w", err),
19529			Snapshot: snapshot.Bytes(),
19530		}
19531		return out, metadata, err
19532	}
19533
19534	err = awsRestjson1_deserializeOpDocumentListSipMediaApplicationsOutput(&output, shape)
19535	if err != nil {
19536		var snapshot bytes.Buffer
19537		io.Copy(&snapshot, ringBuffer)
19538		return out, metadata, &smithy.DeserializationError{
19539			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19540			Snapshot: snapshot.Bytes(),
19541		}
19542	}
19543
19544	return out, metadata, err
19545}
19546
19547func awsRestjson1_deserializeOpErrorListSipMediaApplications(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19548	var errorBuffer bytes.Buffer
19549	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19550		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19551	}
19552	errorBody := bytes.NewReader(errorBuffer.Bytes())
19553
19554	errorCode := "UnknownError"
19555	errorMessage := errorCode
19556
19557	code := response.Header.Get("X-Amzn-ErrorType")
19558	if len(code) != 0 {
19559		errorCode = restjson.SanitizeErrorCode(code)
19560	}
19561
19562	var buff [1024]byte
19563	ringBuffer := smithyio.NewRingBuffer(buff[:])
19564
19565	body := io.TeeReader(errorBody, ringBuffer)
19566	decoder := json.NewDecoder(body)
19567	decoder.UseNumber()
19568	code, message, err := restjson.GetErrorInfo(decoder)
19569	if err != nil {
19570		var snapshot bytes.Buffer
19571		io.Copy(&snapshot, ringBuffer)
19572		err = &smithy.DeserializationError{
19573			Err:      fmt.Errorf("failed to decode response body, %w", err),
19574			Snapshot: snapshot.Bytes(),
19575		}
19576		return err
19577	}
19578
19579	errorBody.Seek(0, io.SeekStart)
19580	if len(code) != 0 {
19581		errorCode = restjson.SanitizeErrorCode(code)
19582	}
19583	if len(message) != 0 {
19584		errorMessage = message
19585	}
19586
19587	switch {
19588	case strings.EqualFold("BadRequestException", errorCode):
19589		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19590
19591	case strings.EqualFold("ForbiddenException", errorCode):
19592		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19593
19594	case strings.EqualFold("ServiceFailureException", errorCode):
19595		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19596
19597	case strings.EqualFold("ServiceUnavailableException", errorCode):
19598		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19599
19600	case strings.EqualFold("ThrottledClientException", errorCode):
19601		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19602
19603	case strings.EqualFold("UnauthorizedClientException", errorCode):
19604		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19605
19606	default:
19607		genericError := &smithy.GenericAPIError{
19608			Code:    errorCode,
19609			Message: errorMessage,
19610		}
19611		return genericError
19612
19613	}
19614}
19615
19616func awsRestjson1_deserializeOpDocumentListSipMediaApplicationsOutput(v **ListSipMediaApplicationsOutput, value interface{}) error {
19617	if v == nil {
19618		return fmt.Errorf("unexpected nil of type %T", v)
19619	}
19620	if value == nil {
19621		return nil
19622	}
19623
19624	shape, ok := value.(map[string]interface{})
19625	if !ok {
19626		return fmt.Errorf("unexpected JSON type %v", value)
19627	}
19628
19629	var sv *ListSipMediaApplicationsOutput
19630	if *v == nil {
19631		sv = &ListSipMediaApplicationsOutput{}
19632	} else {
19633		sv = *v
19634	}
19635
19636	for key, value := range shape {
19637		switch key {
19638		case "NextToken":
19639			if value != nil {
19640				jtv, ok := value.(string)
19641				if !ok {
19642					return fmt.Errorf("expected NextTokenString to be of type string, got %T instead", value)
19643				}
19644				sv.NextToken = ptr.String(jtv)
19645			}
19646
19647		case "SipMediaApplications":
19648			if err := awsRestjson1_deserializeDocumentSipMediaApplicationList(&sv.SipMediaApplications, value); err != nil {
19649				return err
19650			}
19651
19652		default:
19653			_, _ = key, value
19654
19655		}
19656	}
19657	*v = sv
19658	return nil
19659}
19660
19661type awsRestjson1_deserializeOpListSipRules struct {
19662}
19663
19664func (*awsRestjson1_deserializeOpListSipRules) ID() string {
19665	return "OperationDeserializer"
19666}
19667
19668func (m *awsRestjson1_deserializeOpListSipRules) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19669	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19670) {
19671	out, metadata, err = next.HandleDeserialize(ctx, in)
19672	if err != nil {
19673		return out, metadata, err
19674	}
19675
19676	response, ok := out.RawResponse.(*smithyhttp.Response)
19677	if !ok {
19678		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19679	}
19680
19681	if response.StatusCode < 200 || response.StatusCode >= 300 {
19682		return out, metadata, awsRestjson1_deserializeOpErrorListSipRules(response, &metadata)
19683	}
19684	output := &ListSipRulesOutput{}
19685	out.Result = output
19686
19687	var buff [1024]byte
19688	ringBuffer := smithyio.NewRingBuffer(buff[:])
19689
19690	body := io.TeeReader(response.Body, ringBuffer)
19691
19692	decoder := json.NewDecoder(body)
19693	decoder.UseNumber()
19694	var shape interface{}
19695	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19696		var snapshot bytes.Buffer
19697		io.Copy(&snapshot, ringBuffer)
19698		err = &smithy.DeserializationError{
19699			Err:      fmt.Errorf("failed to decode response body, %w", err),
19700			Snapshot: snapshot.Bytes(),
19701		}
19702		return out, metadata, err
19703	}
19704
19705	err = awsRestjson1_deserializeOpDocumentListSipRulesOutput(&output, shape)
19706	if err != nil {
19707		var snapshot bytes.Buffer
19708		io.Copy(&snapshot, ringBuffer)
19709		return out, metadata, &smithy.DeserializationError{
19710			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19711			Snapshot: snapshot.Bytes(),
19712		}
19713	}
19714
19715	return out, metadata, err
19716}
19717
19718func awsRestjson1_deserializeOpErrorListSipRules(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19719	var errorBuffer bytes.Buffer
19720	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19721		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19722	}
19723	errorBody := bytes.NewReader(errorBuffer.Bytes())
19724
19725	errorCode := "UnknownError"
19726	errorMessage := errorCode
19727
19728	code := response.Header.Get("X-Amzn-ErrorType")
19729	if len(code) != 0 {
19730		errorCode = restjson.SanitizeErrorCode(code)
19731	}
19732
19733	var buff [1024]byte
19734	ringBuffer := smithyio.NewRingBuffer(buff[:])
19735
19736	body := io.TeeReader(errorBody, ringBuffer)
19737	decoder := json.NewDecoder(body)
19738	decoder.UseNumber()
19739	code, message, err := restjson.GetErrorInfo(decoder)
19740	if err != nil {
19741		var snapshot bytes.Buffer
19742		io.Copy(&snapshot, ringBuffer)
19743		err = &smithy.DeserializationError{
19744			Err:      fmt.Errorf("failed to decode response body, %w", err),
19745			Snapshot: snapshot.Bytes(),
19746		}
19747		return err
19748	}
19749
19750	errorBody.Seek(0, io.SeekStart)
19751	if len(code) != 0 {
19752		errorCode = restjson.SanitizeErrorCode(code)
19753	}
19754	if len(message) != 0 {
19755		errorMessage = message
19756	}
19757
19758	switch {
19759	case strings.EqualFold("BadRequestException", errorCode):
19760		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19761
19762	case strings.EqualFold("ForbiddenException", errorCode):
19763		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19764
19765	case strings.EqualFold("ServiceFailureException", errorCode):
19766		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19767
19768	case strings.EqualFold("ServiceUnavailableException", errorCode):
19769		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19770
19771	case strings.EqualFold("ThrottledClientException", errorCode):
19772		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
19773
19774	case strings.EqualFold("UnauthorizedClientException", errorCode):
19775		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19776
19777	default:
19778		genericError := &smithy.GenericAPIError{
19779			Code:    errorCode,
19780			Message: errorMessage,
19781		}
19782		return genericError
19783
19784	}
19785}
19786
19787func awsRestjson1_deserializeOpDocumentListSipRulesOutput(v **ListSipRulesOutput, value interface{}) error {
19788	if v == nil {
19789		return fmt.Errorf("unexpected nil of type %T", v)
19790	}
19791	if value == nil {
19792		return nil
19793	}
19794
19795	shape, ok := value.(map[string]interface{})
19796	if !ok {
19797		return fmt.Errorf("unexpected JSON type %v", value)
19798	}
19799
19800	var sv *ListSipRulesOutput
19801	if *v == nil {
19802		sv = &ListSipRulesOutput{}
19803	} else {
19804		sv = *v
19805	}
19806
19807	for key, value := range shape {
19808		switch key {
19809		case "NextToken":
19810			if value != nil {
19811				jtv, ok := value.(string)
19812				if !ok {
19813					return fmt.Errorf("expected NextTokenString to be of type string, got %T instead", value)
19814				}
19815				sv.NextToken = ptr.String(jtv)
19816			}
19817
19818		case "SipRules":
19819			if err := awsRestjson1_deserializeDocumentSipRuleList(&sv.SipRules, value); err != nil {
19820				return err
19821			}
19822
19823		default:
19824			_, _ = key, value
19825
19826		}
19827	}
19828	*v = sv
19829	return nil
19830}
19831
19832type awsRestjson1_deserializeOpListTagsForResource struct {
19833}
19834
19835func (*awsRestjson1_deserializeOpListTagsForResource) ID() string {
19836	return "OperationDeserializer"
19837}
19838
19839func (m *awsRestjson1_deserializeOpListTagsForResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
19840	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
19841) {
19842	out, metadata, err = next.HandleDeserialize(ctx, in)
19843	if err != nil {
19844		return out, metadata, err
19845	}
19846
19847	response, ok := out.RawResponse.(*smithyhttp.Response)
19848	if !ok {
19849		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
19850	}
19851
19852	if response.StatusCode < 200 || response.StatusCode >= 300 {
19853		return out, metadata, awsRestjson1_deserializeOpErrorListTagsForResource(response, &metadata)
19854	}
19855	output := &ListTagsForResourceOutput{}
19856	out.Result = output
19857
19858	var buff [1024]byte
19859	ringBuffer := smithyio.NewRingBuffer(buff[:])
19860
19861	body := io.TeeReader(response.Body, ringBuffer)
19862
19863	decoder := json.NewDecoder(body)
19864	decoder.UseNumber()
19865	var shape interface{}
19866	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
19867		var snapshot bytes.Buffer
19868		io.Copy(&snapshot, ringBuffer)
19869		err = &smithy.DeserializationError{
19870			Err:      fmt.Errorf("failed to decode response body, %w", err),
19871			Snapshot: snapshot.Bytes(),
19872		}
19873		return out, metadata, err
19874	}
19875
19876	err = awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(&output, shape)
19877	if err != nil {
19878		var snapshot bytes.Buffer
19879		io.Copy(&snapshot, ringBuffer)
19880		return out, metadata, &smithy.DeserializationError{
19881			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
19882			Snapshot: snapshot.Bytes(),
19883		}
19884	}
19885
19886	return out, metadata, err
19887}
19888
19889func awsRestjson1_deserializeOpErrorListTagsForResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
19890	var errorBuffer bytes.Buffer
19891	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
19892		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
19893	}
19894	errorBody := bytes.NewReader(errorBuffer.Bytes())
19895
19896	errorCode := "UnknownError"
19897	errorMessage := errorCode
19898
19899	code := response.Header.Get("X-Amzn-ErrorType")
19900	if len(code) != 0 {
19901		errorCode = restjson.SanitizeErrorCode(code)
19902	}
19903
19904	var buff [1024]byte
19905	ringBuffer := smithyio.NewRingBuffer(buff[:])
19906
19907	body := io.TeeReader(errorBody, ringBuffer)
19908	decoder := json.NewDecoder(body)
19909	decoder.UseNumber()
19910	code, message, err := restjson.GetErrorInfo(decoder)
19911	if err != nil {
19912		var snapshot bytes.Buffer
19913		io.Copy(&snapshot, ringBuffer)
19914		err = &smithy.DeserializationError{
19915			Err:      fmt.Errorf("failed to decode response body, %w", err),
19916			Snapshot: snapshot.Bytes(),
19917		}
19918		return err
19919	}
19920
19921	errorBody.Seek(0, io.SeekStart)
19922	if len(code) != 0 {
19923		errorCode = restjson.SanitizeErrorCode(code)
19924	}
19925	if len(message) != 0 {
19926		errorMessage = message
19927	}
19928
19929	switch {
19930	case strings.EqualFold("BadRequestException", errorCode):
19931		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
19932
19933	case strings.EqualFold("ForbiddenException", errorCode):
19934		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
19935
19936	case strings.EqualFold("NotFoundException", errorCode):
19937		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
19938
19939	case strings.EqualFold("ServiceFailureException", errorCode):
19940		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
19941
19942	case strings.EqualFold("ServiceUnavailableException", errorCode):
19943		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
19944
19945	case strings.EqualFold("UnauthorizedClientException", errorCode):
19946		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
19947
19948	default:
19949		genericError := &smithy.GenericAPIError{
19950			Code:    errorCode,
19951			Message: errorMessage,
19952		}
19953		return genericError
19954
19955	}
19956}
19957
19958func awsRestjson1_deserializeOpDocumentListTagsForResourceOutput(v **ListTagsForResourceOutput, value interface{}) error {
19959	if v == nil {
19960		return fmt.Errorf("unexpected nil of type %T", v)
19961	}
19962	if value == nil {
19963		return nil
19964	}
19965
19966	shape, ok := value.(map[string]interface{})
19967	if !ok {
19968		return fmt.Errorf("unexpected JSON type %v", value)
19969	}
19970
19971	var sv *ListTagsForResourceOutput
19972	if *v == nil {
19973		sv = &ListTagsForResourceOutput{}
19974	} else {
19975		sv = *v
19976	}
19977
19978	for key, value := range shape {
19979		switch key {
19980		case "Tags":
19981			if err := awsRestjson1_deserializeDocumentTagList(&sv.Tags, value); err != nil {
19982				return err
19983			}
19984
19985		default:
19986			_, _ = key, value
19987
19988		}
19989	}
19990	*v = sv
19991	return nil
19992}
19993
19994type awsRestjson1_deserializeOpListUsers struct {
19995}
19996
19997func (*awsRestjson1_deserializeOpListUsers) ID() string {
19998	return "OperationDeserializer"
19999}
20000
20001func (m *awsRestjson1_deserializeOpListUsers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20002	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20003) {
20004	out, metadata, err = next.HandleDeserialize(ctx, in)
20005	if err != nil {
20006		return out, metadata, err
20007	}
20008
20009	response, ok := out.RawResponse.(*smithyhttp.Response)
20010	if !ok {
20011		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20012	}
20013
20014	if response.StatusCode < 200 || response.StatusCode >= 300 {
20015		return out, metadata, awsRestjson1_deserializeOpErrorListUsers(response, &metadata)
20016	}
20017	output := &ListUsersOutput{}
20018	out.Result = output
20019
20020	var buff [1024]byte
20021	ringBuffer := smithyio.NewRingBuffer(buff[:])
20022
20023	body := io.TeeReader(response.Body, ringBuffer)
20024
20025	decoder := json.NewDecoder(body)
20026	decoder.UseNumber()
20027	var shape interface{}
20028	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20029		var snapshot bytes.Buffer
20030		io.Copy(&snapshot, ringBuffer)
20031		err = &smithy.DeserializationError{
20032			Err:      fmt.Errorf("failed to decode response body, %w", err),
20033			Snapshot: snapshot.Bytes(),
20034		}
20035		return out, metadata, err
20036	}
20037
20038	err = awsRestjson1_deserializeOpDocumentListUsersOutput(&output, shape)
20039	if err != nil {
20040		var snapshot bytes.Buffer
20041		io.Copy(&snapshot, ringBuffer)
20042		return out, metadata, &smithy.DeserializationError{
20043			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20044			Snapshot: snapshot.Bytes(),
20045		}
20046	}
20047
20048	return out, metadata, err
20049}
20050
20051func awsRestjson1_deserializeOpErrorListUsers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20052	var errorBuffer bytes.Buffer
20053	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20054		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20055	}
20056	errorBody := bytes.NewReader(errorBuffer.Bytes())
20057
20058	errorCode := "UnknownError"
20059	errorMessage := errorCode
20060
20061	code := response.Header.Get("X-Amzn-ErrorType")
20062	if len(code) != 0 {
20063		errorCode = restjson.SanitizeErrorCode(code)
20064	}
20065
20066	var buff [1024]byte
20067	ringBuffer := smithyio.NewRingBuffer(buff[:])
20068
20069	body := io.TeeReader(errorBody, ringBuffer)
20070	decoder := json.NewDecoder(body)
20071	decoder.UseNumber()
20072	code, message, err := restjson.GetErrorInfo(decoder)
20073	if err != nil {
20074		var snapshot bytes.Buffer
20075		io.Copy(&snapshot, ringBuffer)
20076		err = &smithy.DeserializationError{
20077			Err:      fmt.Errorf("failed to decode response body, %w", err),
20078			Snapshot: snapshot.Bytes(),
20079		}
20080		return err
20081	}
20082
20083	errorBody.Seek(0, io.SeekStart)
20084	if len(code) != 0 {
20085		errorCode = restjson.SanitizeErrorCode(code)
20086	}
20087	if len(message) != 0 {
20088		errorMessage = message
20089	}
20090
20091	switch {
20092	case strings.EqualFold("BadRequestException", errorCode):
20093		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20094
20095	case strings.EqualFold("ForbiddenException", errorCode):
20096		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20097
20098	case strings.EqualFold("NotFoundException", errorCode):
20099		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20100
20101	case strings.EqualFold("ServiceFailureException", errorCode):
20102		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20103
20104	case strings.EqualFold("ServiceUnavailableException", errorCode):
20105		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20106
20107	case strings.EqualFold("ThrottledClientException", errorCode):
20108		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20109
20110	case strings.EqualFold("UnauthorizedClientException", errorCode):
20111		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20112
20113	default:
20114		genericError := &smithy.GenericAPIError{
20115			Code:    errorCode,
20116			Message: errorMessage,
20117		}
20118		return genericError
20119
20120	}
20121}
20122
20123func awsRestjson1_deserializeOpDocumentListUsersOutput(v **ListUsersOutput, value interface{}) error {
20124	if v == nil {
20125		return fmt.Errorf("unexpected nil of type %T", v)
20126	}
20127	if value == nil {
20128		return nil
20129	}
20130
20131	shape, ok := value.(map[string]interface{})
20132	if !ok {
20133		return fmt.Errorf("unexpected JSON type %v", value)
20134	}
20135
20136	var sv *ListUsersOutput
20137	if *v == nil {
20138		sv = &ListUsersOutput{}
20139	} else {
20140		sv = *v
20141	}
20142
20143	for key, value := range shape {
20144		switch key {
20145		case "NextToken":
20146			if value != nil {
20147				jtv, ok := value.(string)
20148				if !ok {
20149					return fmt.Errorf("expected String to be of type string, got %T instead", value)
20150				}
20151				sv.NextToken = ptr.String(jtv)
20152			}
20153
20154		case "Users":
20155			if err := awsRestjson1_deserializeDocumentUserList(&sv.Users, value); err != nil {
20156				return err
20157			}
20158
20159		default:
20160			_, _ = key, value
20161
20162		}
20163	}
20164	*v = sv
20165	return nil
20166}
20167
20168type awsRestjson1_deserializeOpListVoiceConnectorGroups struct {
20169}
20170
20171func (*awsRestjson1_deserializeOpListVoiceConnectorGroups) ID() string {
20172	return "OperationDeserializer"
20173}
20174
20175func (m *awsRestjson1_deserializeOpListVoiceConnectorGroups) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20176	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20177) {
20178	out, metadata, err = next.HandleDeserialize(ctx, in)
20179	if err != nil {
20180		return out, metadata, err
20181	}
20182
20183	response, ok := out.RawResponse.(*smithyhttp.Response)
20184	if !ok {
20185		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20186	}
20187
20188	if response.StatusCode < 200 || response.StatusCode >= 300 {
20189		return out, metadata, awsRestjson1_deserializeOpErrorListVoiceConnectorGroups(response, &metadata)
20190	}
20191	output := &ListVoiceConnectorGroupsOutput{}
20192	out.Result = output
20193
20194	var buff [1024]byte
20195	ringBuffer := smithyio.NewRingBuffer(buff[:])
20196
20197	body := io.TeeReader(response.Body, ringBuffer)
20198
20199	decoder := json.NewDecoder(body)
20200	decoder.UseNumber()
20201	var shape interface{}
20202	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20203		var snapshot bytes.Buffer
20204		io.Copy(&snapshot, ringBuffer)
20205		err = &smithy.DeserializationError{
20206			Err:      fmt.Errorf("failed to decode response body, %w", err),
20207			Snapshot: snapshot.Bytes(),
20208		}
20209		return out, metadata, err
20210	}
20211
20212	err = awsRestjson1_deserializeOpDocumentListVoiceConnectorGroupsOutput(&output, shape)
20213	if err != nil {
20214		var snapshot bytes.Buffer
20215		io.Copy(&snapshot, ringBuffer)
20216		return out, metadata, &smithy.DeserializationError{
20217			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20218			Snapshot: snapshot.Bytes(),
20219		}
20220	}
20221
20222	return out, metadata, err
20223}
20224
20225func awsRestjson1_deserializeOpErrorListVoiceConnectorGroups(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20226	var errorBuffer bytes.Buffer
20227	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20228		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20229	}
20230	errorBody := bytes.NewReader(errorBuffer.Bytes())
20231
20232	errorCode := "UnknownError"
20233	errorMessage := errorCode
20234
20235	code := response.Header.Get("X-Amzn-ErrorType")
20236	if len(code) != 0 {
20237		errorCode = restjson.SanitizeErrorCode(code)
20238	}
20239
20240	var buff [1024]byte
20241	ringBuffer := smithyio.NewRingBuffer(buff[:])
20242
20243	body := io.TeeReader(errorBody, ringBuffer)
20244	decoder := json.NewDecoder(body)
20245	decoder.UseNumber()
20246	code, message, err := restjson.GetErrorInfo(decoder)
20247	if err != nil {
20248		var snapshot bytes.Buffer
20249		io.Copy(&snapshot, ringBuffer)
20250		err = &smithy.DeserializationError{
20251			Err:      fmt.Errorf("failed to decode response body, %w", err),
20252			Snapshot: snapshot.Bytes(),
20253		}
20254		return err
20255	}
20256
20257	errorBody.Seek(0, io.SeekStart)
20258	if len(code) != 0 {
20259		errorCode = restjson.SanitizeErrorCode(code)
20260	}
20261	if len(message) != 0 {
20262		errorMessage = message
20263	}
20264
20265	switch {
20266	case strings.EqualFold("BadRequestException", errorCode):
20267		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20268
20269	case strings.EqualFold("ForbiddenException", errorCode):
20270		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20271
20272	case strings.EqualFold("ServiceFailureException", errorCode):
20273		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20274
20275	case strings.EqualFold("ServiceUnavailableException", errorCode):
20276		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20277
20278	case strings.EqualFold("ThrottledClientException", errorCode):
20279		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20280
20281	case strings.EqualFold("UnauthorizedClientException", errorCode):
20282		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20283
20284	default:
20285		genericError := &smithy.GenericAPIError{
20286			Code:    errorCode,
20287			Message: errorMessage,
20288		}
20289		return genericError
20290
20291	}
20292}
20293
20294func awsRestjson1_deserializeOpDocumentListVoiceConnectorGroupsOutput(v **ListVoiceConnectorGroupsOutput, value interface{}) error {
20295	if v == nil {
20296		return fmt.Errorf("unexpected nil of type %T", v)
20297	}
20298	if value == nil {
20299		return nil
20300	}
20301
20302	shape, ok := value.(map[string]interface{})
20303	if !ok {
20304		return fmt.Errorf("unexpected JSON type %v", value)
20305	}
20306
20307	var sv *ListVoiceConnectorGroupsOutput
20308	if *v == nil {
20309		sv = &ListVoiceConnectorGroupsOutput{}
20310	} else {
20311		sv = *v
20312	}
20313
20314	for key, value := range shape {
20315		switch key {
20316		case "NextToken":
20317			if value != nil {
20318				jtv, ok := value.(string)
20319				if !ok {
20320					return fmt.Errorf("expected String to be of type string, got %T instead", value)
20321				}
20322				sv.NextToken = ptr.String(jtv)
20323			}
20324
20325		case "VoiceConnectorGroups":
20326			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroupList(&sv.VoiceConnectorGroups, value); err != nil {
20327				return err
20328			}
20329
20330		default:
20331			_, _ = key, value
20332
20333		}
20334	}
20335	*v = sv
20336	return nil
20337}
20338
20339type awsRestjson1_deserializeOpListVoiceConnectors struct {
20340}
20341
20342func (*awsRestjson1_deserializeOpListVoiceConnectors) ID() string {
20343	return "OperationDeserializer"
20344}
20345
20346func (m *awsRestjson1_deserializeOpListVoiceConnectors) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20347	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20348) {
20349	out, metadata, err = next.HandleDeserialize(ctx, in)
20350	if err != nil {
20351		return out, metadata, err
20352	}
20353
20354	response, ok := out.RawResponse.(*smithyhttp.Response)
20355	if !ok {
20356		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20357	}
20358
20359	if response.StatusCode < 200 || response.StatusCode >= 300 {
20360		return out, metadata, awsRestjson1_deserializeOpErrorListVoiceConnectors(response, &metadata)
20361	}
20362	output := &ListVoiceConnectorsOutput{}
20363	out.Result = output
20364
20365	var buff [1024]byte
20366	ringBuffer := smithyio.NewRingBuffer(buff[:])
20367
20368	body := io.TeeReader(response.Body, ringBuffer)
20369
20370	decoder := json.NewDecoder(body)
20371	decoder.UseNumber()
20372	var shape interface{}
20373	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20374		var snapshot bytes.Buffer
20375		io.Copy(&snapshot, ringBuffer)
20376		err = &smithy.DeserializationError{
20377			Err:      fmt.Errorf("failed to decode response body, %w", err),
20378			Snapshot: snapshot.Bytes(),
20379		}
20380		return out, metadata, err
20381	}
20382
20383	err = awsRestjson1_deserializeOpDocumentListVoiceConnectorsOutput(&output, shape)
20384	if err != nil {
20385		var snapshot bytes.Buffer
20386		io.Copy(&snapshot, ringBuffer)
20387		return out, metadata, &smithy.DeserializationError{
20388			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20389			Snapshot: snapshot.Bytes(),
20390		}
20391	}
20392
20393	return out, metadata, err
20394}
20395
20396func awsRestjson1_deserializeOpErrorListVoiceConnectors(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20397	var errorBuffer bytes.Buffer
20398	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20399		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20400	}
20401	errorBody := bytes.NewReader(errorBuffer.Bytes())
20402
20403	errorCode := "UnknownError"
20404	errorMessage := errorCode
20405
20406	code := response.Header.Get("X-Amzn-ErrorType")
20407	if len(code) != 0 {
20408		errorCode = restjson.SanitizeErrorCode(code)
20409	}
20410
20411	var buff [1024]byte
20412	ringBuffer := smithyio.NewRingBuffer(buff[:])
20413
20414	body := io.TeeReader(errorBody, ringBuffer)
20415	decoder := json.NewDecoder(body)
20416	decoder.UseNumber()
20417	code, message, err := restjson.GetErrorInfo(decoder)
20418	if err != nil {
20419		var snapshot bytes.Buffer
20420		io.Copy(&snapshot, ringBuffer)
20421		err = &smithy.DeserializationError{
20422			Err:      fmt.Errorf("failed to decode response body, %w", err),
20423			Snapshot: snapshot.Bytes(),
20424		}
20425		return err
20426	}
20427
20428	errorBody.Seek(0, io.SeekStart)
20429	if len(code) != 0 {
20430		errorCode = restjson.SanitizeErrorCode(code)
20431	}
20432	if len(message) != 0 {
20433		errorMessage = message
20434	}
20435
20436	switch {
20437	case strings.EqualFold("BadRequestException", errorCode):
20438		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20439
20440	case strings.EqualFold("ForbiddenException", errorCode):
20441		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20442
20443	case strings.EqualFold("ServiceFailureException", errorCode):
20444		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20445
20446	case strings.EqualFold("ServiceUnavailableException", errorCode):
20447		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20448
20449	case strings.EqualFold("ThrottledClientException", errorCode):
20450		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20451
20452	case strings.EqualFold("UnauthorizedClientException", errorCode):
20453		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20454
20455	default:
20456		genericError := &smithy.GenericAPIError{
20457			Code:    errorCode,
20458			Message: errorMessage,
20459		}
20460		return genericError
20461
20462	}
20463}
20464
20465func awsRestjson1_deserializeOpDocumentListVoiceConnectorsOutput(v **ListVoiceConnectorsOutput, value interface{}) error {
20466	if v == nil {
20467		return fmt.Errorf("unexpected nil of type %T", v)
20468	}
20469	if value == nil {
20470		return nil
20471	}
20472
20473	shape, ok := value.(map[string]interface{})
20474	if !ok {
20475		return fmt.Errorf("unexpected JSON type %v", value)
20476	}
20477
20478	var sv *ListVoiceConnectorsOutput
20479	if *v == nil {
20480		sv = &ListVoiceConnectorsOutput{}
20481	} else {
20482		sv = *v
20483	}
20484
20485	for key, value := range shape {
20486		switch key {
20487		case "NextToken":
20488			if value != nil {
20489				jtv, ok := value.(string)
20490				if !ok {
20491					return fmt.Errorf("expected String to be of type string, got %T instead", value)
20492				}
20493				sv.NextToken = ptr.String(jtv)
20494			}
20495
20496		case "VoiceConnectors":
20497			if err := awsRestjson1_deserializeDocumentVoiceConnectorList(&sv.VoiceConnectors, value); err != nil {
20498				return err
20499			}
20500
20501		default:
20502			_, _ = key, value
20503
20504		}
20505	}
20506	*v = sv
20507	return nil
20508}
20509
20510type awsRestjson1_deserializeOpListVoiceConnectorTerminationCredentials struct {
20511}
20512
20513func (*awsRestjson1_deserializeOpListVoiceConnectorTerminationCredentials) ID() string {
20514	return "OperationDeserializer"
20515}
20516
20517func (m *awsRestjson1_deserializeOpListVoiceConnectorTerminationCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20518	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20519) {
20520	out, metadata, err = next.HandleDeserialize(ctx, in)
20521	if err != nil {
20522		return out, metadata, err
20523	}
20524
20525	response, ok := out.RawResponse.(*smithyhttp.Response)
20526	if !ok {
20527		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20528	}
20529
20530	if response.StatusCode < 200 || response.StatusCode >= 300 {
20531		return out, metadata, awsRestjson1_deserializeOpErrorListVoiceConnectorTerminationCredentials(response, &metadata)
20532	}
20533	output := &ListVoiceConnectorTerminationCredentialsOutput{}
20534	out.Result = output
20535
20536	var buff [1024]byte
20537	ringBuffer := smithyio.NewRingBuffer(buff[:])
20538
20539	body := io.TeeReader(response.Body, ringBuffer)
20540
20541	decoder := json.NewDecoder(body)
20542	decoder.UseNumber()
20543	var shape interface{}
20544	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20545		var snapshot bytes.Buffer
20546		io.Copy(&snapshot, ringBuffer)
20547		err = &smithy.DeserializationError{
20548			Err:      fmt.Errorf("failed to decode response body, %w", err),
20549			Snapshot: snapshot.Bytes(),
20550		}
20551		return out, metadata, err
20552	}
20553
20554	err = awsRestjson1_deserializeOpDocumentListVoiceConnectorTerminationCredentialsOutput(&output, shape)
20555	if err != nil {
20556		var snapshot bytes.Buffer
20557		io.Copy(&snapshot, ringBuffer)
20558		return out, metadata, &smithy.DeserializationError{
20559			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20560			Snapshot: snapshot.Bytes(),
20561		}
20562	}
20563
20564	return out, metadata, err
20565}
20566
20567func awsRestjson1_deserializeOpErrorListVoiceConnectorTerminationCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20568	var errorBuffer bytes.Buffer
20569	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20570		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20571	}
20572	errorBody := bytes.NewReader(errorBuffer.Bytes())
20573
20574	errorCode := "UnknownError"
20575	errorMessage := errorCode
20576
20577	code := response.Header.Get("X-Amzn-ErrorType")
20578	if len(code) != 0 {
20579		errorCode = restjson.SanitizeErrorCode(code)
20580	}
20581
20582	var buff [1024]byte
20583	ringBuffer := smithyio.NewRingBuffer(buff[:])
20584
20585	body := io.TeeReader(errorBody, ringBuffer)
20586	decoder := json.NewDecoder(body)
20587	decoder.UseNumber()
20588	code, message, err := restjson.GetErrorInfo(decoder)
20589	if err != nil {
20590		var snapshot bytes.Buffer
20591		io.Copy(&snapshot, ringBuffer)
20592		err = &smithy.DeserializationError{
20593			Err:      fmt.Errorf("failed to decode response body, %w", err),
20594			Snapshot: snapshot.Bytes(),
20595		}
20596		return err
20597	}
20598
20599	errorBody.Seek(0, io.SeekStart)
20600	if len(code) != 0 {
20601		errorCode = restjson.SanitizeErrorCode(code)
20602	}
20603	if len(message) != 0 {
20604		errorMessage = message
20605	}
20606
20607	switch {
20608	case strings.EqualFold("BadRequestException", errorCode):
20609		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20610
20611	case strings.EqualFold("ForbiddenException", errorCode):
20612		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20613
20614	case strings.EqualFold("NotFoundException", errorCode):
20615		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20616
20617	case strings.EqualFold("ServiceFailureException", errorCode):
20618		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20619
20620	case strings.EqualFold("ServiceUnavailableException", errorCode):
20621		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20622
20623	case strings.EqualFold("ThrottledClientException", errorCode):
20624		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20625
20626	case strings.EqualFold("UnauthorizedClientException", errorCode):
20627		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20628
20629	default:
20630		genericError := &smithy.GenericAPIError{
20631			Code:    errorCode,
20632			Message: errorMessage,
20633		}
20634		return genericError
20635
20636	}
20637}
20638
20639func awsRestjson1_deserializeOpDocumentListVoiceConnectorTerminationCredentialsOutput(v **ListVoiceConnectorTerminationCredentialsOutput, value interface{}) error {
20640	if v == nil {
20641		return fmt.Errorf("unexpected nil of type %T", v)
20642	}
20643	if value == nil {
20644		return nil
20645	}
20646
20647	shape, ok := value.(map[string]interface{})
20648	if !ok {
20649		return fmt.Errorf("unexpected JSON type %v", value)
20650	}
20651
20652	var sv *ListVoiceConnectorTerminationCredentialsOutput
20653	if *v == nil {
20654		sv = &ListVoiceConnectorTerminationCredentialsOutput{}
20655	} else {
20656		sv = *v
20657	}
20658
20659	for key, value := range shape {
20660		switch key {
20661		case "Usernames":
20662			if err := awsRestjson1_deserializeDocumentSensitiveStringList(&sv.Usernames, value); err != nil {
20663				return err
20664			}
20665
20666		default:
20667			_, _ = key, value
20668
20669		}
20670	}
20671	*v = sv
20672	return nil
20673}
20674
20675type awsRestjson1_deserializeOpLogoutUser struct {
20676}
20677
20678func (*awsRestjson1_deserializeOpLogoutUser) ID() string {
20679	return "OperationDeserializer"
20680}
20681
20682func (m *awsRestjson1_deserializeOpLogoutUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20683	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20684) {
20685	out, metadata, err = next.HandleDeserialize(ctx, in)
20686	if err != nil {
20687		return out, metadata, err
20688	}
20689
20690	response, ok := out.RawResponse.(*smithyhttp.Response)
20691	if !ok {
20692		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20693	}
20694
20695	if response.StatusCode < 200 || response.StatusCode >= 300 {
20696		return out, metadata, awsRestjson1_deserializeOpErrorLogoutUser(response, &metadata)
20697	}
20698	output := &LogoutUserOutput{}
20699	out.Result = output
20700
20701	return out, metadata, err
20702}
20703
20704func awsRestjson1_deserializeOpErrorLogoutUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20705	var errorBuffer bytes.Buffer
20706	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20707		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20708	}
20709	errorBody := bytes.NewReader(errorBuffer.Bytes())
20710
20711	errorCode := "UnknownError"
20712	errorMessage := errorCode
20713
20714	code := response.Header.Get("X-Amzn-ErrorType")
20715	if len(code) != 0 {
20716		errorCode = restjson.SanitizeErrorCode(code)
20717	}
20718
20719	var buff [1024]byte
20720	ringBuffer := smithyio.NewRingBuffer(buff[:])
20721
20722	body := io.TeeReader(errorBody, ringBuffer)
20723	decoder := json.NewDecoder(body)
20724	decoder.UseNumber()
20725	code, message, err := restjson.GetErrorInfo(decoder)
20726	if err != nil {
20727		var snapshot bytes.Buffer
20728		io.Copy(&snapshot, ringBuffer)
20729		err = &smithy.DeserializationError{
20730			Err:      fmt.Errorf("failed to decode response body, %w", err),
20731			Snapshot: snapshot.Bytes(),
20732		}
20733		return err
20734	}
20735
20736	errorBody.Seek(0, io.SeekStart)
20737	if len(code) != 0 {
20738		errorCode = restjson.SanitizeErrorCode(code)
20739	}
20740	if len(message) != 0 {
20741		errorMessage = message
20742	}
20743
20744	switch {
20745	case strings.EqualFold("BadRequestException", errorCode):
20746		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20747
20748	case strings.EqualFold("ForbiddenException", errorCode):
20749		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20750
20751	case strings.EqualFold("NotFoundException", errorCode):
20752		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20753
20754	case strings.EqualFold("ServiceFailureException", errorCode):
20755		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20756
20757	case strings.EqualFold("ServiceUnavailableException", errorCode):
20758		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20759
20760	case strings.EqualFold("ThrottledClientException", errorCode):
20761		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20762
20763	case strings.EqualFold("UnauthorizedClientException", errorCode):
20764		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20765
20766	default:
20767		genericError := &smithy.GenericAPIError{
20768			Code:    errorCode,
20769			Message: errorMessage,
20770		}
20771		return genericError
20772
20773	}
20774}
20775
20776type awsRestjson1_deserializeOpPutAppInstanceRetentionSettings struct {
20777}
20778
20779func (*awsRestjson1_deserializeOpPutAppInstanceRetentionSettings) ID() string {
20780	return "OperationDeserializer"
20781}
20782
20783func (m *awsRestjson1_deserializeOpPutAppInstanceRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20784	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20785) {
20786	out, metadata, err = next.HandleDeserialize(ctx, in)
20787	if err != nil {
20788		return out, metadata, err
20789	}
20790
20791	response, ok := out.RawResponse.(*smithyhttp.Response)
20792	if !ok {
20793		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20794	}
20795
20796	if response.StatusCode < 200 || response.StatusCode >= 300 {
20797		return out, metadata, awsRestjson1_deserializeOpErrorPutAppInstanceRetentionSettings(response, &metadata)
20798	}
20799	output := &PutAppInstanceRetentionSettingsOutput{}
20800	out.Result = output
20801
20802	var buff [1024]byte
20803	ringBuffer := smithyio.NewRingBuffer(buff[:])
20804
20805	body := io.TeeReader(response.Body, ringBuffer)
20806
20807	decoder := json.NewDecoder(body)
20808	decoder.UseNumber()
20809	var shape interface{}
20810	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20811		var snapshot bytes.Buffer
20812		io.Copy(&snapshot, ringBuffer)
20813		err = &smithy.DeserializationError{
20814			Err:      fmt.Errorf("failed to decode response body, %w", err),
20815			Snapshot: snapshot.Bytes(),
20816		}
20817		return out, metadata, err
20818	}
20819
20820	err = awsRestjson1_deserializeOpDocumentPutAppInstanceRetentionSettingsOutput(&output, shape)
20821	if err != nil {
20822		var snapshot bytes.Buffer
20823		io.Copy(&snapshot, ringBuffer)
20824		return out, metadata, &smithy.DeserializationError{
20825			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
20826			Snapshot: snapshot.Bytes(),
20827		}
20828	}
20829
20830	return out, metadata, err
20831}
20832
20833func awsRestjson1_deserializeOpErrorPutAppInstanceRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
20834	var errorBuffer bytes.Buffer
20835	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
20836		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
20837	}
20838	errorBody := bytes.NewReader(errorBuffer.Bytes())
20839
20840	errorCode := "UnknownError"
20841	errorMessage := errorCode
20842
20843	code := response.Header.Get("X-Amzn-ErrorType")
20844	if len(code) != 0 {
20845		errorCode = restjson.SanitizeErrorCode(code)
20846	}
20847
20848	var buff [1024]byte
20849	ringBuffer := smithyio.NewRingBuffer(buff[:])
20850
20851	body := io.TeeReader(errorBody, ringBuffer)
20852	decoder := json.NewDecoder(body)
20853	decoder.UseNumber()
20854	code, message, err := restjson.GetErrorInfo(decoder)
20855	if err != nil {
20856		var snapshot bytes.Buffer
20857		io.Copy(&snapshot, ringBuffer)
20858		err = &smithy.DeserializationError{
20859			Err:      fmt.Errorf("failed to decode response body, %w", err),
20860			Snapshot: snapshot.Bytes(),
20861		}
20862		return err
20863	}
20864
20865	errorBody.Seek(0, io.SeekStart)
20866	if len(code) != 0 {
20867		errorCode = restjson.SanitizeErrorCode(code)
20868	}
20869	if len(message) != 0 {
20870		errorMessage = message
20871	}
20872
20873	switch {
20874	case strings.EqualFold("BadRequestException", errorCode):
20875		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
20876
20877	case strings.EqualFold("ConflictException", errorCode):
20878		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
20879
20880	case strings.EqualFold("ForbiddenException", errorCode):
20881		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
20882
20883	case strings.EqualFold("NotFoundException", errorCode):
20884		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
20885
20886	case strings.EqualFold("ServiceFailureException", errorCode):
20887		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
20888
20889	case strings.EqualFold("ServiceUnavailableException", errorCode):
20890		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
20891
20892	case strings.EqualFold("ThrottledClientException", errorCode):
20893		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
20894
20895	case strings.EqualFold("UnauthorizedClientException", errorCode):
20896		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
20897
20898	default:
20899		genericError := &smithy.GenericAPIError{
20900			Code:    errorCode,
20901			Message: errorMessage,
20902		}
20903		return genericError
20904
20905	}
20906}
20907
20908func awsRestjson1_deserializeOpDocumentPutAppInstanceRetentionSettingsOutput(v **PutAppInstanceRetentionSettingsOutput, value interface{}) error {
20909	if v == nil {
20910		return fmt.Errorf("unexpected nil of type %T", v)
20911	}
20912	if value == nil {
20913		return nil
20914	}
20915
20916	shape, ok := value.(map[string]interface{})
20917	if !ok {
20918		return fmt.Errorf("unexpected JSON type %v", value)
20919	}
20920
20921	var sv *PutAppInstanceRetentionSettingsOutput
20922	if *v == nil {
20923		sv = &PutAppInstanceRetentionSettingsOutput{}
20924	} else {
20925		sv = *v
20926	}
20927
20928	for key, value := range shape {
20929		switch key {
20930		case "AppInstanceRetentionSettings":
20931			if err := awsRestjson1_deserializeDocumentAppInstanceRetentionSettings(&sv.AppInstanceRetentionSettings, value); err != nil {
20932				return err
20933			}
20934
20935		case "InitiateDeletionTimestamp":
20936			if value != nil {
20937				jtv, ok := value.(json.Number)
20938				if !ok {
20939					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
20940				}
20941				f64, err := jtv.Float64()
20942				if err != nil {
20943					return err
20944				}
20945				sv.InitiateDeletionTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
20946			}
20947
20948		default:
20949			_, _ = key, value
20950
20951		}
20952	}
20953	*v = sv
20954	return nil
20955}
20956
20957type awsRestjson1_deserializeOpPutAppInstanceStreamingConfigurations struct {
20958}
20959
20960func (*awsRestjson1_deserializeOpPutAppInstanceStreamingConfigurations) ID() string {
20961	return "OperationDeserializer"
20962}
20963
20964func (m *awsRestjson1_deserializeOpPutAppInstanceStreamingConfigurations) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
20965	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
20966) {
20967	out, metadata, err = next.HandleDeserialize(ctx, in)
20968	if err != nil {
20969		return out, metadata, err
20970	}
20971
20972	response, ok := out.RawResponse.(*smithyhttp.Response)
20973	if !ok {
20974		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
20975	}
20976
20977	if response.StatusCode < 200 || response.StatusCode >= 300 {
20978		return out, metadata, awsRestjson1_deserializeOpErrorPutAppInstanceStreamingConfigurations(response, &metadata)
20979	}
20980	output := &PutAppInstanceStreamingConfigurationsOutput{}
20981	out.Result = output
20982
20983	var buff [1024]byte
20984	ringBuffer := smithyio.NewRingBuffer(buff[:])
20985
20986	body := io.TeeReader(response.Body, ringBuffer)
20987
20988	decoder := json.NewDecoder(body)
20989	decoder.UseNumber()
20990	var shape interface{}
20991	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
20992		var snapshot bytes.Buffer
20993		io.Copy(&snapshot, ringBuffer)
20994		err = &smithy.DeserializationError{
20995			Err:      fmt.Errorf("failed to decode response body, %w", err),
20996			Snapshot: snapshot.Bytes(),
20997		}
20998		return out, metadata, err
20999	}
21000
21001	err = awsRestjson1_deserializeOpDocumentPutAppInstanceStreamingConfigurationsOutput(&output, shape)
21002	if err != nil {
21003		var snapshot bytes.Buffer
21004		io.Copy(&snapshot, ringBuffer)
21005		return out, metadata, &smithy.DeserializationError{
21006			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21007			Snapshot: snapshot.Bytes(),
21008		}
21009	}
21010
21011	return out, metadata, err
21012}
21013
21014func awsRestjson1_deserializeOpErrorPutAppInstanceStreamingConfigurations(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21015	var errorBuffer bytes.Buffer
21016	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21017		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21018	}
21019	errorBody := bytes.NewReader(errorBuffer.Bytes())
21020
21021	errorCode := "UnknownError"
21022	errorMessage := errorCode
21023
21024	code := response.Header.Get("X-Amzn-ErrorType")
21025	if len(code) != 0 {
21026		errorCode = restjson.SanitizeErrorCode(code)
21027	}
21028
21029	var buff [1024]byte
21030	ringBuffer := smithyio.NewRingBuffer(buff[:])
21031
21032	body := io.TeeReader(errorBody, ringBuffer)
21033	decoder := json.NewDecoder(body)
21034	decoder.UseNumber()
21035	code, message, err := restjson.GetErrorInfo(decoder)
21036	if err != nil {
21037		var snapshot bytes.Buffer
21038		io.Copy(&snapshot, ringBuffer)
21039		err = &smithy.DeserializationError{
21040			Err:      fmt.Errorf("failed to decode response body, %w", err),
21041			Snapshot: snapshot.Bytes(),
21042		}
21043		return err
21044	}
21045
21046	errorBody.Seek(0, io.SeekStart)
21047	if len(code) != 0 {
21048		errorCode = restjson.SanitizeErrorCode(code)
21049	}
21050	if len(message) != 0 {
21051		errorMessage = message
21052	}
21053
21054	switch {
21055	case strings.EqualFold("BadRequestException", errorCode):
21056		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21057
21058	case strings.EqualFold("ForbiddenException", errorCode):
21059		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21060
21061	case strings.EqualFold("NotFoundException", errorCode):
21062		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21063
21064	case strings.EqualFold("ServiceFailureException", errorCode):
21065		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21066
21067	case strings.EqualFold("ServiceUnavailableException", errorCode):
21068		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21069
21070	case strings.EqualFold("ThrottledClientException", errorCode):
21071		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21072
21073	case strings.EqualFold("UnauthorizedClientException", errorCode):
21074		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21075
21076	default:
21077		genericError := &smithy.GenericAPIError{
21078			Code:    errorCode,
21079			Message: errorMessage,
21080		}
21081		return genericError
21082
21083	}
21084}
21085
21086func awsRestjson1_deserializeOpDocumentPutAppInstanceStreamingConfigurationsOutput(v **PutAppInstanceStreamingConfigurationsOutput, value interface{}) error {
21087	if v == nil {
21088		return fmt.Errorf("unexpected nil of type %T", v)
21089	}
21090	if value == nil {
21091		return nil
21092	}
21093
21094	shape, ok := value.(map[string]interface{})
21095	if !ok {
21096		return fmt.Errorf("unexpected JSON type %v", value)
21097	}
21098
21099	var sv *PutAppInstanceStreamingConfigurationsOutput
21100	if *v == nil {
21101		sv = &PutAppInstanceStreamingConfigurationsOutput{}
21102	} else {
21103		sv = *v
21104	}
21105
21106	for key, value := range shape {
21107		switch key {
21108		case "AppInstanceStreamingConfigurations":
21109			if err := awsRestjson1_deserializeDocumentAppInstanceStreamingConfigurationList(&sv.AppInstanceStreamingConfigurations, value); err != nil {
21110				return err
21111			}
21112
21113		default:
21114			_, _ = key, value
21115
21116		}
21117	}
21118	*v = sv
21119	return nil
21120}
21121
21122type awsRestjson1_deserializeOpPutEventsConfiguration struct {
21123}
21124
21125func (*awsRestjson1_deserializeOpPutEventsConfiguration) ID() string {
21126	return "OperationDeserializer"
21127}
21128
21129func (m *awsRestjson1_deserializeOpPutEventsConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21130	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21131) {
21132	out, metadata, err = next.HandleDeserialize(ctx, in)
21133	if err != nil {
21134		return out, metadata, err
21135	}
21136
21137	response, ok := out.RawResponse.(*smithyhttp.Response)
21138	if !ok {
21139		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21140	}
21141
21142	if response.StatusCode < 200 || response.StatusCode >= 300 {
21143		return out, metadata, awsRestjson1_deserializeOpErrorPutEventsConfiguration(response, &metadata)
21144	}
21145	output := &PutEventsConfigurationOutput{}
21146	out.Result = output
21147
21148	var buff [1024]byte
21149	ringBuffer := smithyio.NewRingBuffer(buff[:])
21150
21151	body := io.TeeReader(response.Body, ringBuffer)
21152
21153	decoder := json.NewDecoder(body)
21154	decoder.UseNumber()
21155	var shape interface{}
21156	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21157		var snapshot bytes.Buffer
21158		io.Copy(&snapshot, ringBuffer)
21159		err = &smithy.DeserializationError{
21160			Err:      fmt.Errorf("failed to decode response body, %w", err),
21161			Snapshot: snapshot.Bytes(),
21162		}
21163		return out, metadata, err
21164	}
21165
21166	err = awsRestjson1_deserializeOpDocumentPutEventsConfigurationOutput(&output, shape)
21167	if err != nil {
21168		var snapshot bytes.Buffer
21169		io.Copy(&snapshot, ringBuffer)
21170		return out, metadata, &smithy.DeserializationError{
21171			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21172			Snapshot: snapshot.Bytes(),
21173		}
21174	}
21175
21176	return out, metadata, err
21177}
21178
21179func awsRestjson1_deserializeOpErrorPutEventsConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21180	var errorBuffer bytes.Buffer
21181	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21182		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21183	}
21184	errorBody := bytes.NewReader(errorBuffer.Bytes())
21185
21186	errorCode := "UnknownError"
21187	errorMessage := errorCode
21188
21189	code := response.Header.Get("X-Amzn-ErrorType")
21190	if len(code) != 0 {
21191		errorCode = restjson.SanitizeErrorCode(code)
21192	}
21193
21194	var buff [1024]byte
21195	ringBuffer := smithyio.NewRingBuffer(buff[:])
21196
21197	body := io.TeeReader(errorBody, ringBuffer)
21198	decoder := json.NewDecoder(body)
21199	decoder.UseNumber()
21200	code, message, err := restjson.GetErrorInfo(decoder)
21201	if err != nil {
21202		var snapshot bytes.Buffer
21203		io.Copy(&snapshot, ringBuffer)
21204		err = &smithy.DeserializationError{
21205			Err:      fmt.Errorf("failed to decode response body, %w", err),
21206			Snapshot: snapshot.Bytes(),
21207		}
21208		return err
21209	}
21210
21211	errorBody.Seek(0, io.SeekStart)
21212	if len(code) != 0 {
21213		errorCode = restjson.SanitizeErrorCode(code)
21214	}
21215	if len(message) != 0 {
21216		errorMessage = message
21217	}
21218
21219	switch {
21220	case strings.EqualFold("BadRequestException", errorCode):
21221		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21222
21223	case strings.EqualFold("ForbiddenException", errorCode):
21224		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21225
21226	case strings.EqualFold("NotFoundException", errorCode):
21227		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21228
21229	case strings.EqualFold("ResourceLimitExceededException", errorCode):
21230		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
21231
21232	case strings.EqualFold("ServiceFailureException", errorCode):
21233		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21234
21235	case strings.EqualFold("ServiceUnavailableException", errorCode):
21236		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21237
21238	case strings.EqualFold("UnauthorizedClientException", errorCode):
21239		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21240
21241	default:
21242		genericError := &smithy.GenericAPIError{
21243			Code:    errorCode,
21244			Message: errorMessage,
21245		}
21246		return genericError
21247
21248	}
21249}
21250
21251func awsRestjson1_deserializeOpDocumentPutEventsConfigurationOutput(v **PutEventsConfigurationOutput, value interface{}) error {
21252	if v == nil {
21253		return fmt.Errorf("unexpected nil of type %T", v)
21254	}
21255	if value == nil {
21256		return nil
21257	}
21258
21259	shape, ok := value.(map[string]interface{})
21260	if !ok {
21261		return fmt.Errorf("unexpected JSON type %v", value)
21262	}
21263
21264	var sv *PutEventsConfigurationOutput
21265	if *v == nil {
21266		sv = &PutEventsConfigurationOutput{}
21267	} else {
21268		sv = *v
21269	}
21270
21271	for key, value := range shape {
21272		switch key {
21273		case "EventsConfiguration":
21274			if err := awsRestjson1_deserializeDocumentEventsConfiguration(&sv.EventsConfiguration, value); err != nil {
21275				return err
21276			}
21277
21278		default:
21279			_, _ = key, value
21280
21281		}
21282	}
21283	*v = sv
21284	return nil
21285}
21286
21287type awsRestjson1_deserializeOpPutRetentionSettings struct {
21288}
21289
21290func (*awsRestjson1_deserializeOpPutRetentionSettings) ID() string {
21291	return "OperationDeserializer"
21292}
21293
21294func (m *awsRestjson1_deserializeOpPutRetentionSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21295	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21296) {
21297	out, metadata, err = next.HandleDeserialize(ctx, in)
21298	if err != nil {
21299		return out, metadata, err
21300	}
21301
21302	response, ok := out.RawResponse.(*smithyhttp.Response)
21303	if !ok {
21304		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21305	}
21306
21307	if response.StatusCode < 200 || response.StatusCode >= 300 {
21308		return out, metadata, awsRestjson1_deserializeOpErrorPutRetentionSettings(response, &metadata)
21309	}
21310	output := &PutRetentionSettingsOutput{}
21311	out.Result = output
21312
21313	var buff [1024]byte
21314	ringBuffer := smithyio.NewRingBuffer(buff[:])
21315
21316	body := io.TeeReader(response.Body, ringBuffer)
21317
21318	decoder := json.NewDecoder(body)
21319	decoder.UseNumber()
21320	var shape interface{}
21321	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21322		var snapshot bytes.Buffer
21323		io.Copy(&snapshot, ringBuffer)
21324		err = &smithy.DeserializationError{
21325			Err:      fmt.Errorf("failed to decode response body, %w", err),
21326			Snapshot: snapshot.Bytes(),
21327		}
21328		return out, metadata, err
21329	}
21330
21331	err = awsRestjson1_deserializeOpDocumentPutRetentionSettingsOutput(&output, shape)
21332	if err != nil {
21333		var snapshot bytes.Buffer
21334		io.Copy(&snapshot, ringBuffer)
21335		return out, metadata, &smithy.DeserializationError{
21336			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21337			Snapshot: snapshot.Bytes(),
21338		}
21339	}
21340
21341	return out, metadata, err
21342}
21343
21344func awsRestjson1_deserializeOpErrorPutRetentionSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21345	var errorBuffer bytes.Buffer
21346	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21347		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21348	}
21349	errorBody := bytes.NewReader(errorBuffer.Bytes())
21350
21351	errorCode := "UnknownError"
21352	errorMessage := errorCode
21353
21354	code := response.Header.Get("X-Amzn-ErrorType")
21355	if len(code) != 0 {
21356		errorCode = restjson.SanitizeErrorCode(code)
21357	}
21358
21359	var buff [1024]byte
21360	ringBuffer := smithyio.NewRingBuffer(buff[:])
21361
21362	body := io.TeeReader(errorBody, ringBuffer)
21363	decoder := json.NewDecoder(body)
21364	decoder.UseNumber()
21365	code, message, err := restjson.GetErrorInfo(decoder)
21366	if err != nil {
21367		var snapshot bytes.Buffer
21368		io.Copy(&snapshot, ringBuffer)
21369		err = &smithy.DeserializationError{
21370			Err:      fmt.Errorf("failed to decode response body, %w", err),
21371			Snapshot: snapshot.Bytes(),
21372		}
21373		return err
21374	}
21375
21376	errorBody.Seek(0, io.SeekStart)
21377	if len(code) != 0 {
21378		errorCode = restjson.SanitizeErrorCode(code)
21379	}
21380	if len(message) != 0 {
21381		errorMessage = message
21382	}
21383
21384	switch {
21385	case strings.EqualFold("BadRequestException", errorCode):
21386		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21387
21388	case strings.EqualFold("ConflictException", errorCode):
21389		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
21390
21391	case strings.EqualFold("ForbiddenException", errorCode):
21392		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21393
21394	case strings.EqualFold("NotFoundException", errorCode):
21395		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21396
21397	case strings.EqualFold("ServiceFailureException", errorCode):
21398		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21399
21400	case strings.EqualFold("ServiceUnavailableException", errorCode):
21401		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21402
21403	case strings.EqualFold("ThrottledClientException", errorCode):
21404		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21405
21406	case strings.EqualFold("UnauthorizedClientException", errorCode):
21407		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21408
21409	default:
21410		genericError := &smithy.GenericAPIError{
21411			Code:    errorCode,
21412			Message: errorMessage,
21413		}
21414		return genericError
21415
21416	}
21417}
21418
21419func awsRestjson1_deserializeOpDocumentPutRetentionSettingsOutput(v **PutRetentionSettingsOutput, value interface{}) error {
21420	if v == nil {
21421		return fmt.Errorf("unexpected nil of type %T", v)
21422	}
21423	if value == nil {
21424		return nil
21425	}
21426
21427	shape, ok := value.(map[string]interface{})
21428	if !ok {
21429		return fmt.Errorf("unexpected JSON type %v", value)
21430	}
21431
21432	var sv *PutRetentionSettingsOutput
21433	if *v == nil {
21434		sv = &PutRetentionSettingsOutput{}
21435	} else {
21436		sv = *v
21437	}
21438
21439	for key, value := range shape {
21440		switch key {
21441		case "InitiateDeletionTimestamp":
21442			if value != nil {
21443				jtv, ok := value.(string)
21444				if !ok {
21445					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
21446				}
21447				t, err := smithytime.ParseDateTime(jtv)
21448				if err != nil {
21449					return err
21450				}
21451				sv.InitiateDeletionTimestamp = ptr.Time(t)
21452			}
21453
21454		case "RetentionSettings":
21455			if err := awsRestjson1_deserializeDocumentRetentionSettings(&sv.RetentionSettings, value); err != nil {
21456				return err
21457			}
21458
21459		default:
21460			_, _ = key, value
21461
21462		}
21463	}
21464	*v = sv
21465	return nil
21466}
21467
21468type awsRestjson1_deserializeOpPutSipMediaApplicationLoggingConfiguration struct {
21469}
21470
21471func (*awsRestjson1_deserializeOpPutSipMediaApplicationLoggingConfiguration) ID() string {
21472	return "OperationDeserializer"
21473}
21474
21475func (m *awsRestjson1_deserializeOpPutSipMediaApplicationLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21476	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21477) {
21478	out, metadata, err = next.HandleDeserialize(ctx, in)
21479	if err != nil {
21480		return out, metadata, err
21481	}
21482
21483	response, ok := out.RawResponse.(*smithyhttp.Response)
21484	if !ok {
21485		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21486	}
21487
21488	if response.StatusCode < 200 || response.StatusCode >= 300 {
21489		return out, metadata, awsRestjson1_deserializeOpErrorPutSipMediaApplicationLoggingConfiguration(response, &metadata)
21490	}
21491	output := &PutSipMediaApplicationLoggingConfigurationOutput{}
21492	out.Result = output
21493
21494	var buff [1024]byte
21495	ringBuffer := smithyio.NewRingBuffer(buff[:])
21496
21497	body := io.TeeReader(response.Body, ringBuffer)
21498
21499	decoder := json.NewDecoder(body)
21500	decoder.UseNumber()
21501	var shape interface{}
21502	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21503		var snapshot bytes.Buffer
21504		io.Copy(&snapshot, ringBuffer)
21505		err = &smithy.DeserializationError{
21506			Err:      fmt.Errorf("failed to decode response body, %w", err),
21507			Snapshot: snapshot.Bytes(),
21508		}
21509		return out, metadata, err
21510	}
21511
21512	err = awsRestjson1_deserializeOpDocumentPutSipMediaApplicationLoggingConfigurationOutput(&output, shape)
21513	if err != nil {
21514		var snapshot bytes.Buffer
21515		io.Copy(&snapshot, ringBuffer)
21516		return out, metadata, &smithy.DeserializationError{
21517			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21518			Snapshot: snapshot.Bytes(),
21519		}
21520	}
21521
21522	return out, metadata, err
21523}
21524
21525func awsRestjson1_deserializeOpErrorPutSipMediaApplicationLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21526	var errorBuffer bytes.Buffer
21527	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21528		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21529	}
21530	errorBody := bytes.NewReader(errorBuffer.Bytes())
21531
21532	errorCode := "UnknownError"
21533	errorMessage := errorCode
21534
21535	code := response.Header.Get("X-Amzn-ErrorType")
21536	if len(code) != 0 {
21537		errorCode = restjson.SanitizeErrorCode(code)
21538	}
21539
21540	var buff [1024]byte
21541	ringBuffer := smithyio.NewRingBuffer(buff[:])
21542
21543	body := io.TeeReader(errorBody, ringBuffer)
21544	decoder := json.NewDecoder(body)
21545	decoder.UseNumber()
21546	code, message, err := restjson.GetErrorInfo(decoder)
21547	if err != nil {
21548		var snapshot bytes.Buffer
21549		io.Copy(&snapshot, ringBuffer)
21550		err = &smithy.DeserializationError{
21551			Err:      fmt.Errorf("failed to decode response body, %w", err),
21552			Snapshot: snapshot.Bytes(),
21553		}
21554		return err
21555	}
21556
21557	errorBody.Seek(0, io.SeekStart)
21558	if len(code) != 0 {
21559		errorCode = restjson.SanitizeErrorCode(code)
21560	}
21561	if len(message) != 0 {
21562		errorMessage = message
21563	}
21564
21565	switch {
21566	case strings.EqualFold("BadRequestException", errorCode):
21567		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21568
21569	case strings.EqualFold("ForbiddenException", errorCode):
21570		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21571
21572	case strings.EqualFold("NotFoundException", errorCode):
21573		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21574
21575	case strings.EqualFold("ServiceFailureException", errorCode):
21576		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21577
21578	case strings.EqualFold("ServiceUnavailableException", errorCode):
21579		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21580
21581	case strings.EqualFold("ThrottledClientException", errorCode):
21582		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21583
21584	case strings.EqualFold("UnauthorizedClientException", errorCode):
21585		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21586
21587	default:
21588		genericError := &smithy.GenericAPIError{
21589			Code:    errorCode,
21590			Message: errorMessage,
21591		}
21592		return genericError
21593
21594	}
21595}
21596
21597func awsRestjson1_deserializeOpDocumentPutSipMediaApplicationLoggingConfigurationOutput(v **PutSipMediaApplicationLoggingConfigurationOutput, value interface{}) error {
21598	if v == nil {
21599		return fmt.Errorf("unexpected nil of type %T", v)
21600	}
21601	if value == nil {
21602		return nil
21603	}
21604
21605	shape, ok := value.(map[string]interface{})
21606	if !ok {
21607		return fmt.Errorf("unexpected JSON type %v", value)
21608	}
21609
21610	var sv *PutSipMediaApplicationLoggingConfigurationOutput
21611	if *v == nil {
21612		sv = &PutSipMediaApplicationLoggingConfigurationOutput{}
21613	} else {
21614		sv = *v
21615	}
21616
21617	for key, value := range shape {
21618		switch key {
21619		case "SipMediaApplicationLoggingConfiguration":
21620			if err := awsRestjson1_deserializeDocumentSipMediaApplicationLoggingConfiguration(&sv.SipMediaApplicationLoggingConfiguration, value); err != nil {
21621				return err
21622			}
21623
21624		default:
21625			_, _ = key, value
21626
21627		}
21628	}
21629	*v = sv
21630	return nil
21631}
21632
21633type awsRestjson1_deserializeOpPutVoiceConnectorEmergencyCallingConfiguration struct {
21634}
21635
21636func (*awsRestjson1_deserializeOpPutVoiceConnectorEmergencyCallingConfiguration) ID() string {
21637	return "OperationDeserializer"
21638}
21639
21640func (m *awsRestjson1_deserializeOpPutVoiceConnectorEmergencyCallingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21641	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21642) {
21643	out, metadata, err = next.HandleDeserialize(ctx, in)
21644	if err != nil {
21645		return out, metadata, err
21646	}
21647
21648	response, ok := out.RawResponse.(*smithyhttp.Response)
21649	if !ok {
21650		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21651	}
21652
21653	if response.StatusCode < 200 || response.StatusCode >= 300 {
21654		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorEmergencyCallingConfiguration(response, &metadata)
21655	}
21656	output := &PutVoiceConnectorEmergencyCallingConfigurationOutput{}
21657	out.Result = output
21658
21659	var buff [1024]byte
21660	ringBuffer := smithyio.NewRingBuffer(buff[:])
21661
21662	body := io.TeeReader(response.Body, ringBuffer)
21663
21664	decoder := json.NewDecoder(body)
21665	decoder.UseNumber()
21666	var shape interface{}
21667	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21668		var snapshot bytes.Buffer
21669		io.Copy(&snapshot, ringBuffer)
21670		err = &smithy.DeserializationError{
21671			Err:      fmt.Errorf("failed to decode response body, %w", err),
21672			Snapshot: snapshot.Bytes(),
21673		}
21674		return out, metadata, err
21675	}
21676
21677	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorEmergencyCallingConfigurationOutput(&output, shape)
21678	if err != nil {
21679		var snapshot bytes.Buffer
21680		io.Copy(&snapshot, ringBuffer)
21681		return out, metadata, &smithy.DeserializationError{
21682			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21683			Snapshot: snapshot.Bytes(),
21684		}
21685	}
21686
21687	return out, metadata, err
21688}
21689
21690func awsRestjson1_deserializeOpErrorPutVoiceConnectorEmergencyCallingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21691	var errorBuffer bytes.Buffer
21692	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21693		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21694	}
21695	errorBody := bytes.NewReader(errorBuffer.Bytes())
21696
21697	errorCode := "UnknownError"
21698	errorMessage := errorCode
21699
21700	code := response.Header.Get("X-Amzn-ErrorType")
21701	if len(code) != 0 {
21702		errorCode = restjson.SanitizeErrorCode(code)
21703	}
21704
21705	var buff [1024]byte
21706	ringBuffer := smithyio.NewRingBuffer(buff[:])
21707
21708	body := io.TeeReader(errorBody, ringBuffer)
21709	decoder := json.NewDecoder(body)
21710	decoder.UseNumber()
21711	code, message, err := restjson.GetErrorInfo(decoder)
21712	if err != nil {
21713		var snapshot bytes.Buffer
21714		io.Copy(&snapshot, ringBuffer)
21715		err = &smithy.DeserializationError{
21716			Err:      fmt.Errorf("failed to decode response body, %w", err),
21717			Snapshot: snapshot.Bytes(),
21718		}
21719		return err
21720	}
21721
21722	errorBody.Seek(0, io.SeekStart)
21723	if len(code) != 0 {
21724		errorCode = restjson.SanitizeErrorCode(code)
21725	}
21726	if len(message) != 0 {
21727		errorMessage = message
21728	}
21729
21730	switch {
21731	case strings.EqualFold("BadRequestException", errorCode):
21732		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21733
21734	case strings.EqualFold("ForbiddenException", errorCode):
21735		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21736
21737	case strings.EqualFold("NotFoundException", errorCode):
21738		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21739
21740	case strings.EqualFold("ServiceFailureException", errorCode):
21741		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21742
21743	case strings.EqualFold("ServiceUnavailableException", errorCode):
21744		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21745
21746	case strings.EqualFold("ThrottledClientException", errorCode):
21747		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21748
21749	case strings.EqualFold("UnauthorizedClientException", errorCode):
21750		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21751
21752	default:
21753		genericError := &smithy.GenericAPIError{
21754			Code:    errorCode,
21755			Message: errorMessage,
21756		}
21757		return genericError
21758
21759	}
21760}
21761
21762func awsRestjson1_deserializeOpDocumentPutVoiceConnectorEmergencyCallingConfigurationOutput(v **PutVoiceConnectorEmergencyCallingConfigurationOutput, value interface{}) error {
21763	if v == nil {
21764		return fmt.Errorf("unexpected nil of type %T", v)
21765	}
21766	if value == nil {
21767		return nil
21768	}
21769
21770	shape, ok := value.(map[string]interface{})
21771	if !ok {
21772		return fmt.Errorf("unexpected JSON type %v", value)
21773	}
21774
21775	var sv *PutVoiceConnectorEmergencyCallingConfigurationOutput
21776	if *v == nil {
21777		sv = &PutVoiceConnectorEmergencyCallingConfigurationOutput{}
21778	} else {
21779		sv = *v
21780	}
21781
21782	for key, value := range shape {
21783		switch key {
21784		case "EmergencyCallingConfiguration":
21785			if err := awsRestjson1_deserializeDocumentEmergencyCallingConfiguration(&sv.EmergencyCallingConfiguration, value); err != nil {
21786				return err
21787			}
21788
21789		default:
21790			_, _ = key, value
21791
21792		}
21793	}
21794	*v = sv
21795	return nil
21796}
21797
21798type awsRestjson1_deserializeOpPutVoiceConnectorLoggingConfiguration struct {
21799}
21800
21801func (*awsRestjson1_deserializeOpPutVoiceConnectorLoggingConfiguration) ID() string {
21802	return "OperationDeserializer"
21803}
21804
21805func (m *awsRestjson1_deserializeOpPutVoiceConnectorLoggingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21806	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21807) {
21808	out, metadata, err = next.HandleDeserialize(ctx, in)
21809	if err != nil {
21810		return out, metadata, err
21811	}
21812
21813	response, ok := out.RawResponse.(*smithyhttp.Response)
21814	if !ok {
21815		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21816	}
21817
21818	if response.StatusCode < 200 || response.StatusCode >= 300 {
21819		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorLoggingConfiguration(response, &metadata)
21820	}
21821	output := &PutVoiceConnectorLoggingConfigurationOutput{}
21822	out.Result = output
21823
21824	var buff [1024]byte
21825	ringBuffer := smithyio.NewRingBuffer(buff[:])
21826
21827	body := io.TeeReader(response.Body, ringBuffer)
21828
21829	decoder := json.NewDecoder(body)
21830	decoder.UseNumber()
21831	var shape interface{}
21832	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21833		var snapshot bytes.Buffer
21834		io.Copy(&snapshot, ringBuffer)
21835		err = &smithy.DeserializationError{
21836			Err:      fmt.Errorf("failed to decode response body, %w", err),
21837			Snapshot: snapshot.Bytes(),
21838		}
21839		return out, metadata, err
21840	}
21841
21842	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorLoggingConfigurationOutput(&output, shape)
21843	if err != nil {
21844		var snapshot bytes.Buffer
21845		io.Copy(&snapshot, ringBuffer)
21846		return out, metadata, &smithy.DeserializationError{
21847			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
21848			Snapshot: snapshot.Bytes(),
21849		}
21850	}
21851
21852	return out, metadata, err
21853}
21854
21855func awsRestjson1_deserializeOpErrorPutVoiceConnectorLoggingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
21856	var errorBuffer bytes.Buffer
21857	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
21858		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
21859	}
21860	errorBody := bytes.NewReader(errorBuffer.Bytes())
21861
21862	errorCode := "UnknownError"
21863	errorMessage := errorCode
21864
21865	code := response.Header.Get("X-Amzn-ErrorType")
21866	if len(code) != 0 {
21867		errorCode = restjson.SanitizeErrorCode(code)
21868	}
21869
21870	var buff [1024]byte
21871	ringBuffer := smithyio.NewRingBuffer(buff[:])
21872
21873	body := io.TeeReader(errorBody, ringBuffer)
21874	decoder := json.NewDecoder(body)
21875	decoder.UseNumber()
21876	code, message, err := restjson.GetErrorInfo(decoder)
21877	if err != nil {
21878		var snapshot bytes.Buffer
21879		io.Copy(&snapshot, ringBuffer)
21880		err = &smithy.DeserializationError{
21881			Err:      fmt.Errorf("failed to decode response body, %w", err),
21882			Snapshot: snapshot.Bytes(),
21883		}
21884		return err
21885	}
21886
21887	errorBody.Seek(0, io.SeekStart)
21888	if len(code) != 0 {
21889		errorCode = restjson.SanitizeErrorCode(code)
21890	}
21891	if len(message) != 0 {
21892		errorMessage = message
21893	}
21894
21895	switch {
21896	case strings.EqualFold("BadRequestException", errorCode):
21897		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
21898
21899	case strings.EqualFold("ForbiddenException", errorCode):
21900		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
21901
21902	case strings.EqualFold("NotFoundException", errorCode):
21903		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
21904
21905	case strings.EqualFold("ServiceFailureException", errorCode):
21906		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
21907
21908	case strings.EqualFold("ServiceUnavailableException", errorCode):
21909		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
21910
21911	case strings.EqualFold("ThrottledClientException", errorCode):
21912		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
21913
21914	case strings.EqualFold("UnauthorizedClientException", errorCode):
21915		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
21916
21917	default:
21918		genericError := &smithy.GenericAPIError{
21919			Code:    errorCode,
21920			Message: errorMessage,
21921		}
21922		return genericError
21923
21924	}
21925}
21926
21927func awsRestjson1_deserializeOpDocumentPutVoiceConnectorLoggingConfigurationOutput(v **PutVoiceConnectorLoggingConfigurationOutput, value interface{}) error {
21928	if v == nil {
21929		return fmt.Errorf("unexpected nil of type %T", v)
21930	}
21931	if value == nil {
21932		return nil
21933	}
21934
21935	shape, ok := value.(map[string]interface{})
21936	if !ok {
21937		return fmt.Errorf("unexpected JSON type %v", value)
21938	}
21939
21940	var sv *PutVoiceConnectorLoggingConfigurationOutput
21941	if *v == nil {
21942		sv = &PutVoiceConnectorLoggingConfigurationOutput{}
21943	} else {
21944		sv = *v
21945	}
21946
21947	for key, value := range shape {
21948		switch key {
21949		case "LoggingConfiguration":
21950			if err := awsRestjson1_deserializeDocumentLoggingConfiguration(&sv.LoggingConfiguration, value); err != nil {
21951				return err
21952			}
21953
21954		default:
21955			_, _ = key, value
21956
21957		}
21958	}
21959	*v = sv
21960	return nil
21961}
21962
21963type awsRestjson1_deserializeOpPutVoiceConnectorOrigination struct {
21964}
21965
21966func (*awsRestjson1_deserializeOpPutVoiceConnectorOrigination) ID() string {
21967	return "OperationDeserializer"
21968}
21969
21970func (m *awsRestjson1_deserializeOpPutVoiceConnectorOrigination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
21971	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
21972) {
21973	out, metadata, err = next.HandleDeserialize(ctx, in)
21974	if err != nil {
21975		return out, metadata, err
21976	}
21977
21978	response, ok := out.RawResponse.(*smithyhttp.Response)
21979	if !ok {
21980		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
21981	}
21982
21983	if response.StatusCode < 200 || response.StatusCode >= 300 {
21984		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorOrigination(response, &metadata)
21985	}
21986	output := &PutVoiceConnectorOriginationOutput{}
21987	out.Result = output
21988
21989	var buff [1024]byte
21990	ringBuffer := smithyio.NewRingBuffer(buff[:])
21991
21992	body := io.TeeReader(response.Body, ringBuffer)
21993
21994	decoder := json.NewDecoder(body)
21995	decoder.UseNumber()
21996	var shape interface{}
21997	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
21998		var snapshot bytes.Buffer
21999		io.Copy(&snapshot, ringBuffer)
22000		err = &smithy.DeserializationError{
22001			Err:      fmt.Errorf("failed to decode response body, %w", err),
22002			Snapshot: snapshot.Bytes(),
22003		}
22004		return out, metadata, err
22005	}
22006
22007	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorOriginationOutput(&output, shape)
22008	if err != nil {
22009		var snapshot bytes.Buffer
22010		io.Copy(&snapshot, ringBuffer)
22011		return out, metadata, &smithy.DeserializationError{
22012			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22013			Snapshot: snapshot.Bytes(),
22014		}
22015	}
22016
22017	return out, metadata, err
22018}
22019
22020func awsRestjson1_deserializeOpErrorPutVoiceConnectorOrigination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22021	var errorBuffer bytes.Buffer
22022	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22023		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22024	}
22025	errorBody := bytes.NewReader(errorBuffer.Bytes())
22026
22027	errorCode := "UnknownError"
22028	errorMessage := errorCode
22029
22030	code := response.Header.Get("X-Amzn-ErrorType")
22031	if len(code) != 0 {
22032		errorCode = restjson.SanitizeErrorCode(code)
22033	}
22034
22035	var buff [1024]byte
22036	ringBuffer := smithyio.NewRingBuffer(buff[:])
22037
22038	body := io.TeeReader(errorBody, ringBuffer)
22039	decoder := json.NewDecoder(body)
22040	decoder.UseNumber()
22041	code, message, err := restjson.GetErrorInfo(decoder)
22042	if err != nil {
22043		var snapshot bytes.Buffer
22044		io.Copy(&snapshot, ringBuffer)
22045		err = &smithy.DeserializationError{
22046			Err:      fmt.Errorf("failed to decode response body, %w", err),
22047			Snapshot: snapshot.Bytes(),
22048		}
22049		return err
22050	}
22051
22052	errorBody.Seek(0, io.SeekStart)
22053	if len(code) != 0 {
22054		errorCode = restjson.SanitizeErrorCode(code)
22055	}
22056	if len(message) != 0 {
22057		errorMessage = message
22058	}
22059
22060	switch {
22061	case strings.EqualFold("BadRequestException", errorCode):
22062		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22063
22064	case strings.EqualFold("ForbiddenException", errorCode):
22065		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22066
22067	case strings.EqualFold("NotFoundException", errorCode):
22068		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22069
22070	case strings.EqualFold("ServiceFailureException", errorCode):
22071		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22072
22073	case strings.EqualFold("ServiceUnavailableException", errorCode):
22074		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22075
22076	case strings.EqualFold("ThrottledClientException", errorCode):
22077		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22078
22079	case strings.EqualFold("UnauthorizedClientException", errorCode):
22080		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22081
22082	default:
22083		genericError := &smithy.GenericAPIError{
22084			Code:    errorCode,
22085			Message: errorMessage,
22086		}
22087		return genericError
22088
22089	}
22090}
22091
22092func awsRestjson1_deserializeOpDocumentPutVoiceConnectorOriginationOutput(v **PutVoiceConnectorOriginationOutput, value interface{}) error {
22093	if v == nil {
22094		return fmt.Errorf("unexpected nil of type %T", v)
22095	}
22096	if value == nil {
22097		return nil
22098	}
22099
22100	shape, ok := value.(map[string]interface{})
22101	if !ok {
22102		return fmt.Errorf("unexpected JSON type %v", value)
22103	}
22104
22105	var sv *PutVoiceConnectorOriginationOutput
22106	if *v == nil {
22107		sv = &PutVoiceConnectorOriginationOutput{}
22108	} else {
22109		sv = *v
22110	}
22111
22112	for key, value := range shape {
22113		switch key {
22114		case "Origination":
22115			if err := awsRestjson1_deserializeDocumentOrigination(&sv.Origination, value); err != nil {
22116				return err
22117			}
22118
22119		default:
22120			_, _ = key, value
22121
22122		}
22123	}
22124	*v = sv
22125	return nil
22126}
22127
22128type awsRestjson1_deserializeOpPutVoiceConnectorProxy struct {
22129}
22130
22131func (*awsRestjson1_deserializeOpPutVoiceConnectorProxy) ID() string {
22132	return "OperationDeserializer"
22133}
22134
22135func (m *awsRestjson1_deserializeOpPutVoiceConnectorProxy) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22136	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22137) {
22138	out, metadata, err = next.HandleDeserialize(ctx, in)
22139	if err != nil {
22140		return out, metadata, err
22141	}
22142
22143	response, ok := out.RawResponse.(*smithyhttp.Response)
22144	if !ok {
22145		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22146	}
22147
22148	if response.StatusCode < 200 || response.StatusCode >= 300 {
22149		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorProxy(response, &metadata)
22150	}
22151	output := &PutVoiceConnectorProxyOutput{}
22152	out.Result = output
22153
22154	var buff [1024]byte
22155	ringBuffer := smithyio.NewRingBuffer(buff[:])
22156
22157	body := io.TeeReader(response.Body, ringBuffer)
22158
22159	decoder := json.NewDecoder(body)
22160	decoder.UseNumber()
22161	var shape interface{}
22162	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22163		var snapshot bytes.Buffer
22164		io.Copy(&snapshot, ringBuffer)
22165		err = &smithy.DeserializationError{
22166			Err:      fmt.Errorf("failed to decode response body, %w", err),
22167			Snapshot: snapshot.Bytes(),
22168		}
22169		return out, metadata, err
22170	}
22171
22172	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorProxyOutput(&output, shape)
22173	if err != nil {
22174		var snapshot bytes.Buffer
22175		io.Copy(&snapshot, ringBuffer)
22176		return out, metadata, &smithy.DeserializationError{
22177			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22178			Snapshot: snapshot.Bytes(),
22179		}
22180	}
22181
22182	return out, metadata, err
22183}
22184
22185func awsRestjson1_deserializeOpErrorPutVoiceConnectorProxy(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22186	var errorBuffer bytes.Buffer
22187	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22188		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22189	}
22190	errorBody := bytes.NewReader(errorBuffer.Bytes())
22191
22192	errorCode := "UnknownError"
22193	errorMessage := errorCode
22194
22195	code := response.Header.Get("X-Amzn-ErrorType")
22196	if len(code) != 0 {
22197		errorCode = restjson.SanitizeErrorCode(code)
22198	}
22199
22200	var buff [1024]byte
22201	ringBuffer := smithyio.NewRingBuffer(buff[:])
22202
22203	body := io.TeeReader(errorBody, ringBuffer)
22204	decoder := json.NewDecoder(body)
22205	decoder.UseNumber()
22206	code, message, err := restjson.GetErrorInfo(decoder)
22207	if err != nil {
22208		var snapshot bytes.Buffer
22209		io.Copy(&snapshot, ringBuffer)
22210		err = &smithy.DeserializationError{
22211			Err:      fmt.Errorf("failed to decode response body, %w", err),
22212			Snapshot: snapshot.Bytes(),
22213		}
22214		return err
22215	}
22216
22217	errorBody.Seek(0, io.SeekStart)
22218	if len(code) != 0 {
22219		errorCode = restjson.SanitizeErrorCode(code)
22220	}
22221	if len(message) != 0 {
22222		errorMessage = message
22223	}
22224
22225	switch {
22226	case strings.EqualFold("AccessDeniedException", errorCode):
22227		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
22228
22229	case strings.EqualFold("BadRequestException", errorCode):
22230		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22231
22232	case strings.EqualFold("ForbiddenException", errorCode):
22233		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22234
22235	case strings.EqualFold("NotFoundException", errorCode):
22236		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22237
22238	case strings.EqualFold("ServiceFailureException", errorCode):
22239		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22240
22241	case strings.EqualFold("ServiceUnavailableException", errorCode):
22242		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22243
22244	case strings.EqualFold("ThrottledClientException", errorCode):
22245		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22246
22247	case strings.EqualFold("UnauthorizedClientException", errorCode):
22248		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22249
22250	default:
22251		genericError := &smithy.GenericAPIError{
22252			Code:    errorCode,
22253			Message: errorMessage,
22254		}
22255		return genericError
22256
22257	}
22258}
22259
22260func awsRestjson1_deserializeOpDocumentPutVoiceConnectorProxyOutput(v **PutVoiceConnectorProxyOutput, value interface{}) error {
22261	if v == nil {
22262		return fmt.Errorf("unexpected nil of type %T", v)
22263	}
22264	if value == nil {
22265		return nil
22266	}
22267
22268	shape, ok := value.(map[string]interface{})
22269	if !ok {
22270		return fmt.Errorf("unexpected JSON type %v", value)
22271	}
22272
22273	var sv *PutVoiceConnectorProxyOutput
22274	if *v == nil {
22275		sv = &PutVoiceConnectorProxyOutput{}
22276	} else {
22277		sv = *v
22278	}
22279
22280	for key, value := range shape {
22281		switch key {
22282		case "Proxy":
22283			if err := awsRestjson1_deserializeDocumentProxy(&sv.Proxy, value); err != nil {
22284				return err
22285			}
22286
22287		default:
22288			_, _ = key, value
22289
22290		}
22291	}
22292	*v = sv
22293	return nil
22294}
22295
22296type awsRestjson1_deserializeOpPutVoiceConnectorStreamingConfiguration struct {
22297}
22298
22299func (*awsRestjson1_deserializeOpPutVoiceConnectorStreamingConfiguration) ID() string {
22300	return "OperationDeserializer"
22301}
22302
22303func (m *awsRestjson1_deserializeOpPutVoiceConnectorStreamingConfiguration) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22304	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22305) {
22306	out, metadata, err = next.HandleDeserialize(ctx, in)
22307	if err != nil {
22308		return out, metadata, err
22309	}
22310
22311	response, ok := out.RawResponse.(*smithyhttp.Response)
22312	if !ok {
22313		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22314	}
22315
22316	if response.StatusCode < 200 || response.StatusCode >= 300 {
22317		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorStreamingConfiguration(response, &metadata)
22318	}
22319	output := &PutVoiceConnectorStreamingConfigurationOutput{}
22320	out.Result = output
22321
22322	var buff [1024]byte
22323	ringBuffer := smithyio.NewRingBuffer(buff[:])
22324
22325	body := io.TeeReader(response.Body, ringBuffer)
22326
22327	decoder := json.NewDecoder(body)
22328	decoder.UseNumber()
22329	var shape interface{}
22330	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22331		var snapshot bytes.Buffer
22332		io.Copy(&snapshot, ringBuffer)
22333		err = &smithy.DeserializationError{
22334			Err:      fmt.Errorf("failed to decode response body, %w", err),
22335			Snapshot: snapshot.Bytes(),
22336		}
22337		return out, metadata, err
22338	}
22339
22340	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorStreamingConfigurationOutput(&output, shape)
22341	if err != nil {
22342		var snapshot bytes.Buffer
22343		io.Copy(&snapshot, ringBuffer)
22344		return out, metadata, &smithy.DeserializationError{
22345			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22346			Snapshot: snapshot.Bytes(),
22347		}
22348	}
22349
22350	return out, metadata, err
22351}
22352
22353func awsRestjson1_deserializeOpErrorPutVoiceConnectorStreamingConfiguration(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22354	var errorBuffer bytes.Buffer
22355	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22356		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22357	}
22358	errorBody := bytes.NewReader(errorBuffer.Bytes())
22359
22360	errorCode := "UnknownError"
22361	errorMessage := errorCode
22362
22363	code := response.Header.Get("X-Amzn-ErrorType")
22364	if len(code) != 0 {
22365		errorCode = restjson.SanitizeErrorCode(code)
22366	}
22367
22368	var buff [1024]byte
22369	ringBuffer := smithyio.NewRingBuffer(buff[:])
22370
22371	body := io.TeeReader(errorBody, ringBuffer)
22372	decoder := json.NewDecoder(body)
22373	decoder.UseNumber()
22374	code, message, err := restjson.GetErrorInfo(decoder)
22375	if err != nil {
22376		var snapshot bytes.Buffer
22377		io.Copy(&snapshot, ringBuffer)
22378		err = &smithy.DeserializationError{
22379			Err:      fmt.Errorf("failed to decode response body, %w", err),
22380			Snapshot: snapshot.Bytes(),
22381		}
22382		return err
22383	}
22384
22385	errorBody.Seek(0, io.SeekStart)
22386	if len(code) != 0 {
22387		errorCode = restjson.SanitizeErrorCode(code)
22388	}
22389	if len(message) != 0 {
22390		errorMessage = message
22391	}
22392
22393	switch {
22394	case strings.EqualFold("BadRequestException", errorCode):
22395		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22396
22397	case strings.EqualFold("ForbiddenException", errorCode):
22398		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22399
22400	case strings.EqualFold("NotFoundException", errorCode):
22401		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22402
22403	case strings.EqualFold("ServiceFailureException", errorCode):
22404		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22405
22406	case strings.EqualFold("ServiceUnavailableException", errorCode):
22407		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22408
22409	case strings.EqualFold("ThrottledClientException", errorCode):
22410		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22411
22412	case strings.EqualFold("UnauthorizedClientException", errorCode):
22413		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22414
22415	default:
22416		genericError := &smithy.GenericAPIError{
22417			Code:    errorCode,
22418			Message: errorMessage,
22419		}
22420		return genericError
22421
22422	}
22423}
22424
22425func awsRestjson1_deserializeOpDocumentPutVoiceConnectorStreamingConfigurationOutput(v **PutVoiceConnectorStreamingConfigurationOutput, value interface{}) error {
22426	if v == nil {
22427		return fmt.Errorf("unexpected nil of type %T", v)
22428	}
22429	if value == nil {
22430		return nil
22431	}
22432
22433	shape, ok := value.(map[string]interface{})
22434	if !ok {
22435		return fmt.Errorf("unexpected JSON type %v", value)
22436	}
22437
22438	var sv *PutVoiceConnectorStreamingConfigurationOutput
22439	if *v == nil {
22440		sv = &PutVoiceConnectorStreamingConfigurationOutput{}
22441	} else {
22442		sv = *v
22443	}
22444
22445	for key, value := range shape {
22446		switch key {
22447		case "StreamingConfiguration":
22448			if err := awsRestjson1_deserializeDocumentStreamingConfiguration(&sv.StreamingConfiguration, value); err != nil {
22449				return err
22450			}
22451
22452		default:
22453			_, _ = key, value
22454
22455		}
22456	}
22457	*v = sv
22458	return nil
22459}
22460
22461type awsRestjson1_deserializeOpPutVoiceConnectorTermination struct {
22462}
22463
22464func (*awsRestjson1_deserializeOpPutVoiceConnectorTermination) ID() string {
22465	return "OperationDeserializer"
22466}
22467
22468func (m *awsRestjson1_deserializeOpPutVoiceConnectorTermination) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22469	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22470) {
22471	out, metadata, err = next.HandleDeserialize(ctx, in)
22472	if err != nil {
22473		return out, metadata, err
22474	}
22475
22476	response, ok := out.RawResponse.(*smithyhttp.Response)
22477	if !ok {
22478		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22479	}
22480
22481	if response.StatusCode < 200 || response.StatusCode >= 300 {
22482		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorTermination(response, &metadata)
22483	}
22484	output := &PutVoiceConnectorTerminationOutput{}
22485	out.Result = output
22486
22487	var buff [1024]byte
22488	ringBuffer := smithyio.NewRingBuffer(buff[:])
22489
22490	body := io.TeeReader(response.Body, ringBuffer)
22491
22492	decoder := json.NewDecoder(body)
22493	decoder.UseNumber()
22494	var shape interface{}
22495	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22496		var snapshot bytes.Buffer
22497		io.Copy(&snapshot, ringBuffer)
22498		err = &smithy.DeserializationError{
22499			Err:      fmt.Errorf("failed to decode response body, %w", err),
22500			Snapshot: snapshot.Bytes(),
22501		}
22502		return out, metadata, err
22503	}
22504
22505	err = awsRestjson1_deserializeOpDocumentPutVoiceConnectorTerminationOutput(&output, shape)
22506	if err != nil {
22507		var snapshot bytes.Buffer
22508		io.Copy(&snapshot, ringBuffer)
22509		return out, metadata, &smithy.DeserializationError{
22510			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22511			Snapshot: snapshot.Bytes(),
22512		}
22513	}
22514
22515	return out, metadata, err
22516}
22517
22518func awsRestjson1_deserializeOpErrorPutVoiceConnectorTermination(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22519	var errorBuffer bytes.Buffer
22520	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22521		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22522	}
22523	errorBody := bytes.NewReader(errorBuffer.Bytes())
22524
22525	errorCode := "UnknownError"
22526	errorMessage := errorCode
22527
22528	code := response.Header.Get("X-Amzn-ErrorType")
22529	if len(code) != 0 {
22530		errorCode = restjson.SanitizeErrorCode(code)
22531	}
22532
22533	var buff [1024]byte
22534	ringBuffer := smithyio.NewRingBuffer(buff[:])
22535
22536	body := io.TeeReader(errorBody, ringBuffer)
22537	decoder := json.NewDecoder(body)
22538	decoder.UseNumber()
22539	code, message, err := restjson.GetErrorInfo(decoder)
22540	if err != nil {
22541		var snapshot bytes.Buffer
22542		io.Copy(&snapshot, ringBuffer)
22543		err = &smithy.DeserializationError{
22544			Err:      fmt.Errorf("failed to decode response body, %w", err),
22545			Snapshot: snapshot.Bytes(),
22546		}
22547		return err
22548	}
22549
22550	errorBody.Seek(0, io.SeekStart)
22551	if len(code) != 0 {
22552		errorCode = restjson.SanitizeErrorCode(code)
22553	}
22554	if len(message) != 0 {
22555		errorMessage = message
22556	}
22557
22558	switch {
22559	case strings.EqualFold("AccessDeniedException", errorCode):
22560		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
22561
22562	case strings.EqualFold("BadRequestException", errorCode):
22563		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22564
22565	case strings.EqualFold("ForbiddenException", errorCode):
22566		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22567
22568	case strings.EqualFold("NotFoundException", errorCode):
22569		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22570
22571	case strings.EqualFold("ServiceFailureException", errorCode):
22572		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22573
22574	case strings.EqualFold("ServiceUnavailableException", errorCode):
22575		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22576
22577	case strings.EqualFold("ThrottledClientException", errorCode):
22578		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22579
22580	case strings.EqualFold("UnauthorizedClientException", errorCode):
22581		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22582
22583	default:
22584		genericError := &smithy.GenericAPIError{
22585			Code:    errorCode,
22586			Message: errorMessage,
22587		}
22588		return genericError
22589
22590	}
22591}
22592
22593func awsRestjson1_deserializeOpDocumentPutVoiceConnectorTerminationOutput(v **PutVoiceConnectorTerminationOutput, value interface{}) error {
22594	if v == nil {
22595		return fmt.Errorf("unexpected nil of type %T", v)
22596	}
22597	if value == nil {
22598		return nil
22599	}
22600
22601	shape, ok := value.(map[string]interface{})
22602	if !ok {
22603		return fmt.Errorf("unexpected JSON type %v", value)
22604	}
22605
22606	var sv *PutVoiceConnectorTerminationOutput
22607	if *v == nil {
22608		sv = &PutVoiceConnectorTerminationOutput{}
22609	} else {
22610		sv = *v
22611	}
22612
22613	for key, value := range shape {
22614		switch key {
22615		case "Termination":
22616			if err := awsRestjson1_deserializeDocumentTermination(&sv.Termination, value); err != nil {
22617				return err
22618			}
22619
22620		default:
22621			_, _ = key, value
22622
22623		}
22624	}
22625	*v = sv
22626	return nil
22627}
22628
22629type awsRestjson1_deserializeOpPutVoiceConnectorTerminationCredentials struct {
22630}
22631
22632func (*awsRestjson1_deserializeOpPutVoiceConnectorTerminationCredentials) ID() string {
22633	return "OperationDeserializer"
22634}
22635
22636func (m *awsRestjson1_deserializeOpPutVoiceConnectorTerminationCredentials) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22637	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22638) {
22639	out, metadata, err = next.HandleDeserialize(ctx, in)
22640	if err != nil {
22641		return out, metadata, err
22642	}
22643
22644	response, ok := out.RawResponse.(*smithyhttp.Response)
22645	if !ok {
22646		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22647	}
22648
22649	if response.StatusCode < 200 || response.StatusCode >= 300 {
22650		return out, metadata, awsRestjson1_deserializeOpErrorPutVoiceConnectorTerminationCredentials(response, &metadata)
22651	}
22652	output := &PutVoiceConnectorTerminationCredentialsOutput{}
22653	out.Result = output
22654
22655	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
22656		return out, metadata, &smithy.DeserializationError{
22657			Err: fmt.Errorf("failed to discard response body, %w", err),
22658		}
22659	}
22660
22661	return out, metadata, err
22662}
22663
22664func awsRestjson1_deserializeOpErrorPutVoiceConnectorTerminationCredentials(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22665	var errorBuffer bytes.Buffer
22666	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22667		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22668	}
22669	errorBody := bytes.NewReader(errorBuffer.Bytes())
22670
22671	errorCode := "UnknownError"
22672	errorMessage := errorCode
22673
22674	code := response.Header.Get("X-Amzn-ErrorType")
22675	if len(code) != 0 {
22676		errorCode = restjson.SanitizeErrorCode(code)
22677	}
22678
22679	var buff [1024]byte
22680	ringBuffer := smithyio.NewRingBuffer(buff[:])
22681
22682	body := io.TeeReader(errorBody, ringBuffer)
22683	decoder := json.NewDecoder(body)
22684	decoder.UseNumber()
22685	code, message, err := restjson.GetErrorInfo(decoder)
22686	if err != nil {
22687		var snapshot bytes.Buffer
22688		io.Copy(&snapshot, ringBuffer)
22689		err = &smithy.DeserializationError{
22690			Err:      fmt.Errorf("failed to decode response body, %w", err),
22691			Snapshot: snapshot.Bytes(),
22692		}
22693		return err
22694	}
22695
22696	errorBody.Seek(0, io.SeekStart)
22697	if len(code) != 0 {
22698		errorCode = restjson.SanitizeErrorCode(code)
22699	}
22700	if len(message) != 0 {
22701		errorMessage = message
22702	}
22703
22704	switch {
22705	case strings.EqualFold("BadRequestException", errorCode):
22706		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22707
22708	case strings.EqualFold("ForbiddenException", errorCode):
22709		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22710
22711	case strings.EqualFold("NotFoundException", errorCode):
22712		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22713
22714	case strings.EqualFold("ServiceFailureException", errorCode):
22715		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22716
22717	case strings.EqualFold("ServiceUnavailableException", errorCode):
22718		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22719
22720	case strings.EqualFold("ThrottledClientException", errorCode):
22721		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22722
22723	case strings.EqualFold("UnauthorizedClientException", errorCode):
22724		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22725
22726	default:
22727		genericError := &smithy.GenericAPIError{
22728			Code:    errorCode,
22729			Message: errorMessage,
22730		}
22731		return genericError
22732
22733	}
22734}
22735
22736type awsRestjson1_deserializeOpRedactChannelMessage struct {
22737}
22738
22739func (*awsRestjson1_deserializeOpRedactChannelMessage) ID() string {
22740	return "OperationDeserializer"
22741}
22742
22743func (m *awsRestjson1_deserializeOpRedactChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22744	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22745) {
22746	out, metadata, err = next.HandleDeserialize(ctx, in)
22747	if err != nil {
22748		return out, metadata, err
22749	}
22750
22751	response, ok := out.RawResponse.(*smithyhttp.Response)
22752	if !ok {
22753		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22754	}
22755
22756	if response.StatusCode < 200 || response.StatusCode >= 300 {
22757		return out, metadata, awsRestjson1_deserializeOpErrorRedactChannelMessage(response, &metadata)
22758	}
22759	output := &RedactChannelMessageOutput{}
22760	out.Result = output
22761
22762	var buff [1024]byte
22763	ringBuffer := smithyio.NewRingBuffer(buff[:])
22764
22765	body := io.TeeReader(response.Body, ringBuffer)
22766
22767	decoder := json.NewDecoder(body)
22768	decoder.UseNumber()
22769	var shape interface{}
22770	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
22771		var snapshot bytes.Buffer
22772		io.Copy(&snapshot, ringBuffer)
22773		err = &smithy.DeserializationError{
22774			Err:      fmt.Errorf("failed to decode response body, %w", err),
22775			Snapshot: snapshot.Bytes(),
22776		}
22777		return out, metadata, err
22778	}
22779
22780	err = awsRestjson1_deserializeOpDocumentRedactChannelMessageOutput(&output, shape)
22781	if err != nil {
22782		var snapshot bytes.Buffer
22783		io.Copy(&snapshot, ringBuffer)
22784		return out, metadata, &smithy.DeserializationError{
22785			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
22786			Snapshot: snapshot.Bytes(),
22787		}
22788	}
22789
22790	return out, metadata, err
22791}
22792
22793func awsRestjson1_deserializeOpErrorRedactChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22794	var errorBuffer bytes.Buffer
22795	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22796		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22797	}
22798	errorBody := bytes.NewReader(errorBuffer.Bytes())
22799
22800	errorCode := "UnknownError"
22801	errorMessage := errorCode
22802
22803	code := response.Header.Get("X-Amzn-ErrorType")
22804	if len(code) != 0 {
22805		errorCode = restjson.SanitizeErrorCode(code)
22806	}
22807
22808	var buff [1024]byte
22809	ringBuffer := smithyio.NewRingBuffer(buff[:])
22810
22811	body := io.TeeReader(errorBody, ringBuffer)
22812	decoder := json.NewDecoder(body)
22813	decoder.UseNumber()
22814	code, message, err := restjson.GetErrorInfo(decoder)
22815	if err != nil {
22816		var snapshot bytes.Buffer
22817		io.Copy(&snapshot, ringBuffer)
22818		err = &smithy.DeserializationError{
22819			Err:      fmt.Errorf("failed to decode response body, %w", err),
22820			Snapshot: snapshot.Bytes(),
22821		}
22822		return err
22823	}
22824
22825	errorBody.Seek(0, io.SeekStart)
22826	if len(code) != 0 {
22827		errorCode = restjson.SanitizeErrorCode(code)
22828	}
22829	if len(message) != 0 {
22830		errorMessage = message
22831	}
22832
22833	switch {
22834	case strings.EqualFold("BadRequestException", errorCode):
22835		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22836
22837	case strings.EqualFold("ForbiddenException", errorCode):
22838		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22839
22840	case strings.EqualFold("ServiceFailureException", errorCode):
22841		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22842
22843	case strings.EqualFold("ServiceUnavailableException", errorCode):
22844		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22845
22846	case strings.EqualFold("ThrottledClientException", errorCode):
22847		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22848
22849	case strings.EqualFold("UnauthorizedClientException", errorCode):
22850		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
22851
22852	default:
22853		genericError := &smithy.GenericAPIError{
22854			Code:    errorCode,
22855			Message: errorMessage,
22856		}
22857		return genericError
22858
22859	}
22860}
22861
22862func awsRestjson1_deserializeOpDocumentRedactChannelMessageOutput(v **RedactChannelMessageOutput, value interface{}) error {
22863	if v == nil {
22864		return fmt.Errorf("unexpected nil of type %T", v)
22865	}
22866	if value == nil {
22867		return nil
22868	}
22869
22870	shape, ok := value.(map[string]interface{})
22871	if !ok {
22872		return fmt.Errorf("unexpected JSON type %v", value)
22873	}
22874
22875	var sv *RedactChannelMessageOutput
22876	if *v == nil {
22877		sv = &RedactChannelMessageOutput{}
22878	} else {
22879		sv = *v
22880	}
22881
22882	for key, value := range shape {
22883		switch key {
22884		case "ChannelArn":
22885			if value != nil {
22886				jtv, ok := value.(string)
22887				if !ok {
22888					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
22889				}
22890				sv.ChannelArn = ptr.String(jtv)
22891			}
22892
22893		case "MessageId":
22894			if value != nil {
22895				jtv, ok := value.(string)
22896				if !ok {
22897					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
22898				}
22899				sv.MessageId = ptr.String(jtv)
22900			}
22901
22902		default:
22903			_, _ = key, value
22904
22905		}
22906	}
22907	*v = sv
22908	return nil
22909}
22910
22911type awsRestjson1_deserializeOpRedactConversationMessage struct {
22912}
22913
22914func (*awsRestjson1_deserializeOpRedactConversationMessage) ID() string {
22915	return "OperationDeserializer"
22916}
22917
22918func (m *awsRestjson1_deserializeOpRedactConversationMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
22919	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
22920) {
22921	out, metadata, err = next.HandleDeserialize(ctx, in)
22922	if err != nil {
22923		return out, metadata, err
22924	}
22925
22926	response, ok := out.RawResponse.(*smithyhttp.Response)
22927	if !ok {
22928		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
22929	}
22930
22931	if response.StatusCode < 200 || response.StatusCode >= 300 {
22932		return out, metadata, awsRestjson1_deserializeOpErrorRedactConversationMessage(response, &metadata)
22933	}
22934	output := &RedactConversationMessageOutput{}
22935	out.Result = output
22936
22937	return out, metadata, err
22938}
22939
22940func awsRestjson1_deserializeOpErrorRedactConversationMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
22941	var errorBuffer bytes.Buffer
22942	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
22943		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
22944	}
22945	errorBody := bytes.NewReader(errorBuffer.Bytes())
22946
22947	errorCode := "UnknownError"
22948	errorMessage := errorCode
22949
22950	code := response.Header.Get("X-Amzn-ErrorType")
22951	if len(code) != 0 {
22952		errorCode = restjson.SanitizeErrorCode(code)
22953	}
22954
22955	var buff [1024]byte
22956	ringBuffer := smithyio.NewRingBuffer(buff[:])
22957
22958	body := io.TeeReader(errorBody, ringBuffer)
22959	decoder := json.NewDecoder(body)
22960	decoder.UseNumber()
22961	code, message, err := restjson.GetErrorInfo(decoder)
22962	if err != nil {
22963		var snapshot bytes.Buffer
22964		io.Copy(&snapshot, ringBuffer)
22965		err = &smithy.DeserializationError{
22966			Err:      fmt.Errorf("failed to decode response body, %w", err),
22967			Snapshot: snapshot.Bytes(),
22968		}
22969		return err
22970	}
22971
22972	errorBody.Seek(0, io.SeekStart)
22973	if len(code) != 0 {
22974		errorCode = restjson.SanitizeErrorCode(code)
22975	}
22976	if len(message) != 0 {
22977		errorMessage = message
22978	}
22979
22980	switch {
22981	case strings.EqualFold("BadRequestException", errorCode):
22982		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
22983
22984	case strings.EqualFold("ForbiddenException", errorCode):
22985		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
22986
22987	case strings.EqualFold("NotFoundException", errorCode):
22988		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
22989
22990	case strings.EqualFold("ServiceFailureException", errorCode):
22991		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
22992
22993	case strings.EqualFold("ServiceUnavailableException", errorCode):
22994		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
22995
22996	case strings.EqualFold("ThrottledClientException", errorCode):
22997		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
22998
22999	case strings.EqualFold("UnauthorizedClientException", errorCode):
23000		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23001
23002	default:
23003		genericError := &smithy.GenericAPIError{
23004			Code:    errorCode,
23005			Message: errorMessage,
23006		}
23007		return genericError
23008
23009	}
23010}
23011
23012type awsRestjson1_deserializeOpRedactRoomMessage struct {
23013}
23014
23015func (*awsRestjson1_deserializeOpRedactRoomMessage) ID() string {
23016	return "OperationDeserializer"
23017}
23018
23019func (m *awsRestjson1_deserializeOpRedactRoomMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23020	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23021) {
23022	out, metadata, err = next.HandleDeserialize(ctx, in)
23023	if err != nil {
23024		return out, metadata, err
23025	}
23026
23027	response, ok := out.RawResponse.(*smithyhttp.Response)
23028	if !ok {
23029		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23030	}
23031
23032	if response.StatusCode < 200 || response.StatusCode >= 300 {
23033		return out, metadata, awsRestjson1_deserializeOpErrorRedactRoomMessage(response, &metadata)
23034	}
23035	output := &RedactRoomMessageOutput{}
23036	out.Result = output
23037
23038	return out, metadata, err
23039}
23040
23041func awsRestjson1_deserializeOpErrorRedactRoomMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23042	var errorBuffer bytes.Buffer
23043	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23044		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23045	}
23046	errorBody := bytes.NewReader(errorBuffer.Bytes())
23047
23048	errorCode := "UnknownError"
23049	errorMessage := errorCode
23050
23051	code := response.Header.Get("X-Amzn-ErrorType")
23052	if len(code) != 0 {
23053		errorCode = restjson.SanitizeErrorCode(code)
23054	}
23055
23056	var buff [1024]byte
23057	ringBuffer := smithyio.NewRingBuffer(buff[:])
23058
23059	body := io.TeeReader(errorBody, ringBuffer)
23060	decoder := json.NewDecoder(body)
23061	decoder.UseNumber()
23062	code, message, err := restjson.GetErrorInfo(decoder)
23063	if err != nil {
23064		var snapshot bytes.Buffer
23065		io.Copy(&snapshot, ringBuffer)
23066		err = &smithy.DeserializationError{
23067			Err:      fmt.Errorf("failed to decode response body, %w", err),
23068			Snapshot: snapshot.Bytes(),
23069		}
23070		return err
23071	}
23072
23073	errorBody.Seek(0, io.SeekStart)
23074	if len(code) != 0 {
23075		errorCode = restjson.SanitizeErrorCode(code)
23076	}
23077	if len(message) != 0 {
23078		errorMessage = message
23079	}
23080
23081	switch {
23082	case strings.EqualFold("BadRequestException", errorCode):
23083		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23084
23085	case strings.EqualFold("ForbiddenException", errorCode):
23086		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23087
23088	case strings.EqualFold("NotFoundException", errorCode):
23089		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23090
23091	case strings.EqualFold("ServiceFailureException", errorCode):
23092		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23093
23094	case strings.EqualFold("ServiceUnavailableException", errorCode):
23095		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23096
23097	case strings.EqualFold("ThrottledClientException", errorCode):
23098		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23099
23100	case strings.EqualFold("UnauthorizedClientException", errorCode):
23101		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23102
23103	default:
23104		genericError := &smithy.GenericAPIError{
23105			Code:    errorCode,
23106			Message: errorMessage,
23107		}
23108		return genericError
23109
23110	}
23111}
23112
23113type awsRestjson1_deserializeOpRegenerateSecurityToken struct {
23114}
23115
23116func (*awsRestjson1_deserializeOpRegenerateSecurityToken) ID() string {
23117	return "OperationDeserializer"
23118}
23119
23120func (m *awsRestjson1_deserializeOpRegenerateSecurityToken) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23121	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23122) {
23123	out, metadata, err = next.HandleDeserialize(ctx, in)
23124	if err != nil {
23125		return out, metadata, err
23126	}
23127
23128	response, ok := out.RawResponse.(*smithyhttp.Response)
23129	if !ok {
23130		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23131	}
23132
23133	if response.StatusCode < 200 || response.StatusCode >= 300 {
23134		return out, metadata, awsRestjson1_deserializeOpErrorRegenerateSecurityToken(response, &metadata)
23135	}
23136	output := &RegenerateSecurityTokenOutput{}
23137	out.Result = output
23138
23139	var buff [1024]byte
23140	ringBuffer := smithyio.NewRingBuffer(buff[:])
23141
23142	body := io.TeeReader(response.Body, ringBuffer)
23143
23144	decoder := json.NewDecoder(body)
23145	decoder.UseNumber()
23146	var shape interface{}
23147	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23148		var snapshot bytes.Buffer
23149		io.Copy(&snapshot, ringBuffer)
23150		err = &smithy.DeserializationError{
23151			Err:      fmt.Errorf("failed to decode response body, %w", err),
23152			Snapshot: snapshot.Bytes(),
23153		}
23154		return out, metadata, err
23155	}
23156
23157	err = awsRestjson1_deserializeOpDocumentRegenerateSecurityTokenOutput(&output, shape)
23158	if err != nil {
23159		var snapshot bytes.Buffer
23160		io.Copy(&snapshot, ringBuffer)
23161		return out, metadata, &smithy.DeserializationError{
23162			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23163			Snapshot: snapshot.Bytes(),
23164		}
23165	}
23166
23167	return out, metadata, err
23168}
23169
23170func awsRestjson1_deserializeOpErrorRegenerateSecurityToken(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23171	var errorBuffer bytes.Buffer
23172	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23173		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23174	}
23175	errorBody := bytes.NewReader(errorBuffer.Bytes())
23176
23177	errorCode := "UnknownError"
23178	errorMessage := errorCode
23179
23180	code := response.Header.Get("X-Amzn-ErrorType")
23181	if len(code) != 0 {
23182		errorCode = restjson.SanitizeErrorCode(code)
23183	}
23184
23185	var buff [1024]byte
23186	ringBuffer := smithyio.NewRingBuffer(buff[:])
23187
23188	body := io.TeeReader(errorBody, ringBuffer)
23189	decoder := json.NewDecoder(body)
23190	decoder.UseNumber()
23191	code, message, err := restjson.GetErrorInfo(decoder)
23192	if err != nil {
23193		var snapshot bytes.Buffer
23194		io.Copy(&snapshot, ringBuffer)
23195		err = &smithy.DeserializationError{
23196			Err:      fmt.Errorf("failed to decode response body, %w", err),
23197			Snapshot: snapshot.Bytes(),
23198		}
23199		return err
23200	}
23201
23202	errorBody.Seek(0, io.SeekStart)
23203	if len(code) != 0 {
23204		errorCode = restjson.SanitizeErrorCode(code)
23205	}
23206	if len(message) != 0 {
23207		errorMessage = message
23208	}
23209
23210	switch {
23211	case strings.EqualFold("BadRequestException", errorCode):
23212		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23213
23214	case strings.EqualFold("ForbiddenException", errorCode):
23215		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23216
23217	case strings.EqualFold("NotFoundException", errorCode):
23218		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23219
23220	case strings.EqualFold("ServiceFailureException", errorCode):
23221		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23222
23223	case strings.EqualFold("ServiceUnavailableException", errorCode):
23224		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23225
23226	case strings.EqualFold("ThrottledClientException", errorCode):
23227		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23228
23229	case strings.EqualFold("UnauthorizedClientException", errorCode):
23230		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23231
23232	default:
23233		genericError := &smithy.GenericAPIError{
23234			Code:    errorCode,
23235			Message: errorMessage,
23236		}
23237		return genericError
23238
23239	}
23240}
23241
23242func awsRestjson1_deserializeOpDocumentRegenerateSecurityTokenOutput(v **RegenerateSecurityTokenOutput, value interface{}) error {
23243	if v == nil {
23244		return fmt.Errorf("unexpected nil of type %T", v)
23245	}
23246	if value == nil {
23247		return nil
23248	}
23249
23250	shape, ok := value.(map[string]interface{})
23251	if !ok {
23252		return fmt.Errorf("unexpected JSON type %v", value)
23253	}
23254
23255	var sv *RegenerateSecurityTokenOutput
23256	if *v == nil {
23257		sv = &RegenerateSecurityTokenOutput{}
23258	} else {
23259		sv = *v
23260	}
23261
23262	for key, value := range shape {
23263		switch key {
23264		case "Bot":
23265			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
23266				return err
23267			}
23268
23269		default:
23270			_, _ = key, value
23271
23272		}
23273	}
23274	*v = sv
23275	return nil
23276}
23277
23278type awsRestjson1_deserializeOpResetPersonalPIN struct {
23279}
23280
23281func (*awsRestjson1_deserializeOpResetPersonalPIN) ID() string {
23282	return "OperationDeserializer"
23283}
23284
23285func (m *awsRestjson1_deserializeOpResetPersonalPIN) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23286	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23287) {
23288	out, metadata, err = next.HandleDeserialize(ctx, in)
23289	if err != nil {
23290		return out, metadata, err
23291	}
23292
23293	response, ok := out.RawResponse.(*smithyhttp.Response)
23294	if !ok {
23295		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23296	}
23297
23298	if response.StatusCode < 200 || response.StatusCode >= 300 {
23299		return out, metadata, awsRestjson1_deserializeOpErrorResetPersonalPIN(response, &metadata)
23300	}
23301	output := &ResetPersonalPINOutput{}
23302	out.Result = output
23303
23304	var buff [1024]byte
23305	ringBuffer := smithyio.NewRingBuffer(buff[:])
23306
23307	body := io.TeeReader(response.Body, ringBuffer)
23308
23309	decoder := json.NewDecoder(body)
23310	decoder.UseNumber()
23311	var shape interface{}
23312	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23313		var snapshot bytes.Buffer
23314		io.Copy(&snapshot, ringBuffer)
23315		err = &smithy.DeserializationError{
23316			Err:      fmt.Errorf("failed to decode response body, %w", err),
23317			Snapshot: snapshot.Bytes(),
23318		}
23319		return out, metadata, err
23320	}
23321
23322	err = awsRestjson1_deserializeOpDocumentResetPersonalPINOutput(&output, shape)
23323	if err != nil {
23324		var snapshot bytes.Buffer
23325		io.Copy(&snapshot, ringBuffer)
23326		return out, metadata, &smithy.DeserializationError{
23327			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23328			Snapshot: snapshot.Bytes(),
23329		}
23330	}
23331
23332	return out, metadata, err
23333}
23334
23335func awsRestjson1_deserializeOpErrorResetPersonalPIN(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23336	var errorBuffer bytes.Buffer
23337	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23338		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23339	}
23340	errorBody := bytes.NewReader(errorBuffer.Bytes())
23341
23342	errorCode := "UnknownError"
23343	errorMessage := errorCode
23344
23345	code := response.Header.Get("X-Amzn-ErrorType")
23346	if len(code) != 0 {
23347		errorCode = restjson.SanitizeErrorCode(code)
23348	}
23349
23350	var buff [1024]byte
23351	ringBuffer := smithyio.NewRingBuffer(buff[:])
23352
23353	body := io.TeeReader(errorBody, ringBuffer)
23354	decoder := json.NewDecoder(body)
23355	decoder.UseNumber()
23356	code, message, err := restjson.GetErrorInfo(decoder)
23357	if err != nil {
23358		var snapshot bytes.Buffer
23359		io.Copy(&snapshot, ringBuffer)
23360		err = &smithy.DeserializationError{
23361			Err:      fmt.Errorf("failed to decode response body, %w", err),
23362			Snapshot: snapshot.Bytes(),
23363		}
23364		return err
23365	}
23366
23367	errorBody.Seek(0, io.SeekStart)
23368	if len(code) != 0 {
23369		errorCode = restjson.SanitizeErrorCode(code)
23370	}
23371	if len(message) != 0 {
23372		errorMessage = message
23373	}
23374
23375	switch {
23376	case strings.EqualFold("BadRequestException", errorCode):
23377		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23378
23379	case strings.EqualFold("ForbiddenException", errorCode):
23380		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23381
23382	case strings.EqualFold("NotFoundException", errorCode):
23383		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23384
23385	case strings.EqualFold("ServiceFailureException", errorCode):
23386		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23387
23388	case strings.EqualFold("ServiceUnavailableException", errorCode):
23389		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23390
23391	case strings.EqualFold("ThrottledClientException", errorCode):
23392		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23393
23394	case strings.EqualFold("UnauthorizedClientException", errorCode):
23395		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23396
23397	default:
23398		genericError := &smithy.GenericAPIError{
23399			Code:    errorCode,
23400			Message: errorMessage,
23401		}
23402		return genericError
23403
23404	}
23405}
23406
23407func awsRestjson1_deserializeOpDocumentResetPersonalPINOutput(v **ResetPersonalPINOutput, value interface{}) error {
23408	if v == nil {
23409		return fmt.Errorf("unexpected nil of type %T", v)
23410	}
23411	if value == nil {
23412		return nil
23413	}
23414
23415	shape, ok := value.(map[string]interface{})
23416	if !ok {
23417		return fmt.Errorf("unexpected JSON type %v", value)
23418	}
23419
23420	var sv *ResetPersonalPINOutput
23421	if *v == nil {
23422		sv = &ResetPersonalPINOutput{}
23423	} else {
23424		sv = *v
23425	}
23426
23427	for key, value := range shape {
23428		switch key {
23429		case "User":
23430			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
23431				return err
23432			}
23433
23434		default:
23435			_, _ = key, value
23436
23437		}
23438	}
23439	*v = sv
23440	return nil
23441}
23442
23443type awsRestjson1_deserializeOpRestorePhoneNumber struct {
23444}
23445
23446func (*awsRestjson1_deserializeOpRestorePhoneNumber) ID() string {
23447	return "OperationDeserializer"
23448}
23449
23450func (m *awsRestjson1_deserializeOpRestorePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23451	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23452) {
23453	out, metadata, err = next.HandleDeserialize(ctx, in)
23454	if err != nil {
23455		return out, metadata, err
23456	}
23457
23458	response, ok := out.RawResponse.(*smithyhttp.Response)
23459	if !ok {
23460		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23461	}
23462
23463	if response.StatusCode < 200 || response.StatusCode >= 300 {
23464		return out, metadata, awsRestjson1_deserializeOpErrorRestorePhoneNumber(response, &metadata)
23465	}
23466	output := &RestorePhoneNumberOutput{}
23467	out.Result = output
23468
23469	var buff [1024]byte
23470	ringBuffer := smithyio.NewRingBuffer(buff[:])
23471
23472	body := io.TeeReader(response.Body, ringBuffer)
23473
23474	decoder := json.NewDecoder(body)
23475	decoder.UseNumber()
23476	var shape interface{}
23477	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23478		var snapshot bytes.Buffer
23479		io.Copy(&snapshot, ringBuffer)
23480		err = &smithy.DeserializationError{
23481			Err:      fmt.Errorf("failed to decode response body, %w", err),
23482			Snapshot: snapshot.Bytes(),
23483		}
23484		return out, metadata, err
23485	}
23486
23487	err = awsRestjson1_deserializeOpDocumentRestorePhoneNumberOutput(&output, shape)
23488	if err != nil {
23489		var snapshot bytes.Buffer
23490		io.Copy(&snapshot, ringBuffer)
23491		return out, metadata, &smithy.DeserializationError{
23492			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23493			Snapshot: snapshot.Bytes(),
23494		}
23495	}
23496
23497	return out, metadata, err
23498}
23499
23500func awsRestjson1_deserializeOpErrorRestorePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23501	var errorBuffer bytes.Buffer
23502	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23503		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23504	}
23505	errorBody := bytes.NewReader(errorBuffer.Bytes())
23506
23507	errorCode := "UnknownError"
23508	errorMessage := errorCode
23509
23510	code := response.Header.Get("X-Amzn-ErrorType")
23511	if len(code) != 0 {
23512		errorCode = restjson.SanitizeErrorCode(code)
23513	}
23514
23515	var buff [1024]byte
23516	ringBuffer := smithyio.NewRingBuffer(buff[:])
23517
23518	body := io.TeeReader(errorBody, ringBuffer)
23519	decoder := json.NewDecoder(body)
23520	decoder.UseNumber()
23521	code, message, err := restjson.GetErrorInfo(decoder)
23522	if err != nil {
23523		var snapshot bytes.Buffer
23524		io.Copy(&snapshot, ringBuffer)
23525		err = &smithy.DeserializationError{
23526			Err:      fmt.Errorf("failed to decode response body, %w", err),
23527			Snapshot: snapshot.Bytes(),
23528		}
23529		return err
23530	}
23531
23532	errorBody.Seek(0, io.SeekStart)
23533	if len(code) != 0 {
23534		errorCode = restjson.SanitizeErrorCode(code)
23535	}
23536	if len(message) != 0 {
23537		errorMessage = message
23538	}
23539
23540	switch {
23541	case strings.EqualFold("BadRequestException", errorCode):
23542		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23543
23544	case strings.EqualFold("ForbiddenException", errorCode):
23545		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23546
23547	case strings.EqualFold("NotFoundException", errorCode):
23548		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
23549
23550	case strings.EqualFold("ResourceLimitExceededException", errorCode):
23551		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
23552
23553	case strings.EqualFold("ServiceFailureException", errorCode):
23554		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23555
23556	case strings.EqualFold("ServiceUnavailableException", errorCode):
23557		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23558
23559	case strings.EqualFold("ThrottledClientException", errorCode):
23560		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23561
23562	case strings.EqualFold("UnauthorizedClientException", errorCode):
23563		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23564
23565	default:
23566		genericError := &smithy.GenericAPIError{
23567			Code:    errorCode,
23568			Message: errorMessage,
23569		}
23570		return genericError
23571
23572	}
23573}
23574
23575func awsRestjson1_deserializeOpDocumentRestorePhoneNumberOutput(v **RestorePhoneNumberOutput, value interface{}) error {
23576	if v == nil {
23577		return fmt.Errorf("unexpected nil of type %T", v)
23578	}
23579	if value == nil {
23580		return nil
23581	}
23582
23583	shape, ok := value.(map[string]interface{})
23584	if !ok {
23585		return fmt.Errorf("unexpected JSON type %v", value)
23586	}
23587
23588	var sv *RestorePhoneNumberOutput
23589	if *v == nil {
23590		sv = &RestorePhoneNumberOutput{}
23591	} else {
23592		sv = *v
23593	}
23594
23595	for key, value := range shape {
23596		switch key {
23597		case "PhoneNumber":
23598			if err := awsRestjson1_deserializeDocumentPhoneNumber(&sv.PhoneNumber, value); err != nil {
23599				return err
23600			}
23601
23602		default:
23603			_, _ = key, value
23604
23605		}
23606	}
23607	*v = sv
23608	return nil
23609}
23610
23611type awsRestjson1_deserializeOpSearchAvailablePhoneNumbers struct {
23612}
23613
23614func (*awsRestjson1_deserializeOpSearchAvailablePhoneNumbers) ID() string {
23615	return "OperationDeserializer"
23616}
23617
23618func (m *awsRestjson1_deserializeOpSearchAvailablePhoneNumbers) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23619	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23620) {
23621	out, metadata, err = next.HandleDeserialize(ctx, in)
23622	if err != nil {
23623		return out, metadata, err
23624	}
23625
23626	response, ok := out.RawResponse.(*smithyhttp.Response)
23627	if !ok {
23628		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23629	}
23630
23631	if response.StatusCode < 200 || response.StatusCode >= 300 {
23632		return out, metadata, awsRestjson1_deserializeOpErrorSearchAvailablePhoneNumbers(response, &metadata)
23633	}
23634	output := &SearchAvailablePhoneNumbersOutput{}
23635	out.Result = output
23636
23637	var buff [1024]byte
23638	ringBuffer := smithyio.NewRingBuffer(buff[:])
23639
23640	body := io.TeeReader(response.Body, ringBuffer)
23641
23642	decoder := json.NewDecoder(body)
23643	decoder.UseNumber()
23644	var shape interface{}
23645	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23646		var snapshot bytes.Buffer
23647		io.Copy(&snapshot, ringBuffer)
23648		err = &smithy.DeserializationError{
23649			Err:      fmt.Errorf("failed to decode response body, %w", err),
23650			Snapshot: snapshot.Bytes(),
23651		}
23652		return out, metadata, err
23653	}
23654
23655	err = awsRestjson1_deserializeOpDocumentSearchAvailablePhoneNumbersOutput(&output, shape)
23656	if err != nil {
23657		var snapshot bytes.Buffer
23658		io.Copy(&snapshot, ringBuffer)
23659		return out, metadata, &smithy.DeserializationError{
23660			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23661			Snapshot: snapshot.Bytes(),
23662		}
23663	}
23664
23665	return out, metadata, err
23666}
23667
23668func awsRestjson1_deserializeOpErrorSearchAvailablePhoneNumbers(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23669	var errorBuffer bytes.Buffer
23670	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23671		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23672	}
23673	errorBody := bytes.NewReader(errorBuffer.Bytes())
23674
23675	errorCode := "UnknownError"
23676	errorMessage := errorCode
23677
23678	code := response.Header.Get("X-Amzn-ErrorType")
23679	if len(code) != 0 {
23680		errorCode = restjson.SanitizeErrorCode(code)
23681	}
23682
23683	var buff [1024]byte
23684	ringBuffer := smithyio.NewRingBuffer(buff[:])
23685
23686	body := io.TeeReader(errorBody, ringBuffer)
23687	decoder := json.NewDecoder(body)
23688	decoder.UseNumber()
23689	code, message, err := restjson.GetErrorInfo(decoder)
23690	if err != nil {
23691		var snapshot bytes.Buffer
23692		io.Copy(&snapshot, ringBuffer)
23693		err = &smithy.DeserializationError{
23694			Err:      fmt.Errorf("failed to decode response body, %w", err),
23695			Snapshot: snapshot.Bytes(),
23696		}
23697		return err
23698	}
23699
23700	errorBody.Seek(0, io.SeekStart)
23701	if len(code) != 0 {
23702		errorCode = restjson.SanitizeErrorCode(code)
23703	}
23704	if len(message) != 0 {
23705		errorMessage = message
23706	}
23707
23708	switch {
23709	case strings.EqualFold("AccessDeniedException", errorCode):
23710		return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody)
23711
23712	case strings.EqualFold("BadRequestException", errorCode):
23713		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23714
23715	case strings.EqualFold("ForbiddenException", errorCode):
23716		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23717
23718	case strings.EqualFold("ServiceFailureException", errorCode):
23719		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23720
23721	case strings.EqualFold("ServiceUnavailableException", errorCode):
23722		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23723
23724	case strings.EqualFold("ThrottledClientException", errorCode):
23725		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23726
23727	case strings.EqualFold("UnauthorizedClientException", errorCode):
23728		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23729
23730	default:
23731		genericError := &smithy.GenericAPIError{
23732			Code:    errorCode,
23733			Message: errorMessage,
23734		}
23735		return genericError
23736
23737	}
23738}
23739
23740func awsRestjson1_deserializeOpDocumentSearchAvailablePhoneNumbersOutput(v **SearchAvailablePhoneNumbersOutput, value interface{}) error {
23741	if v == nil {
23742		return fmt.Errorf("unexpected nil of type %T", v)
23743	}
23744	if value == nil {
23745		return nil
23746	}
23747
23748	shape, ok := value.(map[string]interface{})
23749	if !ok {
23750		return fmt.Errorf("unexpected JSON type %v", value)
23751	}
23752
23753	var sv *SearchAvailablePhoneNumbersOutput
23754	if *v == nil {
23755		sv = &SearchAvailablePhoneNumbersOutput{}
23756	} else {
23757		sv = *v
23758	}
23759
23760	for key, value := range shape {
23761		switch key {
23762		case "E164PhoneNumbers":
23763			if err := awsRestjson1_deserializeDocumentE164PhoneNumberList(&sv.E164PhoneNumbers, value); err != nil {
23764				return err
23765			}
23766
23767		default:
23768			_, _ = key, value
23769
23770		}
23771	}
23772	*v = sv
23773	return nil
23774}
23775
23776type awsRestjson1_deserializeOpSendChannelMessage struct {
23777}
23778
23779func (*awsRestjson1_deserializeOpSendChannelMessage) ID() string {
23780	return "OperationDeserializer"
23781}
23782
23783func (m *awsRestjson1_deserializeOpSendChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23784	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23785) {
23786	out, metadata, err = next.HandleDeserialize(ctx, in)
23787	if err != nil {
23788		return out, metadata, err
23789	}
23790
23791	response, ok := out.RawResponse.(*smithyhttp.Response)
23792	if !ok {
23793		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23794	}
23795
23796	if response.StatusCode < 200 || response.StatusCode >= 300 {
23797		return out, metadata, awsRestjson1_deserializeOpErrorSendChannelMessage(response, &metadata)
23798	}
23799	output := &SendChannelMessageOutput{}
23800	out.Result = output
23801
23802	var buff [1024]byte
23803	ringBuffer := smithyio.NewRingBuffer(buff[:])
23804
23805	body := io.TeeReader(response.Body, ringBuffer)
23806
23807	decoder := json.NewDecoder(body)
23808	decoder.UseNumber()
23809	var shape interface{}
23810	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
23811		var snapshot bytes.Buffer
23812		io.Copy(&snapshot, ringBuffer)
23813		err = &smithy.DeserializationError{
23814			Err:      fmt.Errorf("failed to decode response body, %w", err),
23815			Snapshot: snapshot.Bytes(),
23816		}
23817		return out, metadata, err
23818	}
23819
23820	err = awsRestjson1_deserializeOpDocumentSendChannelMessageOutput(&output, shape)
23821	if err != nil {
23822		var snapshot bytes.Buffer
23823		io.Copy(&snapshot, ringBuffer)
23824		return out, metadata, &smithy.DeserializationError{
23825			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
23826			Snapshot: snapshot.Bytes(),
23827		}
23828	}
23829
23830	return out, metadata, err
23831}
23832
23833func awsRestjson1_deserializeOpErrorSendChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23834	var errorBuffer bytes.Buffer
23835	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23836		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23837	}
23838	errorBody := bytes.NewReader(errorBuffer.Bytes())
23839
23840	errorCode := "UnknownError"
23841	errorMessage := errorCode
23842
23843	code := response.Header.Get("X-Amzn-ErrorType")
23844	if len(code) != 0 {
23845		errorCode = restjson.SanitizeErrorCode(code)
23846	}
23847
23848	var buff [1024]byte
23849	ringBuffer := smithyio.NewRingBuffer(buff[:])
23850
23851	body := io.TeeReader(errorBody, ringBuffer)
23852	decoder := json.NewDecoder(body)
23853	decoder.UseNumber()
23854	code, message, err := restjson.GetErrorInfo(decoder)
23855	if err != nil {
23856		var snapshot bytes.Buffer
23857		io.Copy(&snapshot, ringBuffer)
23858		err = &smithy.DeserializationError{
23859			Err:      fmt.Errorf("failed to decode response body, %w", err),
23860			Snapshot: snapshot.Bytes(),
23861		}
23862		return err
23863	}
23864
23865	errorBody.Seek(0, io.SeekStart)
23866	if len(code) != 0 {
23867		errorCode = restjson.SanitizeErrorCode(code)
23868	}
23869	if len(message) != 0 {
23870		errorMessage = message
23871	}
23872
23873	switch {
23874	case strings.EqualFold("BadRequestException", errorCode):
23875		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
23876
23877	case strings.EqualFold("ConflictException", errorCode):
23878		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
23879
23880	case strings.EqualFold("ForbiddenException", errorCode):
23881		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
23882
23883	case strings.EqualFold("ServiceFailureException", errorCode):
23884		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
23885
23886	case strings.EqualFold("ServiceUnavailableException", errorCode):
23887		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
23888
23889	case strings.EqualFold("ThrottledClientException", errorCode):
23890		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
23891
23892	case strings.EqualFold("UnauthorizedClientException", errorCode):
23893		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
23894
23895	default:
23896		genericError := &smithy.GenericAPIError{
23897			Code:    errorCode,
23898			Message: errorMessage,
23899		}
23900		return genericError
23901
23902	}
23903}
23904
23905func awsRestjson1_deserializeOpDocumentSendChannelMessageOutput(v **SendChannelMessageOutput, value interface{}) error {
23906	if v == nil {
23907		return fmt.Errorf("unexpected nil of type %T", v)
23908	}
23909	if value == nil {
23910		return nil
23911	}
23912
23913	shape, ok := value.(map[string]interface{})
23914	if !ok {
23915		return fmt.Errorf("unexpected JSON type %v", value)
23916	}
23917
23918	var sv *SendChannelMessageOutput
23919	if *v == nil {
23920		sv = &SendChannelMessageOutput{}
23921	} else {
23922		sv = *v
23923	}
23924
23925	for key, value := range shape {
23926		switch key {
23927		case "ChannelArn":
23928			if value != nil {
23929				jtv, ok := value.(string)
23930				if !ok {
23931					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
23932				}
23933				sv.ChannelArn = ptr.String(jtv)
23934			}
23935
23936		case "MessageId":
23937			if value != nil {
23938				jtv, ok := value.(string)
23939				if !ok {
23940					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
23941				}
23942				sv.MessageId = ptr.String(jtv)
23943			}
23944
23945		default:
23946			_, _ = key, value
23947
23948		}
23949	}
23950	*v = sv
23951	return nil
23952}
23953
23954type awsRestjson1_deserializeOpTagAttendee struct {
23955}
23956
23957func (*awsRestjson1_deserializeOpTagAttendee) ID() string {
23958	return "OperationDeserializer"
23959}
23960
23961func (m *awsRestjson1_deserializeOpTagAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
23962	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
23963) {
23964	out, metadata, err = next.HandleDeserialize(ctx, in)
23965	if err != nil {
23966		return out, metadata, err
23967	}
23968
23969	response, ok := out.RawResponse.(*smithyhttp.Response)
23970	if !ok {
23971		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
23972	}
23973
23974	if response.StatusCode < 200 || response.StatusCode >= 300 {
23975		return out, metadata, awsRestjson1_deserializeOpErrorTagAttendee(response, &metadata)
23976	}
23977	output := &TagAttendeeOutput{}
23978	out.Result = output
23979
23980	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
23981		return out, metadata, &smithy.DeserializationError{
23982			Err: fmt.Errorf("failed to discard response body, %w", err),
23983		}
23984	}
23985
23986	return out, metadata, err
23987}
23988
23989func awsRestjson1_deserializeOpErrorTagAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
23990	var errorBuffer bytes.Buffer
23991	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
23992		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
23993	}
23994	errorBody := bytes.NewReader(errorBuffer.Bytes())
23995
23996	errorCode := "UnknownError"
23997	errorMessage := errorCode
23998
23999	code := response.Header.Get("X-Amzn-ErrorType")
24000	if len(code) != 0 {
24001		errorCode = restjson.SanitizeErrorCode(code)
24002	}
24003
24004	var buff [1024]byte
24005	ringBuffer := smithyio.NewRingBuffer(buff[:])
24006
24007	body := io.TeeReader(errorBody, ringBuffer)
24008	decoder := json.NewDecoder(body)
24009	decoder.UseNumber()
24010	code, message, err := restjson.GetErrorInfo(decoder)
24011	if err != nil {
24012		var snapshot bytes.Buffer
24013		io.Copy(&snapshot, ringBuffer)
24014		err = &smithy.DeserializationError{
24015			Err:      fmt.Errorf("failed to decode response body, %w", err),
24016			Snapshot: snapshot.Bytes(),
24017		}
24018		return err
24019	}
24020
24021	errorBody.Seek(0, io.SeekStart)
24022	if len(code) != 0 {
24023		errorCode = restjson.SanitizeErrorCode(code)
24024	}
24025	if len(message) != 0 {
24026		errorMessage = message
24027	}
24028
24029	switch {
24030	case strings.EqualFold("BadRequestException", errorCode):
24031		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24032
24033	case strings.EqualFold("ForbiddenException", errorCode):
24034		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24035
24036	case strings.EqualFold("NotFoundException", errorCode):
24037		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24038
24039	case strings.EqualFold("ResourceLimitExceededException", errorCode):
24040		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
24041
24042	case strings.EqualFold("ServiceFailureException", errorCode):
24043		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24044
24045	case strings.EqualFold("ServiceUnavailableException", errorCode):
24046		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24047
24048	case strings.EqualFold("ThrottledClientException", errorCode):
24049		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24050
24051	case strings.EqualFold("UnauthorizedClientException", errorCode):
24052		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24053
24054	default:
24055		genericError := &smithy.GenericAPIError{
24056			Code:    errorCode,
24057			Message: errorMessage,
24058		}
24059		return genericError
24060
24061	}
24062}
24063
24064type awsRestjson1_deserializeOpTagMeeting struct {
24065}
24066
24067func (*awsRestjson1_deserializeOpTagMeeting) ID() string {
24068	return "OperationDeserializer"
24069}
24070
24071func (m *awsRestjson1_deserializeOpTagMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24072	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24073) {
24074	out, metadata, err = next.HandleDeserialize(ctx, in)
24075	if err != nil {
24076		return out, metadata, err
24077	}
24078
24079	response, ok := out.RawResponse.(*smithyhttp.Response)
24080	if !ok {
24081		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24082	}
24083
24084	if response.StatusCode < 200 || response.StatusCode >= 300 {
24085		return out, metadata, awsRestjson1_deserializeOpErrorTagMeeting(response, &metadata)
24086	}
24087	output := &TagMeetingOutput{}
24088	out.Result = output
24089
24090	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
24091		return out, metadata, &smithy.DeserializationError{
24092			Err: fmt.Errorf("failed to discard response body, %w", err),
24093		}
24094	}
24095
24096	return out, metadata, err
24097}
24098
24099func awsRestjson1_deserializeOpErrorTagMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24100	var errorBuffer bytes.Buffer
24101	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24102		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24103	}
24104	errorBody := bytes.NewReader(errorBuffer.Bytes())
24105
24106	errorCode := "UnknownError"
24107	errorMessage := errorCode
24108
24109	code := response.Header.Get("X-Amzn-ErrorType")
24110	if len(code) != 0 {
24111		errorCode = restjson.SanitizeErrorCode(code)
24112	}
24113
24114	var buff [1024]byte
24115	ringBuffer := smithyio.NewRingBuffer(buff[:])
24116
24117	body := io.TeeReader(errorBody, ringBuffer)
24118	decoder := json.NewDecoder(body)
24119	decoder.UseNumber()
24120	code, message, err := restjson.GetErrorInfo(decoder)
24121	if err != nil {
24122		var snapshot bytes.Buffer
24123		io.Copy(&snapshot, ringBuffer)
24124		err = &smithy.DeserializationError{
24125			Err:      fmt.Errorf("failed to decode response body, %w", err),
24126			Snapshot: snapshot.Bytes(),
24127		}
24128		return err
24129	}
24130
24131	errorBody.Seek(0, io.SeekStart)
24132	if len(code) != 0 {
24133		errorCode = restjson.SanitizeErrorCode(code)
24134	}
24135	if len(message) != 0 {
24136		errorMessage = message
24137	}
24138
24139	switch {
24140	case strings.EqualFold("BadRequestException", errorCode):
24141		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24142
24143	case strings.EqualFold("ForbiddenException", errorCode):
24144		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24145
24146	case strings.EqualFold("NotFoundException", errorCode):
24147		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24148
24149	case strings.EqualFold("ResourceLimitExceededException", errorCode):
24150		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
24151
24152	case strings.EqualFold("ServiceFailureException", errorCode):
24153		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24154
24155	case strings.EqualFold("ServiceUnavailableException", errorCode):
24156		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24157
24158	case strings.EqualFold("ThrottledClientException", errorCode):
24159		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24160
24161	case strings.EqualFold("UnauthorizedClientException", errorCode):
24162		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24163
24164	default:
24165		genericError := &smithy.GenericAPIError{
24166			Code:    errorCode,
24167			Message: errorMessage,
24168		}
24169		return genericError
24170
24171	}
24172}
24173
24174type awsRestjson1_deserializeOpTagResource struct {
24175}
24176
24177func (*awsRestjson1_deserializeOpTagResource) ID() string {
24178	return "OperationDeserializer"
24179}
24180
24181func (m *awsRestjson1_deserializeOpTagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24182	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24183) {
24184	out, metadata, err = next.HandleDeserialize(ctx, in)
24185	if err != nil {
24186		return out, metadata, err
24187	}
24188
24189	response, ok := out.RawResponse.(*smithyhttp.Response)
24190	if !ok {
24191		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24192	}
24193
24194	if response.StatusCode < 200 || response.StatusCode >= 300 {
24195		return out, metadata, awsRestjson1_deserializeOpErrorTagResource(response, &metadata)
24196	}
24197	output := &TagResourceOutput{}
24198	out.Result = output
24199
24200	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
24201		return out, metadata, &smithy.DeserializationError{
24202			Err: fmt.Errorf("failed to discard response body, %w", err),
24203		}
24204	}
24205
24206	return out, metadata, err
24207}
24208
24209func awsRestjson1_deserializeOpErrorTagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24210	var errorBuffer bytes.Buffer
24211	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24212		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24213	}
24214	errorBody := bytes.NewReader(errorBuffer.Bytes())
24215
24216	errorCode := "UnknownError"
24217	errorMessage := errorCode
24218
24219	code := response.Header.Get("X-Amzn-ErrorType")
24220	if len(code) != 0 {
24221		errorCode = restjson.SanitizeErrorCode(code)
24222	}
24223
24224	var buff [1024]byte
24225	ringBuffer := smithyio.NewRingBuffer(buff[:])
24226
24227	body := io.TeeReader(errorBody, ringBuffer)
24228	decoder := json.NewDecoder(body)
24229	decoder.UseNumber()
24230	code, message, err := restjson.GetErrorInfo(decoder)
24231	if err != nil {
24232		var snapshot bytes.Buffer
24233		io.Copy(&snapshot, ringBuffer)
24234		err = &smithy.DeserializationError{
24235			Err:      fmt.Errorf("failed to decode response body, %w", err),
24236			Snapshot: snapshot.Bytes(),
24237		}
24238		return err
24239	}
24240
24241	errorBody.Seek(0, io.SeekStart)
24242	if len(code) != 0 {
24243		errorCode = restjson.SanitizeErrorCode(code)
24244	}
24245	if len(message) != 0 {
24246		errorMessage = message
24247	}
24248
24249	switch {
24250	case strings.EqualFold("BadRequestException", errorCode):
24251		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24252
24253	case strings.EqualFold("ForbiddenException", errorCode):
24254		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24255
24256	case strings.EqualFold("NotFoundException", errorCode):
24257		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24258
24259	case strings.EqualFold("ServiceFailureException", errorCode):
24260		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24261
24262	case strings.EqualFold("ServiceUnavailableException", errorCode):
24263		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24264
24265	case strings.EqualFold("UnauthorizedClientException", errorCode):
24266		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24267
24268	default:
24269		genericError := &smithy.GenericAPIError{
24270			Code:    errorCode,
24271			Message: errorMessage,
24272		}
24273		return genericError
24274
24275	}
24276}
24277
24278type awsRestjson1_deserializeOpUntagAttendee struct {
24279}
24280
24281func (*awsRestjson1_deserializeOpUntagAttendee) ID() string {
24282	return "OperationDeserializer"
24283}
24284
24285func (m *awsRestjson1_deserializeOpUntagAttendee) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24286	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24287) {
24288	out, metadata, err = next.HandleDeserialize(ctx, in)
24289	if err != nil {
24290		return out, metadata, err
24291	}
24292
24293	response, ok := out.RawResponse.(*smithyhttp.Response)
24294	if !ok {
24295		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24296	}
24297
24298	if response.StatusCode < 200 || response.StatusCode >= 300 {
24299		return out, metadata, awsRestjson1_deserializeOpErrorUntagAttendee(response, &metadata)
24300	}
24301	output := &UntagAttendeeOutput{}
24302	out.Result = output
24303
24304	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
24305		return out, metadata, &smithy.DeserializationError{
24306			Err: fmt.Errorf("failed to discard response body, %w", err),
24307		}
24308	}
24309
24310	return out, metadata, err
24311}
24312
24313func awsRestjson1_deserializeOpErrorUntagAttendee(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24314	var errorBuffer bytes.Buffer
24315	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24316		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24317	}
24318	errorBody := bytes.NewReader(errorBuffer.Bytes())
24319
24320	errorCode := "UnknownError"
24321	errorMessage := errorCode
24322
24323	code := response.Header.Get("X-Amzn-ErrorType")
24324	if len(code) != 0 {
24325		errorCode = restjson.SanitizeErrorCode(code)
24326	}
24327
24328	var buff [1024]byte
24329	ringBuffer := smithyio.NewRingBuffer(buff[:])
24330
24331	body := io.TeeReader(errorBody, ringBuffer)
24332	decoder := json.NewDecoder(body)
24333	decoder.UseNumber()
24334	code, message, err := restjson.GetErrorInfo(decoder)
24335	if err != nil {
24336		var snapshot bytes.Buffer
24337		io.Copy(&snapshot, ringBuffer)
24338		err = &smithy.DeserializationError{
24339			Err:      fmt.Errorf("failed to decode response body, %w", err),
24340			Snapshot: snapshot.Bytes(),
24341		}
24342		return err
24343	}
24344
24345	errorBody.Seek(0, io.SeekStart)
24346	if len(code) != 0 {
24347		errorCode = restjson.SanitizeErrorCode(code)
24348	}
24349	if len(message) != 0 {
24350		errorMessage = message
24351	}
24352
24353	switch {
24354	case strings.EqualFold("BadRequestException", errorCode):
24355		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24356
24357	case strings.EqualFold("ForbiddenException", errorCode):
24358		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24359
24360	case strings.EqualFold("NotFoundException", errorCode):
24361		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24362
24363	case strings.EqualFold("ServiceFailureException", errorCode):
24364		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24365
24366	case strings.EqualFold("ServiceUnavailableException", errorCode):
24367		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24368
24369	case strings.EqualFold("ThrottledClientException", errorCode):
24370		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24371
24372	case strings.EqualFold("UnauthorizedClientException", errorCode):
24373		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24374
24375	default:
24376		genericError := &smithy.GenericAPIError{
24377			Code:    errorCode,
24378			Message: errorMessage,
24379		}
24380		return genericError
24381
24382	}
24383}
24384
24385type awsRestjson1_deserializeOpUntagMeeting struct {
24386}
24387
24388func (*awsRestjson1_deserializeOpUntagMeeting) ID() string {
24389	return "OperationDeserializer"
24390}
24391
24392func (m *awsRestjson1_deserializeOpUntagMeeting) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24393	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24394) {
24395	out, metadata, err = next.HandleDeserialize(ctx, in)
24396	if err != nil {
24397		return out, metadata, err
24398	}
24399
24400	response, ok := out.RawResponse.(*smithyhttp.Response)
24401	if !ok {
24402		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24403	}
24404
24405	if response.StatusCode < 200 || response.StatusCode >= 300 {
24406		return out, metadata, awsRestjson1_deserializeOpErrorUntagMeeting(response, &metadata)
24407	}
24408	output := &UntagMeetingOutput{}
24409	out.Result = output
24410
24411	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
24412		return out, metadata, &smithy.DeserializationError{
24413			Err: fmt.Errorf("failed to discard response body, %w", err),
24414		}
24415	}
24416
24417	return out, metadata, err
24418}
24419
24420func awsRestjson1_deserializeOpErrorUntagMeeting(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24421	var errorBuffer bytes.Buffer
24422	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24423		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24424	}
24425	errorBody := bytes.NewReader(errorBuffer.Bytes())
24426
24427	errorCode := "UnknownError"
24428	errorMessage := errorCode
24429
24430	code := response.Header.Get("X-Amzn-ErrorType")
24431	if len(code) != 0 {
24432		errorCode = restjson.SanitizeErrorCode(code)
24433	}
24434
24435	var buff [1024]byte
24436	ringBuffer := smithyio.NewRingBuffer(buff[:])
24437
24438	body := io.TeeReader(errorBody, ringBuffer)
24439	decoder := json.NewDecoder(body)
24440	decoder.UseNumber()
24441	code, message, err := restjson.GetErrorInfo(decoder)
24442	if err != nil {
24443		var snapshot bytes.Buffer
24444		io.Copy(&snapshot, ringBuffer)
24445		err = &smithy.DeserializationError{
24446			Err:      fmt.Errorf("failed to decode response body, %w", err),
24447			Snapshot: snapshot.Bytes(),
24448		}
24449		return err
24450	}
24451
24452	errorBody.Seek(0, io.SeekStart)
24453	if len(code) != 0 {
24454		errorCode = restjson.SanitizeErrorCode(code)
24455	}
24456	if len(message) != 0 {
24457		errorMessage = message
24458	}
24459
24460	switch {
24461	case strings.EqualFold("BadRequestException", errorCode):
24462		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24463
24464	case strings.EqualFold("ForbiddenException", errorCode):
24465		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24466
24467	case strings.EqualFold("NotFoundException", errorCode):
24468		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24469
24470	case strings.EqualFold("ServiceFailureException", errorCode):
24471		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24472
24473	case strings.EqualFold("ServiceUnavailableException", errorCode):
24474		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24475
24476	case strings.EqualFold("ThrottledClientException", errorCode):
24477		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24478
24479	case strings.EqualFold("UnauthorizedClientException", errorCode):
24480		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24481
24482	default:
24483		genericError := &smithy.GenericAPIError{
24484			Code:    errorCode,
24485			Message: errorMessage,
24486		}
24487		return genericError
24488
24489	}
24490}
24491
24492type awsRestjson1_deserializeOpUntagResource struct {
24493}
24494
24495func (*awsRestjson1_deserializeOpUntagResource) ID() string {
24496	return "OperationDeserializer"
24497}
24498
24499func (m *awsRestjson1_deserializeOpUntagResource) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24500	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24501) {
24502	out, metadata, err = next.HandleDeserialize(ctx, in)
24503	if err != nil {
24504		return out, metadata, err
24505	}
24506
24507	response, ok := out.RawResponse.(*smithyhttp.Response)
24508	if !ok {
24509		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24510	}
24511
24512	if response.StatusCode < 200 || response.StatusCode >= 300 {
24513		return out, metadata, awsRestjson1_deserializeOpErrorUntagResource(response, &metadata)
24514	}
24515	output := &UntagResourceOutput{}
24516	out.Result = output
24517
24518	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
24519		return out, metadata, &smithy.DeserializationError{
24520			Err: fmt.Errorf("failed to discard response body, %w", err),
24521		}
24522	}
24523
24524	return out, metadata, err
24525}
24526
24527func awsRestjson1_deserializeOpErrorUntagResource(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24528	var errorBuffer bytes.Buffer
24529	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24530		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24531	}
24532	errorBody := bytes.NewReader(errorBuffer.Bytes())
24533
24534	errorCode := "UnknownError"
24535	errorMessage := errorCode
24536
24537	code := response.Header.Get("X-Amzn-ErrorType")
24538	if len(code) != 0 {
24539		errorCode = restjson.SanitizeErrorCode(code)
24540	}
24541
24542	var buff [1024]byte
24543	ringBuffer := smithyio.NewRingBuffer(buff[:])
24544
24545	body := io.TeeReader(errorBody, ringBuffer)
24546	decoder := json.NewDecoder(body)
24547	decoder.UseNumber()
24548	code, message, err := restjson.GetErrorInfo(decoder)
24549	if err != nil {
24550		var snapshot bytes.Buffer
24551		io.Copy(&snapshot, ringBuffer)
24552		err = &smithy.DeserializationError{
24553			Err:      fmt.Errorf("failed to decode response body, %w", err),
24554			Snapshot: snapshot.Bytes(),
24555		}
24556		return err
24557	}
24558
24559	errorBody.Seek(0, io.SeekStart)
24560	if len(code) != 0 {
24561		errorCode = restjson.SanitizeErrorCode(code)
24562	}
24563	if len(message) != 0 {
24564		errorMessage = message
24565	}
24566
24567	switch {
24568	case strings.EqualFold("BadRequestException", errorCode):
24569		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24570
24571	case strings.EqualFold("ForbiddenException", errorCode):
24572		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24573
24574	case strings.EqualFold("NotFoundException", errorCode):
24575		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24576
24577	case strings.EqualFold("ServiceFailureException", errorCode):
24578		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24579
24580	case strings.EqualFold("ServiceUnavailableException", errorCode):
24581		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24582
24583	case strings.EqualFold("UnauthorizedClientException", errorCode):
24584		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24585
24586	default:
24587		genericError := &smithy.GenericAPIError{
24588			Code:    errorCode,
24589			Message: errorMessage,
24590		}
24591		return genericError
24592
24593	}
24594}
24595
24596type awsRestjson1_deserializeOpUpdateAccount struct {
24597}
24598
24599func (*awsRestjson1_deserializeOpUpdateAccount) ID() string {
24600	return "OperationDeserializer"
24601}
24602
24603func (m *awsRestjson1_deserializeOpUpdateAccount) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24604	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24605) {
24606	out, metadata, err = next.HandleDeserialize(ctx, in)
24607	if err != nil {
24608		return out, metadata, err
24609	}
24610
24611	response, ok := out.RawResponse.(*smithyhttp.Response)
24612	if !ok {
24613		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24614	}
24615
24616	if response.StatusCode < 200 || response.StatusCode >= 300 {
24617		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccount(response, &metadata)
24618	}
24619	output := &UpdateAccountOutput{}
24620	out.Result = output
24621
24622	var buff [1024]byte
24623	ringBuffer := smithyio.NewRingBuffer(buff[:])
24624
24625	body := io.TeeReader(response.Body, ringBuffer)
24626
24627	decoder := json.NewDecoder(body)
24628	decoder.UseNumber()
24629	var shape interface{}
24630	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24631		var snapshot bytes.Buffer
24632		io.Copy(&snapshot, ringBuffer)
24633		err = &smithy.DeserializationError{
24634			Err:      fmt.Errorf("failed to decode response body, %w", err),
24635			Snapshot: snapshot.Bytes(),
24636		}
24637		return out, metadata, err
24638	}
24639
24640	err = awsRestjson1_deserializeOpDocumentUpdateAccountOutput(&output, shape)
24641	if err != nil {
24642		var snapshot bytes.Buffer
24643		io.Copy(&snapshot, ringBuffer)
24644		return out, metadata, &smithy.DeserializationError{
24645			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24646			Snapshot: snapshot.Bytes(),
24647		}
24648	}
24649
24650	return out, metadata, err
24651}
24652
24653func awsRestjson1_deserializeOpErrorUpdateAccount(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24654	var errorBuffer bytes.Buffer
24655	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24656		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24657	}
24658	errorBody := bytes.NewReader(errorBuffer.Bytes())
24659
24660	errorCode := "UnknownError"
24661	errorMessage := errorCode
24662
24663	code := response.Header.Get("X-Amzn-ErrorType")
24664	if len(code) != 0 {
24665		errorCode = restjson.SanitizeErrorCode(code)
24666	}
24667
24668	var buff [1024]byte
24669	ringBuffer := smithyio.NewRingBuffer(buff[:])
24670
24671	body := io.TeeReader(errorBody, ringBuffer)
24672	decoder := json.NewDecoder(body)
24673	decoder.UseNumber()
24674	code, message, err := restjson.GetErrorInfo(decoder)
24675	if err != nil {
24676		var snapshot bytes.Buffer
24677		io.Copy(&snapshot, ringBuffer)
24678		err = &smithy.DeserializationError{
24679			Err:      fmt.Errorf("failed to decode response body, %w", err),
24680			Snapshot: snapshot.Bytes(),
24681		}
24682		return err
24683	}
24684
24685	errorBody.Seek(0, io.SeekStart)
24686	if len(code) != 0 {
24687		errorCode = restjson.SanitizeErrorCode(code)
24688	}
24689	if len(message) != 0 {
24690		errorMessage = message
24691	}
24692
24693	switch {
24694	case strings.EqualFold("BadRequestException", errorCode):
24695		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24696
24697	case strings.EqualFold("ForbiddenException", errorCode):
24698		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24699
24700	case strings.EqualFold("NotFoundException", errorCode):
24701		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24702
24703	case strings.EqualFold("ServiceFailureException", errorCode):
24704		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24705
24706	case strings.EqualFold("ServiceUnavailableException", errorCode):
24707		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24708
24709	case strings.EqualFold("ThrottledClientException", errorCode):
24710		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24711
24712	case strings.EqualFold("UnauthorizedClientException", errorCode):
24713		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24714
24715	default:
24716		genericError := &smithy.GenericAPIError{
24717			Code:    errorCode,
24718			Message: errorMessage,
24719		}
24720		return genericError
24721
24722	}
24723}
24724
24725func awsRestjson1_deserializeOpDocumentUpdateAccountOutput(v **UpdateAccountOutput, value interface{}) error {
24726	if v == nil {
24727		return fmt.Errorf("unexpected nil of type %T", v)
24728	}
24729	if value == nil {
24730		return nil
24731	}
24732
24733	shape, ok := value.(map[string]interface{})
24734	if !ok {
24735		return fmt.Errorf("unexpected JSON type %v", value)
24736	}
24737
24738	var sv *UpdateAccountOutput
24739	if *v == nil {
24740		sv = &UpdateAccountOutput{}
24741	} else {
24742		sv = *v
24743	}
24744
24745	for key, value := range shape {
24746		switch key {
24747		case "Account":
24748			if err := awsRestjson1_deserializeDocumentAccount(&sv.Account, value); err != nil {
24749				return err
24750			}
24751
24752		default:
24753			_, _ = key, value
24754
24755		}
24756	}
24757	*v = sv
24758	return nil
24759}
24760
24761type awsRestjson1_deserializeOpUpdateAccountSettings struct {
24762}
24763
24764func (*awsRestjson1_deserializeOpUpdateAccountSettings) ID() string {
24765	return "OperationDeserializer"
24766}
24767
24768func (m *awsRestjson1_deserializeOpUpdateAccountSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24769	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24770) {
24771	out, metadata, err = next.HandleDeserialize(ctx, in)
24772	if err != nil {
24773		return out, metadata, err
24774	}
24775
24776	response, ok := out.RawResponse.(*smithyhttp.Response)
24777	if !ok {
24778		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24779	}
24780
24781	if response.StatusCode < 200 || response.StatusCode >= 300 {
24782		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAccountSettings(response, &metadata)
24783	}
24784	output := &UpdateAccountSettingsOutput{}
24785	out.Result = output
24786
24787	return out, metadata, err
24788}
24789
24790func awsRestjson1_deserializeOpErrorUpdateAccountSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24791	var errorBuffer bytes.Buffer
24792	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24793		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24794	}
24795	errorBody := bytes.NewReader(errorBuffer.Bytes())
24796
24797	errorCode := "UnknownError"
24798	errorMessage := errorCode
24799
24800	code := response.Header.Get("X-Amzn-ErrorType")
24801	if len(code) != 0 {
24802		errorCode = restjson.SanitizeErrorCode(code)
24803	}
24804
24805	var buff [1024]byte
24806	ringBuffer := smithyio.NewRingBuffer(buff[:])
24807
24808	body := io.TeeReader(errorBody, ringBuffer)
24809	decoder := json.NewDecoder(body)
24810	decoder.UseNumber()
24811	code, message, err := restjson.GetErrorInfo(decoder)
24812	if err != nil {
24813		var snapshot bytes.Buffer
24814		io.Copy(&snapshot, ringBuffer)
24815		err = &smithy.DeserializationError{
24816			Err:      fmt.Errorf("failed to decode response body, %w", err),
24817			Snapshot: snapshot.Bytes(),
24818		}
24819		return err
24820	}
24821
24822	errorBody.Seek(0, io.SeekStart)
24823	if len(code) != 0 {
24824		errorCode = restjson.SanitizeErrorCode(code)
24825	}
24826	if len(message) != 0 {
24827		errorMessage = message
24828	}
24829
24830	switch {
24831	case strings.EqualFold("BadRequestException", errorCode):
24832		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24833
24834	case strings.EqualFold("ConflictException", errorCode):
24835		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
24836
24837	case strings.EqualFold("ForbiddenException", errorCode):
24838		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24839
24840	case strings.EqualFold("NotFoundException", errorCode):
24841		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
24842
24843	case strings.EqualFold("ServiceFailureException", errorCode):
24844		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24845
24846	case strings.EqualFold("ServiceUnavailableException", errorCode):
24847		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24848
24849	case strings.EqualFold("ThrottledClientException", errorCode):
24850		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24851
24852	case strings.EqualFold("UnauthorizedClientException", errorCode):
24853		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24854
24855	default:
24856		genericError := &smithy.GenericAPIError{
24857			Code:    errorCode,
24858			Message: errorMessage,
24859		}
24860		return genericError
24861
24862	}
24863}
24864
24865type awsRestjson1_deserializeOpUpdateAppInstance struct {
24866}
24867
24868func (*awsRestjson1_deserializeOpUpdateAppInstance) ID() string {
24869	return "OperationDeserializer"
24870}
24871
24872func (m *awsRestjson1_deserializeOpUpdateAppInstance) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
24873	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
24874) {
24875	out, metadata, err = next.HandleDeserialize(ctx, in)
24876	if err != nil {
24877		return out, metadata, err
24878	}
24879
24880	response, ok := out.RawResponse.(*smithyhttp.Response)
24881	if !ok {
24882		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
24883	}
24884
24885	if response.StatusCode < 200 || response.StatusCode >= 300 {
24886		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAppInstance(response, &metadata)
24887	}
24888	output := &UpdateAppInstanceOutput{}
24889	out.Result = output
24890
24891	var buff [1024]byte
24892	ringBuffer := smithyio.NewRingBuffer(buff[:])
24893
24894	body := io.TeeReader(response.Body, ringBuffer)
24895
24896	decoder := json.NewDecoder(body)
24897	decoder.UseNumber()
24898	var shape interface{}
24899	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
24900		var snapshot bytes.Buffer
24901		io.Copy(&snapshot, ringBuffer)
24902		err = &smithy.DeserializationError{
24903			Err:      fmt.Errorf("failed to decode response body, %w", err),
24904			Snapshot: snapshot.Bytes(),
24905		}
24906		return out, metadata, err
24907	}
24908
24909	err = awsRestjson1_deserializeOpDocumentUpdateAppInstanceOutput(&output, shape)
24910	if err != nil {
24911		var snapshot bytes.Buffer
24912		io.Copy(&snapshot, ringBuffer)
24913		return out, metadata, &smithy.DeserializationError{
24914			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
24915			Snapshot: snapshot.Bytes(),
24916		}
24917	}
24918
24919	return out, metadata, err
24920}
24921
24922func awsRestjson1_deserializeOpErrorUpdateAppInstance(response *smithyhttp.Response, metadata *middleware.Metadata) error {
24923	var errorBuffer bytes.Buffer
24924	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
24925		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
24926	}
24927	errorBody := bytes.NewReader(errorBuffer.Bytes())
24928
24929	errorCode := "UnknownError"
24930	errorMessage := errorCode
24931
24932	code := response.Header.Get("X-Amzn-ErrorType")
24933	if len(code) != 0 {
24934		errorCode = restjson.SanitizeErrorCode(code)
24935	}
24936
24937	var buff [1024]byte
24938	ringBuffer := smithyio.NewRingBuffer(buff[:])
24939
24940	body := io.TeeReader(errorBody, ringBuffer)
24941	decoder := json.NewDecoder(body)
24942	decoder.UseNumber()
24943	code, message, err := restjson.GetErrorInfo(decoder)
24944	if err != nil {
24945		var snapshot bytes.Buffer
24946		io.Copy(&snapshot, ringBuffer)
24947		err = &smithy.DeserializationError{
24948			Err:      fmt.Errorf("failed to decode response body, %w", err),
24949			Snapshot: snapshot.Bytes(),
24950		}
24951		return err
24952	}
24953
24954	errorBody.Seek(0, io.SeekStart)
24955	if len(code) != 0 {
24956		errorCode = restjson.SanitizeErrorCode(code)
24957	}
24958	if len(message) != 0 {
24959		errorMessage = message
24960	}
24961
24962	switch {
24963	case strings.EqualFold("BadRequestException", errorCode):
24964		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
24965
24966	case strings.EqualFold("ConflictException", errorCode):
24967		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
24968
24969	case strings.EqualFold("ForbiddenException", errorCode):
24970		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
24971
24972	case strings.EqualFold("ServiceFailureException", errorCode):
24973		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
24974
24975	case strings.EqualFold("ServiceUnavailableException", errorCode):
24976		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
24977
24978	case strings.EqualFold("ThrottledClientException", errorCode):
24979		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
24980
24981	case strings.EqualFold("UnauthorizedClientException", errorCode):
24982		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
24983
24984	default:
24985		genericError := &smithy.GenericAPIError{
24986			Code:    errorCode,
24987			Message: errorMessage,
24988		}
24989		return genericError
24990
24991	}
24992}
24993
24994func awsRestjson1_deserializeOpDocumentUpdateAppInstanceOutput(v **UpdateAppInstanceOutput, value interface{}) error {
24995	if v == nil {
24996		return fmt.Errorf("unexpected nil of type %T", v)
24997	}
24998	if value == nil {
24999		return nil
25000	}
25001
25002	shape, ok := value.(map[string]interface{})
25003	if !ok {
25004		return fmt.Errorf("unexpected JSON type %v", value)
25005	}
25006
25007	var sv *UpdateAppInstanceOutput
25008	if *v == nil {
25009		sv = &UpdateAppInstanceOutput{}
25010	} else {
25011		sv = *v
25012	}
25013
25014	for key, value := range shape {
25015		switch key {
25016		case "AppInstanceArn":
25017			if value != nil {
25018				jtv, ok := value.(string)
25019				if !ok {
25020					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
25021				}
25022				sv.AppInstanceArn = ptr.String(jtv)
25023			}
25024
25025		default:
25026			_, _ = key, value
25027
25028		}
25029	}
25030	*v = sv
25031	return nil
25032}
25033
25034type awsRestjson1_deserializeOpUpdateAppInstanceUser struct {
25035}
25036
25037func (*awsRestjson1_deserializeOpUpdateAppInstanceUser) ID() string {
25038	return "OperationDeserializer"
25039}
25040
25041func (m *awsRestjson1_deserializeOpUpdateAppInstanceUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25042	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25043) {
25044	out, metadata, err = next.HandleDeserialize(ctx, in)
25045	if err != nil {
25046		return out, metadata, err
25047	}
25048
25049	response, ok := out.RawResponse.(*smithyhttp.Response)
25050	if !ok {
25051		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25052	}
25053
25054	if response.StatusCode < 200 || response.StatusCode >= 300 {
25055		return out, metadata, awsRestjson1_deserializeOpErrorUpdateAppInstanceUser(response, &metadata)
25056	}
25057	output := &UpdateAppInstanceUserOutput{}
25058	out.Result = output
25059
25060	var buff [1024]byte
25061	ringBuffer := smithyio.NewRingBuffer(buff[:])
25062
25063	body := io.TeeReader(response.Body, ringBuffer)
25064
25065	decoder := json.NewDecoder(body)
25066	decoder.UseNumber()
25067	var shape interface{}
25068	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
25069		var snapshot bytes.Buffer
25070		io.Copy(&snapshot, ringBuffer)
25071		err = &smithy.DeserializationError{
25072			Err:      fmt.Errorf("failed to decode response body, %w", err),
25073			Snapshot: snapshot.Bytes(),
25074		}
25075		return out, metadata, err
25076	}
25077
25078	err = awsRestjson1_deserializeOpDocumentUpdateAppInstanceUserOutput(&output, shape)
25079	if err != nil {
25080		var snapshot bytes.Buffer
25081		io.Copy(&snapshot, ringBuffer)
25082		return out, metadata, &smithy.DeserializationError{
25083			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
25084			Snapshot: snapshot.Bytes(),
25085		}
25086	}
25087
25088	return out, metadata, err
25089}
25090
25091func awsRestjson1_deserializeOpErrorUpdateAppInstanceUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25092	var errorBuffer bytes.Buffer
25093	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25094		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25095	}
25096	errorBody := bytes.NewReader(errorBuffer.Bytes())
25097
25098	errorCode := "UnknownError"
25099	errorMessage := errorCode
25100
25101	code := response.Header.Get("X-Amzn-ErrorType")
25102	if len(code) != 0 {
25103		errorCode = restjson.SanitizeErrorCode(code)
25104	}
25105
25106	var buff [1024]byte
25107	ringBuffer := smithyio.NewRingBuffer(buff[:])
25108
25109	body := io.TeeReader(errorBody, ringBuffer)
25110	decoder := json.NewDecoder(body)
25111	decoder.UseNumber()
25112	code, message, err := restjson.GetErrorInfo(decoder)
25113	if err != nil {
25114		var snapshot bytes.Buffer
25115		io.Copy(&snapshot, ringBuffer)
25116		err = &smithy.DeserializationError{
25117			Err:      fmt.Errorf("failed to decode response body, %w", err),
25118			Snapshot: snapshot.Bytes(),
25119		}
25120		return err
25121	}
25122
25123	errorBody.Seek(0, io.SeekStart)
25124	if len(code) != 0 {
25125		errorCode = restjson.SanitizeErrorCode(code)
25126	}
25127	if len(message) != 0 {
25128		errorMessage = message
25129	}
25130
25131	switch {
25132	case strings.EqualFold("BadRequestException", errorCode):
25133		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25134
25135	case strings.EqualFold("ConflictException", errorCode):
25136		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
25137
25138	case strings.EqualFold("ForbiddenException", errorCode):
25139		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25140
25141	case strings.EqualFold("ServiceFailureException", errorCode):
25142		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25143
25144	case strings.EqualFold("ServiceUnavailableException", errorCode):
25145		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25146
25147	case strings.EqualFold("ThrottledClientException", errorCode):
25148		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25149
25150	case strings.EqualFold("UnauthorizedClientException", errorCode):
25151		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25152
25153	default:
25154		genericError := &smithy.GenericAPIError{
25155			Code:    errorCode,
25156			Message: errorMessage,
25157		}
25158		return genericError
25159
25160	}
25161}
25162
25163func awsRestjson1_deserializeOpDocumentUpdateAppInstanceUserOutput(v **UpdateAppInstanceUserOutput, value interface{}) error {
25164	if v == nil {
25165		return fmt.Errorf("unexpected nil of type %T", v)
25166	}
25167	if value == nil {
25168		return nil
25169	}
25170
25171	shape, ok := value.(map[string]interface{})
25172	if !ok {
25173		return fmt.Errorf("unexpected JSON type %v", value)
25174	}
25175
25176	var sv *UpdateAppInstanceUserOutput
25177	if *v == nil {
25178		sv = &UpdateAppInstanceUserOutput{}
25179	} else {
25180		sv = *v
25181	}
25182
25183	for key, value := range shape {
25184		switch key {
25185		case "AppInstanceUserArn":
25186			if value != nil {
25187				jtv, ok := value.(string)
25188				if !ok {
25189					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
25190				}
25191				sv.AppInstanceUserArn = ptr.String(jtv)
25192			}
25193
25194		default:
25195			_, _ = key, value
25196
25197		}
25198	}
25199	*v = sv
25200	return nil
25201}
25202
25203type awsRestjson1_deserializeOpUpdateBot struct {
25204}
25205
25206func (*awsRestjson1_deserializeOpUpdateBot) ID() string {
25207	return "OperationDeserializer"
25208}
25209
25210func (m *awsRestjson1_deserializeOpUpdateBot) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25211	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25212) {
25213	out, metadata, err = next.HandleDeserialize(ctx, in)
25214	if err != nil {
25215		return out, metadata, err
25216	}
25217
25218	response, ok := out.RawResponse.(*smithyhttp.Response)
25219	if !ok {
25220		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25221	}
25222
25223	if response.StatusCode < 200 || response.StatusCode >= 300 {
25224		return out, metadata, awsRestjson1_deserializeOpErrorUpdateBot(response, &metadata)
25225	}
25226	output := &UpdateBotOutput{}
25227	out.Result = output
25228
25229	var buff [1024]byte
25230	ringBuffer := smithyio.NewRingBuffer(buff[:])
25231
25232	body := io.TeeReader(response.Body, ringBuffer)
25233
25234	decoder := json.NewDecoder(body)
25235	decoder.UseNumber()
25236	var shape interface{}
25237	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
25238		var snapshot bytes.Buffer
25239		io.Copy(&snapshot, ringBuffer)
25240		err = &smithy.DeserializationError{
25241			Err:      fmt.Errorf("failed to decode response body, %w", err),
25242			Snapshot: snapshot.Bytes(),
25243		}
25244		return out, metadata, err
25245	}
25246
25247	err = awsRestjson1_deserializeOpDocumentUpdateBotOutput(&output, shape)
25248	if err != nil {
25249		var snapshot bytes.Buffer
25250		io.Copy(&snapshot, ringBuffer)
25251		return out, metadata, &smithy.DeserializationError{
25252			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
25253			Snapshot: snapshot.Bytes(),
25254		}
25255	}
25256
25257	return out, metadata, err
25258}
25259
25260func awsRestjson1_deserializeOpErrorUpdateBot(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25261	var errorBuffer bytes.Buffer
25262	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25263		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25264	}
25265	errorBody := bytes.NewReader(errorBuffer.Bytes())
25266
25267	errorCode := "UnknownError"
25268	errorMessage := errorCode
25269
25270	code := response.Header.Get("X-Amzn-ErrorType")
25271	if len(code) != 0 {
25272		errorCode = restjson.SanitizeErrorCode(code)
25273	}
25274
25275	var buff [1024]byte
25276	ringBuffer := smithyio.NewRingBuffer(buff[:])
25277
25278	body := io.TeeReader(errorBody, ringBuffer)
25279	decoder := json.NewDecoder(body)
25280	decoder.UseNumber()
25281	code, message, err := restjson.GetErrorInfo(decoder)
25282	if err != nil {
25283		var snapshot bytes.Buffer
25284		io.Copy(&snapshot, ringBuffer)
25285		err = &smithy.DeserializationError{
25286			Err:      fmt.Errorf("failed to decode response body, %w", err),
25287			Snapshot: snapshot.Bytes(),
25288		}
25289		return err
25290	}
25291
25292	errorBody.Seek(0, io.SeekStart)
25293	if len(code) != 0 {
25294		errorCode = restjson.SanitizeErrorCode(code)
25295	}
25296	if len(message) != 0 {
25297		errorMessage = message
25298	}
25299
25300	switch {
25301	case strings.EqualFold("BadRequestException", errorCode):
25302		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25303
25304	case strings.EqualFold("ForbiddenException", errorCode):
25305		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25306
25307	case strings.EqualFold("NotFoundException", errorCode):
25308		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
25309
25310	case strings.EqualFold("ServiceFailureException", errorCode):
25311		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25312
25313	case strings.EqualFold("ServiceUnavailableException", errorCode):
25314		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25315
25316	case strings.EqualFold("ThrottledClientException", errorCode):
25317		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25318
25319	case strings.EqualFold("UnauthorizedClientException", errorCode):
25320		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25321
25322	default:
25323		genericError := &smithy.GenericAPIError{
25324			Code:    errorCode,
25325			Message: errorMessage,
25326		}
25327		return genericError
25328
25329	}
25330}
25331
25332func awsRestjson1_deserializeOpDocumentUpdateBotOutput(v **UpdateBotOutput, value interface{}) error {
25333	if v == nil {
25334		return fmt.Errorf("unexpected nil of type %T", v)
25335	}
25336	if value == nil {
25337		return nil
25338	}
25339
25340	shape, ok := value.(map[string]interface{})
25341	if !ok {
25342		return fmt.Errorf("unexpected JSON type %v", value)
25343	}
25344
25345	var sv *UpdateBotOutput
25346	if *v == nil {
25347		sv = &UpdateBotOutput{}
25348	} else {
25349		sv = *v
25350	}
25351
25352	for key, value := range shape {
25353		switch key {
25354		case "Bot":
25355			if err := awsRestjson1_deserializeDocumentBot(&sv.Bot, value); err != nil {
25356				return err
25357			}
25358
25359		default:
25360			_, _ = key, value
25361
25362		}
25363	}
25364	*v = sv
25365	return nil
25366}
25367
25368type awsRestjson1_deserializeOpUpdateChannel struct {
25369}
25370
25371func (*awsRestjson1_deserializeOpUpdateChannel) ID() string {
25372	return "OperationDeserializer"
25373}
25374
25375func (m *awsRestjson1_deserializeOpUpdateChannel) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25376	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25377) {
25378	out, metadata, err = next.HandleDeserialize(ctx, in)
25379	if err != nil {
25380		return out, metadata, err
25381	}
25382
25383	response, ok := out.RawResponse.(*smithyhttp.Response)
25384	if !ok {
25385		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25386	}
25387
25388	if response.StatusCode < 200 || response.StatusCode >= 300 {
25389		return out, metadata, awsRestjson1_deserializeOpErrorUpdateChannel(response, &metadata)
25390	}
25391	output := &UpdateChannelOutput{}
25392	out.Result = output
25393
25394	var buff [1024]byte
25395	ringBuffer := smithyio.NewRingBuffer(buff[:])
25396
25397	body := io.TeeReader(response.Body, ringBuffer)
25398
25399	decoder := json.NewDecoder(body)
25400	decoder.UseNumber()
25401	var shape interface{}
25402	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
25403		var snapshot bytes.Buffer
25404		io.Copy(&snapshot, ringBuffer)
25405		err = &smithy.DeserializationError{
25406			Err:      fmt.Errorf("failed to decode response body, %w", err),
25407			Snapshot: snapshot.Bytes(),
25408		}
25409		return out, metadata, err
25410	}
25411
25412	err = awsRestjson1_deserializeOpDocumentUpdateChannelOutput(&output, shape)
25413	if err != nil {
25414		var snapshot bytes.Buffer
25415		io.Copy(&snapshot, ringBuffer)
25416		return out, metadata, &smithy.DeserializationError{
25417			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
25418			Snapshot: snapshot.Bytes(),
25419		}
25420	}
25421
25422	return out, metadata, err
25423}
25424
25425func awsRestjson1_deserializeOpErrorUpdateChannel(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25426	var errorBuffer bytes.Buffer
25427	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25428		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25429	}
25430	errorBody := bytes.NewReader(errorBuffer.Bytes())
25431
25432	errorCode := "UnknownError"
25433	errorMessage := errorCode
25434
25435	code := response.Header.Get("X-Amzn-ErrorType")
25436	if len(code) != 0 {
25437		errorCode = restjson.SanitizeErrorCode(code)
25438	}
25439
25440	var buff [1024]byte
25441	ringBuffer := smithyio.NewRingBuffer(buff[:])
25442
25443	body := io.TeeReader(errorBody, ringBuffer)
25444	decoder := json.NewDecoder(body)
25445	decoder.UseNumber()
25446	code, message, err := restjson.GetErrorInfo(decoder)
25447	if err != nil {
25448		var snapshot bytes.Buffer
25449		io.Copy(&snapshot, ringBuffer)
25450		err = &smithy.DeserializationError{
25451			Err:      fmt.Errorf("failed to decode response body, %w", err),
25452			Snapshot: snapshot.Bytes(),
25453		}
25454		return err
25455	}
25456
25457	errorBody.Seek(0, io.SeekStart)
25458	if len(code) != 0 {
25459		errorCode = restjson.SanitizeErrorCode(code)
25460	}
25461	if len(message) != 0 {
25462		errorMessage = message
25463	}
25464
25465	switch {
25466	case strings.EqualFold("BadRequestException", errorCode):
25467		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25468
25469	case strings.EqualFold("ConflictException", errorCode):
25470		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
25471
25472	case strings.EqualFold("ForbiddenException", errorCode):
25473		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25474
25475	case strings.EqualFold("ServiceFailureException", errorCode):
25476		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25477
25478	case strings.EqualFold("ServiceUnavailableException", errorCode):
25479		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25480
25481	case strings.EqualFold("ThrottledClientException", errorCode):
25482		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25483
25484	case strings.EqualFold("UnauthorizedClientException", errorCode):
25485		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25486
25487	default:
25488		genericError := &smithy.GenericAPIError{
25489			Code:    errorCode,
25490			Message: errorMessage,
25491		}
25492		return genericError
25493
25494	}
25495}
25496
25497func awsRestjson1_deserializeOpDocumentUpdateChannelOutput(v **UpdateChannelOutput, value interface{}) error {
25498	if v == nil {
25499		return fmt.Errorf("unexpected nil of type %T", v)
25500	}
25501	if value == nil {
25502		return nil
25503	}
25504
25505	shape, ok := value.(map[string]interface{})
25506	if !ok {
25507		return fmt.Errorf("unexpected JSON type %v", value)
25508	}
25509
25510	var sv *UpdateChannelOutput
25511	if *v == nil {
25512		sv = &UpdateChannelOutput{}
25513	} else {
25514		sv = *v
25515	}
25516
25517	for key, value := range shape {
25518		switch key {
25519		case "ChannelArn":
25520			if value != nil {
25521				jtv, ok := value.(string)
25522				if !ok {
25523					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
25524				}
25525				sv.ChannelArn = ptr.String(jtv)
25526			}
25527
25528		default:
25529			_, _ = key, value
25530
25531		}
25532	}
25533	*v = sv
25534	return nil
25535}
25536
25537type awsRestjson1_deserializeOpUpdateChannelMessage struct {
25538}
25539
25540func (*awsRestjson1_deserializeOpUpdateChannelMessage) ID() string {
25541	return "OperationDeserializer"
25542}
25543
25544func (m *awsRestjson1_deserializeOpUpdateChannelMessage) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25545	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25546) {
25547	out, metadata, err = next.HandleDeserialize(ctx, in)
25548	if err != nil {
25549		return out, metadata, err
25550	}
25551
25552	response, ok := out.RawResponse.(*smithyhttp.Response)
25553	if !ok {
25554		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25555	}
25556
25557	if response.StatusCode < 200 || response.StatusCode >= 300 {
25558		return out, metadata, awsRestjson1_deserializeOpErrorUpdateChannelMessage(response, &metadata)
25559	}
25560	output := &UpdateChannelMessageOutput{}
25561	out.Result = output
25562
25563	var buff [1024]byte
25564	ringBuffer := smithyio.NewRingBuffer(buff[:])
25565
25566	body := io.TeeReader(response.Body, ringBuffer)
25567
25568	decoder := json.NewDecoder(body)
25569	decoder.UseNumber()
25570	var shape interface{}
25571	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
25572		var snapshot bytes.Buffer
25573		io.Copy(&snapshot, ringBuffer)
25574		err = &smithy.DeserializationError{
25575			Err:      fmt.Errorf("failed to decode response body, %w", err),
25576			Snapshot: snapshot.Bytes(),
25577		}
25578		return out, metadata, err
25579	}
25580
25581	err = awsRestjson1_deserializeOpDocumentUpdateChannelMessageOutput(&output, shape)
25582	if err != nil {
25583		var snapshot bytes.Buffer
25584		io.Copy(&snapshot, ringBuffer)
25585		return out, metadata, &smithy.DeserializationError{
25586			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
25587			Snapshot: snapshot.Bytes(),
25588		}
25589	}
25590
25591	return out, metadata, err
25592}
25593
25594func awsRestjson1_deserializeOpErrorUpdateChannelMessage(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25595	var errorBuffer bytes.Buffer
25596	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25597		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25598	}
25599	errorBody := bytes.NewReader(errorBuffer.Bytes())
25600
25601	errorCode := "UnknownError"
25602	errorMessage := errorCode
25603
25604	code := response.Header.Get("X-Amzn-ErrorType")
25605	if len(code) != 0 {
25606		errorCode = restjson.SanitizeErrorCode(code)
25607	}
25608
25609	var buff [1024]byte
25610	ringBuffer := smithyio.NewRingBuffer(buff[:])
25611
25612	body := io.TeeReader(errorBody, ringBuffer)
25613	decoder := json.NewDecoder(body)
25614	decoder.UseNumber()
25615	code, message, err := restjson.GetErrorInfo(decoder)
25616	if err != nil {
25617		var snapshot bytes.Buffer
25618		io.Copy(&snapshot, ringBuffer)
25619		err = &smithy.DeserializationError{
25620			Err:      fmt.Errorf("failed to decode response body, %w", err),
25621			Snapshot: snapshot.Bytes(),
25622		}
25623		return err
25624	}
25625
25626	errorBody.Seek(0, io.SeekStart)
25627	if len(code) != 0 {
25628		errorCode = restjson.SanitizeErrorCode(code)
25629	}
25630	if len(message) != 0 {
25631		errorMessage = message
25632	}
25633
25634	switch {
25635	case strings.EqualFold("BadRequestException", errorCode):
25636		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25637
25638	case strings.EqualFold("ConflictException", errorCode):
25639		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
25640
25641	case strings.EqualFold("ForbiddenException", errorCode):
25642		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25643
25644	case strings.EqualFold("ServiceFailureException", errorCode):
25645		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25646
25647	case strings.EqualFold("ServiceUnavailableException", errorCode):
25648		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25649
25650	case strings.EqualFold("ThrottledClientException", errorCode):
25651		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25652
25653	case strings.EqualFold("UnauthorizedClientException", errorCode):
25654		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25655
25656	default:
25657		genericError := &smithy.GenericAPIError{
25658			Code:    errorCode,
25659			Message: errorMessage,
25660		}
25661		return genericError
25662
25663	}
25664}
25665
25666func awsRestjson1_deserializeOpDocumentUpdateChannelMessageOutput(v **UpdateChannelMessageOutput, value interface{}) error {
25667	if v == nil {
25668		return fmt.Errorf("unexpected nil of type %T", v)
25669	}
25670	if value == nil {
25671		return nil
25672	}
25673
25674	shape, ok := value.(map[string]interface{})
25675	if !ok {
25676		return fmt.Errorf("unexpected JSON type %v", value)
25677	}
25678
25679	var sv *UpdateChannelMessageOutput
25680	if *v == nil {
25681		sv = &UpdateChannelMessageOutput{}
25682	} else {
25683		sv = *v
25684	}
25685
25686	for key, value := range shape {
25687		switch key {
25688		case "ChannelArn":
25689			if value != nil {
25690				jtv, ok := value.(string)
25691				if !ok {
25692					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
25693				}
25694				sv.ChannelArn = ptr.String(jtv)
25695			}
25696
25697		case "MessageId":
25698			if value != nil {
25699				jtv, ok := value.(string)
25700				if !ok {
25701					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
25702				}
25703				sv.MessageId = ptr.String(jtv)
25704			}
25705
25706		default:
25707			_, _ = key, value
25708
25709		}
25710	}
25711	*v = sv
25712	return nil
25713}
25714
25715type awsRestjson1_deserializeOpUpdateChannelReadMarker struct {
25716}
25717
25718func (*awsRestjson1_deserializeOpUpdateChannelReadMarker) ID() string {
25719	return "OperationDeserializer"
25720}
25721
25722func (m *awsRestjson1_deserializeOpUpdateChannelReadMarker) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25723	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25724) {
25725	out, metadata, err = next.HandleDeserialize(ctx, in)
25726	if err != nil {
25727		return out, metadata, err
25728	}
25729
25730	response, ok := out.RawResponse.(*smithyhttp.Response)
25731	if !ok {
25732		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25733	}
25734
25735	if response.StatusCode < 200 || response.StatusCode >= 300 {
25736		return out, metadata, awsRestjson1_deserializeOpErrorUpdateChannelReadMarker(response, &metadata)
25737	}
25738	output := &UpdateChannelReadMarkerOutput{}
25739	out.Result = output
25740
25741	var buff [1024]byte
25742	ringBuffer := smithyio.NewRingBuffer(buff[:])
25743
25744	body := io.TeeReader(response.Body, ringBuffer)
25745
25746	decoder := json.NewDecoder(body)
25747	decoder.UseNumber()
25748	var shape interface{}
25749	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
25750		var snapshot bytes.Buffer
25751		io.Copy(&snapshot, ringBuffer)
25752		err = &smithy.DeserializationError{
25753			Err:      fmt.Errorf("failed to decode response body, %w", err),
25754			Snapshot: snapshot.Bytes(),
25755		}
25756		return out, metadata, err
25757	}
25758
25759	err = awsRestjson1_deserializeOpDocumentUpdateChannelReadMarkerOutput(&output, shape)
25760	if err != nil {
25761		var snapshot bytes.Buffer
25762		io.Copy(&snapshot, ringBuffer)
25763		return out, metadata, &smithy.DeserializationError{
25764			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
25765			Snapshot: snapshot.Bytes(),
25766		}
25767	}
25768
25769	return out, metadata, err
25770}
25771
25772func awsRestjson1_deserializeOpErrorUpdateChannelReadMarker(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25773	var errorBuffer bytes.Buffer
25774	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25775		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25776	}
25777	errorBody := bytes.NewReader(errorBuffer.Bytes())
25778
25779	errorCode := "UnknownError"
25780	errorMessage := errorCode
25781
25782	code := response.Header.Get("X-Amzn-ErrorType")
25783	if len(code) != 0 {
25784		errorCode = restjson.SanitizeErrorCode(code)
25785	}
25786
25787	var buff [1024]byte
25788	ringBuffer := smithyio.NewRingBuffer(buff[:])
25789
25790	body := io.TeeReader(errorBody, ringBuffer)
25791	decoder := json.NewDecoder(body)
25792	decoder.UseNumber()
25793	code, message, err := restjson.GetErrorInfo(decoder)
25794	if err != nil {
25795		var snapshot bytes.Buffer
25796		io.Copy(&snapshot, ringBuffer)
25797		err = &smithy.DeserializationError{
25798			Err:      fmt.Errorf("failed to decode response body, %w", err),
25799			Snapshot: snapshot.Bytes(),
25800		}
25801		return err
25802	}
25803
25804	errorBody.Seek(0, io.SeekStart)
25805	if len(code) != 0 {
25806		errorCode = restjson.SanitizeErrorCode(code)
25807	}
25808	if len(message) != 0 {
25809		errorMessage = message
25810	}
25811
25812	switch {
25813	case strings.EqualFold("BadRequestException", errorCode):
25814		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25815
25816	case strings.EqualFold("ConflictException", errorCode):
25817		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
25818
25819	case strings.EqualFold("ForbiddenException", errorCode):
25820		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25821
25822	case strings.EqualFold("ServiceFailureException", errorCode):
25823		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25824
25825	case strings.EqualFold("ServiceUnavailableException", errorCode):
25826		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25827
25828	case strings.EqualFold("ThrottledClientException", errorCode):
25829		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25830
25831	case strings.EqualFold("UnauthorizedClientException", errorCode):
25832		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25833
25834	default:
25835		genericError := &smithy.GenericAPIError{
25836			Code:    errorCode,
25837			Message: errorMessage,
25838		}
25839		return genericError
25840
25841	}
25842}
25843
25844func awsRestjson1_deserializeOpDocumentUpdateChannelReadMarkerOutput(v **UpdateChannelReadMarkerOutput, value interface{}) error {
25845	if v == nil {
25846		return fmt.Errorf("unexpected nil of type %T", v)
25847	}
25848	if value == nil {
25849		return nil
25850	}
25851
25852	shape, ok := value.(map[string]interface{})
25853	if !ok {
25854		return fmt.Errorf("unexpected JSON type %v", value)
25855	}
25856
25857	var sv *UpdateChannelReadMarkerOutput
25858	if *v == nil {
25859		sv = &UpdateChannelReadMarkerOutput{}
25860	} else {
25861		sv = *v
25862	}
25863
25864	for key, value := range shape {
25865		switch key {
25866		case "ChannelArn":
25867			if value != nil {
25868				jtv, ok := value.(string)
25869				if !ok {
25870					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
25871				}
25872				sv.ChannelArn = ptr.String(jtv)
25873			}
25874
25875		default:
25876			_, _ = key, value
25877
25878		}
25879	}
25880	*v = sv
25881	return nil
25882}
25883
25884type awsRestjson1_deserializeOpUpdateGlobalSettings struct {
25885}
25886
25887func (*awsRestjson1_deserializeOpUpdateGlobalSettings) ID() string {
25888	return "OperationDeserializer"
25889}
25890
25891func (m *awsRestjson1_deserializeOpUpdateGlobalSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25892	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25893) {
25894	out, metadata, err = next.HandleDeserialize(ctx, in)
25895	if err != nil {
25896		return out, metadata, err
25897	}
25898
25899	response, ok := out.RawResponse.(*smithyhttp.Response)
25900	if !ok {
25901		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
25902	}
25903
25904	if response.StatusCode < 200 || response.StatusCode >= 300 {
25905		return out, metadata, awsRestjson1_deserializeOpErrorUpdateGlobalSettings(response, &metadata)
25906	}
25907	output := &UpdateGlobalSettingsOutput{}
25908	out.Result = output
25909
25910	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
25911		return out, metadata, &smithy.DeserializationError{
25912			Err: fmt.Errorf("failed to discard response body, %w", err),
25913		}
25914	}
25915
25916	return out, metadata, err
25917}
25918
25919func awsRestjson1_deserializeOpErrorUpdateGlobalSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
25920	var errorBuffer bytes.Buffer
25921	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
25922		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
25923	}
25924	errorBody := bytes.NewReader(errorBuffer.Bytes())
25925
25926	errorCode := "UnknownError"
25927	errorMessage := errorCode
25928
25929	code := response.Header.Get("X-Amzn-ErrorType")
25930	if len(code) != 0 {
25931		errorCode = restjson.SanitizeErrorCode(code)
25932	}
25933
25934	var buff [1024]byte
25935	ringBuffer := smithyio.NewRingBuffer(buff[:])
25936
25937	body := io.TeeReader(errorBody, ringBuffer)
25938	decoder := json.NewDecoder(body)
25939	decoder.UseNumber()
25940	code, message, err := restjson.GetErrorInfo(decoder)
25941	if err != nil {
25942		var snapshot bytes.Buffer
25943		io.Copy(&snapshot, ringBuffer)
25944		err = &smithy.DeserializationError{
25945			Err:      fmt.Errorf("failed to decode response body, %w", err),
25946			Snapshot: snapshot.Bytes(),
25947		}
25948		return err
25949	}
25950
25951	errorBody.Seek(0, io.SeekStart)
25952	if len(code) != 0 {
25953		errorCode = restjson.SanitizeErrorCode(code)
25954	}
25955	if len(message) != 0 {
25956		errorMessage = message
25957	}
25958
25959	switch {
25960	case strings.EqualFold("BadRequestException", errorCode):
25961		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
25962
25963	case strings.EqualFold("ForbiddenException", errorCode):
25964		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
25965
25966	case strings.EqualFold("ServiceFailureException", errorCode):
25967		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
25968
25969	case strings.EqualFold("ServiceUnavailableException", errorCode):
25970		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
25971
25972	case strings.EqualFold("ThrottledClientException", errorCode):
25973		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
25974
25975	case strings.EqualFold("UnauthorizedClientException", errorCode):
25976		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
25977
25978	default:
25979		genericError := &smithy.GenericAPIError{
25980			Code:    errorCode,
25981			Message: errorMessage,
25982		}
25983		return genericError
25984
25985	}
25986}
25987
25988type awsRestjson1_deserializeOpUpdatePhoneNumber struct {
25989}
25990
25991func (*awsRestjson1_deserializeOpUpdatePhoneNumber) ID() string {
25992	return "OperationDeserializer"
25993}
25994
25995func (m *awsRestjson1_deserializeOpUpdatePhoneNumber) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
25996	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
25997) {
25998	out, metadata, err = next.HandleDeserialize(ctx, in)
25999	if err != nil {
26000		return out, metadata, err
26001	}
26002
26003	response, ok := out.RawResponse.(*smithyhttp.Response)
26004	if !ok {
26005		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26006	}
26007
26008	if response.StatusCode < 200 || response.StatusCode >= 300 {
26009		return out, metadata, awsRestjson1_deserializeOpErrorUpdatePhoneNumber(response, &metadata)
26010	}
26011	output := &UpdatePhoneNumberOutput{}
26012	out.Result = output
26013
26014	var buff [1024]byte
26015	ringBuffer := smithyio.NewRingBuffer(buff[:])
26016
26017	body := io.TeeReader(response.Body, ringBuffer)
26018
26019	decoder := json.NewDecoder(body)
26020	decoder.UseNumber()
26021	var shape interface{}
26022	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26023		var snapshot bytes.Buffer
26024		io.Copy(&snapshot, ringBuffer)
26025		err = &smithy.DeserializationError{
26026			Err:      fmt.Errorf("failed to decode response body, %w", err),
26027			Snapshot: snapshot.Bytes(),
26028		}
26029		return out, metadata, err
26030	}
26031
26032	err = awsRestjson1_deserializeOpDocumentUpdatePhoneNumberOutput(&output, shape)
26033	if err != nil {
26034		var snapshot bytes.Buffer
26035		io.Copy(&snapshot, ringBuffer)
26036		return out, metadata, &smithy.DeserializationError{
26037			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26038			Snapshot: snapshot.Bytes(),
26039		}
26040	}
26041
26042	return out, metadata, err
26043}
26044
26045func awsRestjson1_deserializeOpErrorUpdatePhoneNumber(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26046	var errorBuffer bytes.Buffer
26047	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26048		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26049	}
26050	errorBody := bytes.NewReader(errorBuffer.Bytes())
26051
26052	errorCode := "UnknownError"
26053	errorMessage := errorCode
26054
26055	code := response.Header.Get("X-Amzn-ErrorType")
26056	if len(code) != 0 {
26057		errorCode = restjson.SanitizeErrorCode(code)
26058	}
26059
26060	var buff [1024]byte
26061	ringBuffer := smithyio.NewRingBuffer(buff[:])
26062
26063	body := io.TeeReader(errorBody, ringBuffer)
26064	decoder := json.NewDecoder(body)
26065	decoder.UseNumber()
26066	code, message, err := restjson.GetErrorInfo(decoder)
26067	if err != nil {
26068		var snapshot bytes.Buffer
26069		io.Copy(&snapshot, ringBuffer)
26070		err = &smithy.DeserializationError{
26071			Err:      fmt.Errorf("failed to decode response body, %w", err),
26072			Snapshot: snapshot.Bytes(),
26073		}
26074		return err
26075	}
26076
26077	errorBody.Seek(0, io.SeekStart)
26078	if len(code) != 0 {
26079		errorCode = restjson.SanitizeErrorCode(code)
26080	}
26081	if len(message) != 0 {
26082		errorMessage = message
26083	}
26084
26085	switch {
26086	case strings.EqualFold("BadRequestException", errorCode):
26087		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26088
26089	case strings.EqualFold("ForbiddenException", errorCode):
26090		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26091
26092	case strings.EqualFold("NotFoundException", errorCode):
26093		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26094
26095	case strings.EqualFold("ServiceFailureException", errorCode):
26096		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26097
26098	case strings.EqualFold("ServiceUnavailableException", errorCode):
26099		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26100
26101	case strings.EqualFold("ThrottledClientException", errorCode):
26102		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26103
26104	case strings.EqualFold("UnauthorizedClientException", errorCode):
26105		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26106
26107	default:
26108		genericError := &smithy.GenericAPIError{
26109			Code:    errorCode,
26110			Message: errorMessage,
26111		}
26112		return genericError
26113
26114	}
26115}
26116
26117func awsRestjson1_deserializeOpDocumentUpdatePhoneNumberOutput(v **UpdatePhoneNumberOutput, value interface{}) error {
26118	if v == nil {
26119		return fmt.Errorf("unexpected nil of type %T", v)
26120	}
26121	if value == nil {
26122		return nil
26123	}
26124
26125	shape, ok := value.(map[string]interface{})
26126	if !ok {
26127		return fmt.Errorf("unexpected JSON type %v", value)
26128	}
26129
26130	var sv *UpdatePhoneNumberOutput
26131	if *v == nil {
26132		sv = &UpdatePhoneNumberOutput{}
26133	} else {
26134		sv = *v
26135	}
26136
26137	for key, value := range shape {
26138		switch key {
26139		case "PhoneNumber":
26140			if err := awsRestjson1_deserializeDocumentPhoneNumber(&sv.PhoneNumber, value); err != nil {
26141				return err
26142			}
26143
26144		default:
26145			_, _ = key, value
26146
26147		}
26148	}
26149	*v = sv
26150	return nil
26151}
26152
26153type awsRestjson1_deserializeOpUpdatePhoneNumberSettings struct {
26154}
26155
26156func (*awsRestjson1_deserializeOpUpdatePhoneNumberSettings) ID() string {
26157	return "OperationDeserializer"
26158}
26159
26160func (m *awsRestjson1_deserializeOpUpdatePhoneNumberSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26161	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26162) {
26163	out, metadata, err = next.HandleDeserialize(ctx, in)
26164	if err != nil {
26165		return out, metadata, err
26166	}
26167
26168	response, ok := out.RawResponse.(*smithyhttp.Response)
26169	if !ok {
26170		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26171	}
26172
26173	if response.StatusCode < 200 || response.StatusCode >= 300 {
26174		return out, metadata, awsRestjson1_deserializeOpErrorUpdatePhoneNumberSettings(response, &metadata)
26175	}
26176	output := &UpdatePhoneNumberSettingsOutput{}
26177	out.Result = output
26178
26179	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
26180		return out, metadata, &smithy.DeserializationError{
26181			Err: fmt.Errorf("failed to discard response body, %w", err),
26182		}
26183	}
26184
26185	return out, metadata, err
26186}
26187
26188func awsRestjson1_deserializeOpErrorUpdatePhoneNumberSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26189	var errorBuffer bytes.Buffer
26190	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26191		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26192	}
26193	errorBody := bytes.NewReader(errorBuffer.Bytes())
26194
26195	errorCode := "UnknownError"
26196	errorMessage := errorCode
26197
26198	code := response.Header.Get("X-Amzn-ErrorType")
26199	if len(code) != 0 {
26200		errorCode = restjson.SanitizeErrorCode(code)
26201	}
26202
26203	var buff [1024]byte
26204	ringBuffer := smithyio.NewRingBuffer(buff[:])
26205
26206	body := io.TeeReader(errorBody, ringBuffer)
26207	decoder := json.NewDecoder(body)
26208	decoder.UseNumber()
26209	code, message, err := restjson.GetErrorInfo(decoder)
26210	if err != nil {
26211		var snapshot bytes.Buffer
26212		io.Copy(&snapshot, ringBuffer)
26213		err = &smithy.DeserializationError{
26214			Err:      fmt.Errorf("failed to decode response body, %w", err),
26215			Snapshot: snapshot.Bytes(),
26216		}
26217		return err
26218	}
26219
26220	errorBody.Seek(0, io.SeekStart)
26221	if len(code) != 0 {
26222		errorCode = restjson.SanitizeErrorCode(code)
26223	}
26224	if len(message) != 0 {
26225		errorMessage = message
26226	}
26227
26228	switch {
26229	case strings.EqualFold("BadRequestException", errorCode):
26230		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26231
26232	case strings.EqualFold("ForbiddenException", errorCode):
26233		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26234
26235	case strings.EqualFold("ServiceFailureException", errorCode):
26236		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26237
26238	case strings.EqualFold("ServiceUnavailableException", errorCode):
26239		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26240
26241	case strings.EqualFold("ThrottledClientException", errorCode):
26242		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26243
26244	case strings.EqualFold("UnauthorizedClientException", errorCode):
26245		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26246
26247	default:
26248		genericError := &smithy.GenericAPIError{
26249			Code:    errorCode,
26250			Message: errorMessage,
26251		}
26252		return genericError
26253
26254	}
26255}
26256
26257type awsRestjson1_deserializeOpUpdateProxySession struct {
26258}
26259
26260func (*awsRestjson1_deserializeOpUpdateProxySession) ID() string {
26261	return "OperationDeserializer"
26262}
26263
26264func (m *awsRestjson1_deserializeOpUpdateProxySession) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26265	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26266) {
26267	out, metadata, err = next.HandleDeserialize(ctx, in)
26268	if err != nil {
26269		return out, metadata, err
26270	}
26271
26272	response, ok := out.RawResponse.(*smithyhttp.Response)
26273	if !ok {
26274		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26275	}
26276
26277	if response.StatusCode < 200 || response.StatusCode >= 300 {
26278		return out, metadata, awsRestjson1_deserializeOpErrorUpdateProxySession(response, &metadata)
26279	}
26280	output := &UpdateProxySessionOutput{}
26281	out.Result = output
26282
26283	var buff [1024]byte
26284	ringBuffer := smithyio.NewRingBuffer(buff[:])
26285
26286	body := io.TeeReader(response.Body, ringBuffer)
26287
26288	decoder := json.NewDecoder(body)
26289	decoder.UseNumber()
26290	var shape interface{}
26291	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26292		var snapshot bytes.Buffer
26293		io.Copy(&snapshot, ringBuffer)
26294		err = &smithy.DeserializationError{
26295			Err:      fmt.Errorf("failed to decode response body, %w", err),
26296			Snapshot: snapshot.Bytes(),
26297		}
26298		return out, metadata, err
26299	}
26300
26301	err = awsRestjson1_deserializeOpDocumentUpdateProxySessionOutput(&output, shape)
26302	if err != nil {
26303		var snapshot bytes.Buffer
26304		io.Copy(&snapshot, ringBuffer)
26305		return out, metadata, &smithy.DeserializationError{
26306			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26307			Snapshot: snapshot.Bytes(),
26308		}
26309	}
26310
26311	return out, metadata, err
26312}
26313
26314func awsRestjson1_deserializeOpErrorUpdateProxySession(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26315	var errorBuffer bytes.Buffer
26316	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26317		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26318	}
26319	errorBody := bytes.NewReader(errorBuffer.Bytes())
26320
26321	errorCode := "UnknownError"
26322	errorMessage := errorCode
26323
26324	code := response.Header.Get("X-Amzn-ErrorType")
26325	if len(code) != 0 {
26326		errorCode = restjson.SanitizeErrorCode(code)
26327	}
26328
26329	var buff [1024]byte
26330	ringBuffer := smithyio.NewRingBuffer(buff[:])
26331
26332	body := io.TeeReader(errorBody, ringBuffer)
26333	decoder := json.NewDecoder(body)
26334	decoder.UseNumber()
26335	code, message, err := restjson.GetErrorInfo(decoder)
26336	if err != nil {
26337		var snapshot bytes.Buffer
26338		io.Copy(&snapshot, ringBuffer)
26339		err = &smithy.DeserializationError{
26340			Err:      fmt.Errorf("failed to decode response body, %w", err),
26341			Snapshot: snapshot.Bytes(),
26342		}
26343		return err
26344	}
26345
26346	errorBody.Seek(0, io.SeekStart)
26347	if len(code) != 0 {
26348		errorCode = restjson.SanitizeErrorCode(code)
26349	}
26350	if len(message) != 0 {
26351		errorMessage = message
26352	}
26353
26354	switch {
26355	case strings.EqualFold("BadRequestException", errorCode):
26356		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26357
26358	case strings.EqualFold("ForbiddenException", errorCode):
26359		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26360
26361	case strings.EqualFold("NotFoundException", errorCode):
26362		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26363
26364	case strings.EqualFold("ServiceFailureException", errorCode):
26365		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26366
26367	case strings.EqualFold("ServiceUnavailableException", errorCode):
26368		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26369
26370	case strings.EqualFold("ThrottledClientException", errorCode):
26371		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26372
26373	case strings.EqualFold("UnauthorizedClientException", errorCode):
26374		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26375
26376	default:
26377		genericError := &smithy.GenericAPIError{
26378			Code:    errorCode,
26379			Message: errorMessage,
26380		}
26381		return genericError
26382
26383	}
26384}
26385
26386func awsRestjson1_deserializeOpDocumentUpdateProxySessionOutput(v **UpdateProxySessionOutput, value interface{}) error {
26387	if v == nil {
26388		return fmt.Errorf("unexpected nil of type %T", v)
26389	}
26390	if value == nil {
26391		return nil
26392	}
26393
26394	shape, ok := value.(map[string]interface{})
26395	if !ok {
26396		return fmt.Errorf("unexpected JSON type %v", value)
26397	}
26398
26399	var sv *UpdateProxySessionOutput
26400	if *v == nil {
26401		sv = &UpdateProxySessionOutput{}
26402	} else {
26403		sv = *v
26404	}
26405
26406	for key, value := range shape {
26407		switch key {
26408		case "ProxySession":
26409			if err := awsRestjson1_deserializeDocumentProxySession(&sv.ProxySession, value); err != nil {
26410				return err
26411			}
26412
26413		default:
26414			_, _ = key, value
26415
26416		}
26417	}
26418	*v = sv
26419	return nil
26420}
26421
26422type awsRestjson1_deserializeOpUpdateRoom struct {
26423}
26424
26425func (*awsRestjson1_deserializeOpUpdateRoom) ID() string {
26426	return "OperationDeserializer"
26427}
26428
26429func (m *awsRestjson1_deserializeOpUpdateRoom) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26430	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26431) {
26432	out, metadata, err = next.HandleDeserialize(ctx, in)
26433	if err != nil {
26434		return out, metadata, err
26435	}
26436
26437	response, ok := out.RawResponse.(*smithyhttp.Response)
26438	if !ok {
26439		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26440	}
26441
26442	if response.StatusCode < 200 || response.StatusCode >= 300 {
26443		return out, metadata, awsRestjson1_deserializeOpErrorUpdateRoom(response, &metadata)
26444	}
26445	output := &UpdateRoomOutput{}
26446	out.Result = output
26447
26448	var buff [1024]byte
26449	ringBuffer := smithyio.NewRingBuffer(buff[:])
26450
26451	body := io.TeeReader(response.Body, ringBuffer)
26452
26453	decoder := json.NewDecoder(body)
26454	decoder.UseNumber()
26455	var shape interface{}
26456	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26457		var snapshot bytes.Buffer
26458		io.Copy(&snapshot, ringBuffer)
26459		err = &smithy.DeserializationError{
26460			Err:      fmt.Errorf("failed to decode response body, %w", err),
26461			Snapshot: snapshot.Bytes(),
26462		}
26463		return out, metadata, err
26464	}
26465
26466	err = awsRestjson1_deserializeOpDocumentUpdateRoomOutput(&output, shape)
26467	if err != nil {
26468		var snapshot bytes.Buffer
26469		io.Copy(&snapshot, ringBuffer)
26470		return out, metadata, &smithy.DeserializationError{
26471			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26472			Snapshot: snapshot.Bytes(),
26473		}
26474	}
26475
26476	return out, metadata, err
26477}
26478
26479func awsRestjson1_deserializeOpErrorUpdateRoom(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26480	var errorBuffer bytes.Buffer
26481	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26482		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26483	}
26484	errorBody := bytes.NewReader(errorBuffer.Bytes())
26485
26486	errorCode := "UnknownError"
26487	errorMessage := errorCode
26488
26489	code := response.Header.Get("X-Amzn-ErrorType")
26490	if len(code) != 0 {
26491		errorCode = restjson.SanitizeErrorCode(code)
26492	}
26493
26494	var buff [1024]byte
26495	ringBuffer := smithyio.NewRingBuffer(buff[:])
26496
26497	body := io.TeeReader(errorBody, ringBuffer)
26498	decoder := json.NewDecoder(body)
26499	decoder.UseNumber()
26500	code, message, err := restjson.GetErrorInfo(decoder)
26501	if err != nil {
26502		var snapshot bytes.Buffer
26503		io.Copy(&snapshot, ringBuffer)
26504		err = &smithy.DeserializationError{
26505			Err:      fmt.Errorf("failed to decode response body, %w", err),
26506			Snapshot: snapshot.Bytes(),
26507		}
26508		return err
26509	}
26510
26511	errorBody.Seek(0, io.SeekStart)
26512	if len(code) != 0 {
26513		errorCode = restjson.SanitizeErrorCode(code)
26514	}
26515	if len(message) != 0 {
26516		errorMessage = message
26517	}
26518
26519	switch {
26520	case strings.EqualFold("BadRequestException", errorCode):
26521		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26522
26523	case strings.EqualFold("ForbiddenException", errorCode):
26524		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26525
26526	case strings.EqualFold("NotFoundException", errorCode):
26527		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26528
26529	case strings.EqualFold("ServiceFailureException", errorCode):
26530		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26531
26532	case strings.EqualFold("ServiceUnavailableException", errorCode):
26533		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26534
26535	case strings.EqualFold("ThrottledClientException", errorCode):
26536		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26537
26538	case strings.EqualFold("UnauthorizedClientException", errorCode):
26539		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26540
26541	default:
26542		genericError := &smithy.GenericAPIError{
26543			Code:    errorCode,
26544			Message: errorMessage,
26545		}
26546		return genericError
26547
26548	}
26549}
26550
26551func awsRestjson1_deserializeOpDocumentUpdateRoomOutput(v **UpdateRoomOutput, value interface{}) error {
26552	if v == nil {
26553		return fmt.Errorf("unexpected nil of type %T", v)
26554	}
26555	if value == nil {
26556		return nil
26557	}
26558
26559	shape, ok := value.(map[string]interface{})
26560	if !ok {
26561		return fmt.Errorf("unexpected JSON type %v", value)
26562	}
26563
26564	var sv *UpdateRoomOutput
26565	if *v == nil {
26566		sv = &UpdateRoomOutput{}
26567	} else {
26568		sv = *v
26569	}
26570
26571	for key, value := range shape {
26572		switch key {
26573		case "Room":
26574			if err := awsRestjson1_deserializeDocumentRoom(&sv.Room, value); err != nil {
26575				return err
26576			}
26577
26578		default:
26579			_, _ = key, value
26580
26581		}
26582	}
26583	*v = sv
26584	return nil
26585}
26586
26587type awsRestjson1_deserializeOpUpdateRoomMembership struct {
26588}
26589
26590func (*awsRestjson1_deserializeOpUpdateRoomMembership) ID() string {
26591	return "OperationDeserializer"
26592}
26593
26594func (m *awsRestjson1_deserializeOpUpdateRoomMembership) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26595	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26596) {
26597	out, metadata, err = next.HandleDeserialize(ctx, in)
26598	if err != nil {
26599		return out, metadata, err
26600	}
26601
26602	response, ok := out.RawResponse.(*smithyhttp.Response)
26603	if !ok {
26604		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26605	}
26606
26607	if response.StatusCode < 200 || response.StatusCode >= 300 {
26608		return out, metadata, awsRestjson1_deserializeOpErrorUpdateRoomMembership(response, &metadata)
26609	}
26610	output := &UpdateRoomMembershipOutput{}
26611	out.Result = output
26612
26613	var buff [1024]byte
26614	ringBuffer := smithyio.NewRingBuffer(buff[:])
26615
26616	body := io.TeeReader(response.Body, ringBuffer)
26617
26618	decoder := json.NewDecoder(body)
26619	decoder.UseNumber()
26620	var shape interface{}
26621	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26622		var snapshot bytes.Buffer
26623		io.Copy(&snapshot, ringBuffer)
26624		err = &smithy.DeserializationError{
26625			Err:      fmt.Errorf("failed to decode response body, %w", err),
26626			Snapshot: snapshot.Bytes(),
26627		}
26628		return out, metadata, err
26629	}
26630
26631	err = awsRestjson1_deserializeOpDocumentUpdateRoomMembershipOutput(&output, shape)
26632	if err != nil {
26633		var snapshot bytes.Buffer
26634		io.Copy(&snapshot, ringBuffer)
26635		return out, metadata, &smithy.DeserializationError{
26636			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26637			Snapshot: snapshot.Bytes(),
26638		}
26639	}
26640
26641	return out, metadata, err
26642}
26643
26644func awsRestjson1_deserializeOpErrorUpdateRoomMembership(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26645	var errorBuffer bytes.Buffer
26646	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26647		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26648	}
26649	errorBody := bytes.NewReader(errorBuffer.Bytes())
26650
26651	errorCode := "UnknownError"
26652	errorMessage := errorCode
26653
26654	code := response.Header.Get("X-Amzn-ErrorType")
26655	if len(code) != 0 {
26656		errorCode = restjson.SanitizeErrorCode(code)
26657	}
26658
26659	var buff [1024]byte
26660	ringBuffer := smithyio.NewRingBuffer(buff[:])
26661
26662	body := io.TeeReader(errorBody, ringBuffer)
26663	decoder := json.NewDecoder(body)
26664	decoder.UseNumber()
26665	code, message, err := restjson.GetErrorInfo(decoder)
26666	if err != nil {
26667		var snapshot bytes.Buffer
26668		io.Copy(&snapshot, ringBuffer)
26669		err = &smithy.DeserializationError{
26670			Err:      fmt.Errorf("failed to decode response body, %w", err),
26671			Snapshot: snapshot.Bytes(),
26672		}
26673		return err
26674	}
26675
26676	errorBody.Seek(0, io.SeekStart)
26677	if len(code) != 0 {
26678		errorCode = restjson.SanitizeErrorCode(code)
26679	}
26680	if len(message) != 0 {
26681		errorMessage = message
26682	}
26683
26684	switch {
26685	case strings.EqualFold("BadRequestException", errorCode):
26686		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26687
26688	case strings.EqualFold("ForbiddenException", errorCode):
26689		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26690
26691	case strings.EqualFold("NotFoundException", errorCode):
26692		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26693
26694	case strings.EqualFold("ServiceFailureException", errorCode):
26695		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26696
26697	case strings.EqualFold("ServiceUnavailableException", errorCode):
26698		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26699
26700	case strings.EqualFold("ThrottledClientException", errorCode):
26701		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26702
26703	case strings.EqualFold("UnauthorizedClientException", errorCode):
26704		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26705
26706	default:
26707		genericError := &smithy.GenericAPIError{
26708			Code:    errorCode,
26709			Message: errorMessage,
26710		}
26711		return genericError
26712
26713	}
26714}
26715
26716func awsRestjson1_deserializeOpDocumentUpdateRoomMembershipOutput(v **UpdateRoomMembershipOutput, value interface{}) error {
26717	if v == nil {
26718		return fmt.Errorf("unexpected nil of type %T", v)
26719	}
26720	if value == nil {
26721		return nil
26722	}
26723
26724	shape, ok := value.(map[string]interface{})
26725	if !ok {
26726		return fmt.Errorf("unexpected JSON type %v", value)
26727	}
26728
26729	var sv *UpdateRoomMembershipOutput
26730	if *v == nil {
26731		sv = &UpdateRoomMembershipOutput{}
26732	} else {
26733		sv = *v
26734	}
26735
26736	for key, value := range shape {
26737		switch key {
26738		case "RoomMembership":
26739			if err := awsRestjson1_deserializeDocumentRoomMembership(&sv.RoomMembership, value); err != nil {
26740				return err
26741			}
26742
26743		default:
26744			_, _ = key, value
26745
26746		}
26747	}
26748	*v = sv
26749	return nil
26750}
26751
26752type awsRestjson1_deserializeOpUpdateSipMediaApplication struct {
26753}
26754
26755func (*awsRestjson1_deserializeOpUpdateSipMediaApplication) ID() string {
26756	return "OperationDeserializer"
26757}
26758
26759func (m *awsRestjson1_deserializeOpUpdateSipMediaApplication) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26760	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26761) {
26762	out, metadata, err = next.HandleDeserialize(ctx, in)
26763	if err != nil {
26764		return out, metadata, err
26765	}
26766
26767	response, ok := out.RawResponse.(*smithyhttp.Response)
26768	if !ok {
26769		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26770	}
26771
26772	if response.StatusCode < 200 || response.StatusCode >= 300 {
26773		return out, metadata, awsRestjson1_deserializeOpErrorUpdateSipMediaApplication(response, &metadata)
26774	}
26775	output := &UpdateSipMediaApplicationOutput{}
26776	out.Result = output
26777
26778	var buff [1024]byte
26779	ringBuffer := smithyio.NewRingBuffer(buff[:])
26780
26781	body := io.TeeReader(response.Body, ringBuffer)
26782
26783	decoder := json.NewDecoder(body)
26784	decoder.UseNumber()
26785	var shape interface{}
26786	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26787		var snapshot bytes.Buffer
26788		io.Copy(&snapshot, ringBuffer)
26789		err = &smithy.DeserializationError{
26790			Err:      fmt.Errorf("failed to decode response body, %w", err),
26791			Snapshot: snapshot.Bytes(),
26792		}
26793		return out, metadata, err
26794	}
26795
26796	err = awsRestjson1_deserializeOpDocumentUpdateSipMediaApplicationOutput(&output, shape)
26797	if err != nil {
26798		var snapshot bytes.Buffer
26799		io.Copy(&snapshot, ringBuffer)
26800		return out, metadata, &smithy.DeserializationError{
26801			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26802			Snapshot: snapshot.Bytes(),
26803		}
26804	}
26805
26806	return out, metadata, err
26807}
26808
26809func awsRestjson1_deserializeOpErrorUpdateSipMediaApplication(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26810	var errorBuffer bytes.Buffer
26811	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26812		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26813	}
26814	errorBody := bytes.NewReader(errorBuffer.Bytes())
26815
26816	errorCode := "UnknownError"
26817	errorMessage := errorCode
26818
26819	code := response.Header.Get("X-Amzn-ErrorType")
26820	if len(code) != 0 {
26821		errorCode = restjson.SanitizeErrorCode(code)
26822	}
26823
26824	var buff [1024]byte
26825	ringBuffer := smithyio.NewRingBuffer(buff[:])
26826
26827	body := io.TeeReader(errorBody, ringBuffer)
26828	decoder := json.NewDecoder(body)
26829	decoder.UseNumber()
26830	code, message, err := restjson.GetErrorInfo(decoder)
26831	if err != nil {
26832		var snapshot bytes.Buffer
26833		io.Copy(&snapshot, ringBuffer)
26834		err = &smithy.DeserializationError{
26835			Err:      fmt.Errorf("failed to decode response body, %w", err),
26836			Snapshot: snapshot.Bytes(),
26837		}
26838		return err
26839	}
26840
26841	errorBody.Seek(0, io.SeekStart)
26842	if len(code) != 0 {
26843		errorCode = restjson.SanitizeErrorCode(code)
26844	}
26845	if len(message) != 0 {
26846		errorMessage = message
26847	}
26848
26849	switch {
26850	case strings.EqualFold("BadRequestException", errorCode):
26851		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
26852
26853	case strings.EqualFold("ConflictException", errorCode):
26854		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
26855
26856	case strings.EqualFold("ForbiddenException", errorCode):
26857		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
26858
26859	case strings.EqualFold("NotFoundException", errorCode):
26860		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
26861
26862	case strings.EqualFold("ServiceFailureException", errorCode):
26863		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
26864
26865	case strings.EqualFold("ServiceUnavailableException", errorCode):
26866		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
26867
26868	case strings.EqualFold("ThrottledClientException", errorCode):
26869		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
26870
26871	case strings.EqualFold("UnauthorizedClientException", errorCode):
26872		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
26873
26874	default:
26875		genericError := &smithy.GenericAPIError{
26876			Code:    errorCode,
26877			Message: errorMessage,
26878		}
26879		return genericError
26880
26881	}
26882}
26883
26884func awsRestjson1_deserializeOpDocumentUpdateSipMediaApplicationOutput(v **UpdateSipMediaApplicationOutput, value interface{}) error {
26885	if v == nil {
26886		return fmt.Errorf("unexpected nil of type %T", v)
26887	}
26888	if value == nil {
26889		return nil
26890	}
26891
26892	shape, ok := value.(map[string]interface{})
26893	if !ok {
26894		return fmt.Errorf("unexpected JSON type %v", value)
26895	}
26896
26897	var sv *UpdateSipMediaApplicationOutput
26898	if *v == nil {
26899		sv = &UpdateSipMediaApplicationOutput{}
26900	} else {
26901		sv = *v
26902	}
26903
26904	for key, value := range shape {
26905		switch key {
26906		case "SipMediaApplication":
26907			if err := awsRestjson1_deserializeDocumentSipMediaApplication(&sv.SipMediaApplication, value); err != nil {
26908				return err
26909			}
26910
26911		default:
26912			_, _ = key, value
26913
26914		}
26915	}
26916	*v = sv
26917	return nil
26918}
26919
26920type awsRestjson1_deserializeOpUpdateSipRule struct {
26921}
26922
26923func (*awsRestjson1_deserializeOpUpdateSipRule) ID() string {
26924	return "OperationDeserializer"
26925}
26926
26927func (m *awsRestjson1_deserializeOpUpdateSipRule) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
26928	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
26929) {
26930	out, metadata, err = next.HandleDeserialize(ctx, in)
26931	if err != nil {
26932		return out, metadata, err
26933	}
26934
26935	response, ok := out.RawResponse.(*smithyhttp.Response)
26936	if !ok {
26937		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
26938	}
26939
26940	if response.StatusCode < 200 || response.StatusCode >= 300 {
26941		return out, metadata, awsRestjson1_deserializeOpErrorUpdateSipRule(response, &metadata)
26942	}
26943	output := &UpdateSipRuleOutput{}
26944	out.Result = output
26945
26946	var buff [1024]byte
26947	ringBuffer := smithyio.NewRingBuffer(buff[:])
26948
26949	body := io.TeeReader(response.Body, ringBuffer)
26950
26951	decoder := json.NewDecoder(body)
26952	decoder.UseNumber()
26953	var shape interface{}
26954	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
26955		var snapshot bytes.Buffer
26956		io.Copy(&snapshot, ringBuffer)
26957		err = &smithy.DeserializationError{
26958			Err:      fmt.Errorf("failed to decode response body, %w", err),
26959			Snapshot: snapshot.Bytes(),
26960		}
26961		return out, metadata, err
26962	}
26963
26964	err = awsRestjson1_deserializeOpDocumentUpdateSipRuleOutput(&output, shape)
26965	if err != nil {
26966		var snapshot bytes.Buffer
26967		io.Copy(&snapshot, ringBuffer)
26968		return out, metadata, &smithy.DeserializationError{
26969			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
26970			Snapshot: snapshot.Bytes(),
26971		}
26972	}
26973
26974	return out, metadata, err
26975}
26976
26977func awsRestjson1_deserializeOpErrorUpdateSipRule(response *smithyhttp.Response, metadata *middleware.Metadata) error {
26978	var errorBuffer bytes.Buffer
26979	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
26980		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
26981	}
26982	errorBody := bytes.NewReader(errorBuffer.Bytes())
26983
26984	errorCode := "UnknownError"
26985	errorMessage := errorCode
26986
26987	code := response.Header.Get("X-Amzn-ErrorType")
26988	if len(code) != 0 {
26989		errorCode = restjson.SanitizeErrorCode(code)
26990	}
26991
26992	var buff [1024]byte
26993	ringBuffer := smithyio.NewRingBuffer(buff[:])
26994
26995	body := io.TeeReader(errorBody, ringBuffer)
26996	decoder := json.NewDecoder(body)
26997	decoder.UseNumber()
26998	code, message, err := restjson.GetErrorInfo(decoder)
26999	if err != nil {
27000		var snapshot bytes.Buffer
27001		io.Copy(&snapshot, ringBuffer)
27002		err = &smithy.DeserializationError{
27003			Err:      fmt.Errorf("failed to decode response body, %w", err),
27004			Snapshot: snapshot.Bytes(),
27005		}
27006		return err
27007	}
27008
27009	errorBody.Seek(0, io.SeekStart)
27010	if len(code) != 0 {
27011		errorCode = restjson.SanitizeErrorCode(code)
27012	}
27013	if len(message) != 0 {
27014		errorMessage = message
27015	}
27016
27017	switch {
27018	case strings.EqualFold("BadRequestException", errorCode):
27019		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27020
27021	case strings.EqualFold("ConflictException", errorCode):
27022		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
27023
27024	case strings.EqualFold("ForbiddenException", errorCode):
27025		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27026
27027	case strings.EqualFold("NotFoundException", errorCode):
27028		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27029
27030	case strings.EqualFold("ResourceLimitExceededException", errorCode):
27031		return awsRestjson1_deserializeErrorResourceLimitExceededException(response, errorBody)
27032
27033	case strings.EqualFold("ServiceFailureException", errorCode):
27034		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27035
27036	case strings.EqualFold("ServiceUnavailableException", errorCode):
27037		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27038
27039	case strings.EqualFold("ThrottledClientException", errorCode):
27040		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27041
27042	case strings.EqualFold("UnauthorizedClientException", errorCode):
27043		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27044
27045	default:
27046		genericError := &smithy.GenericAPIError{
27047			Code:    errorCode,
27048			Message: errorMessage,
27049		}
27050		return genericError
27051
27052	}
27053}
27054
27055func awsRestjson1_deserializeOpDocumentUpdateSipRuleOutput(v **UpdateSipRuleOutput, value interface{}) error {
27056	if v == nil {
27057		return fmt.Errorf("unexpected nil of type %T", v)
27058	}
27059	if value == nil {
27060		return nil
27061	}
27062
27063	shape, ok := value.(map[string]interface{})
27064	if !ok {
27065		return fmt.Errorf("unexpected JSON type %v", value)
27066	}
27067
27068	var sv *UpdateSipRuleOutput
27069	if *v == nil {
27070		sv = &UpdateSipRuleOutput{}
27071	} else {
27072		sv = *v
27073	}
27074
27075	for key, value := range shape {
27076		switch key {
27077		case "SipRule":
27078			if err := awsRestjson1_deserializeDocumentSipRule(&sv.SipRule, value); err != nil {
27079				return err
27080			}
27081
27082		default:
27083			_, _ = key, value
27084
27085		}
27086	}
27087	*v = sv
27088	return nil
27089}
27090
27091type awsRestjson1_deserializeOpUpdateUser struct {
27092}
27093
27094func (*awsRestjson1_deserializeOpUpdateUser) ID() string {
27095	return "OperationDeserializer"
27096}
27097
27098func (m *awsRestjson1_deserializeOpUpdateUser) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27099	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27100) {
27101	out, metadata, err = next.HandleDeserialize(ctx, in)
27102	if err != nil {
27103		return out, metadata, err
27104	}
27105
27106	response, ok := out.RawResponse.(*smithyhttp.Response)
27107	if !ok {
27108		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27109	}
27110
27111	if response.StatusCode < 200 || response.StatusCode >= 300 {
27112		return out, metadata, awsRestjson1_deserializeOpErrorUpdateUser(response, &metadata)
27113	}
27114	output := &UpdateUserOutput{}
27115	out.Result = output
27116
27117	var buff [1024]byte
27118	ringBuffer := smithyio.NewRingBuffer(buff[:])
27119
27120	body := io.TeeReader(response.Body, ringBuffer)
27121
27122	decoder := json.NewDecoder(body)
27123	decoder.UseNumber()
27124	var shape interface{}
27125	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27126		var snapshot bytes.Buffer
27127		io.Copy(&snapshot, ringBuffer)
27128		err = &smithy.DeserializationError{
27129			Err:      fmt.Errorf("failed to decode response body, %w", err),
27130			Snapshot: snapshot.Bytes(),
27131		}
27132		return out, metadata, err
27133	}
27134
27135	err = awsRestjson1_deserializeOpDocumentUpdateUserOutput(&output, shape)
27136	if err != nil {
27137		var snapshot bytes.Buffer
27138		io.Copy(&snapshot, ringBuffer)
27139		return out, metadata, &smithy.DeserializationError{
27140			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27141			Snapshot: snapshot.Bytes(),
27142		}
27143	}
27144
27145	return out, metadata, err
27146}
27147
27148func awsRestjson1_deserializeOpErrorUpdateUser(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27149	var errorBuffer bytes.Buffer
27150	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27151		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27152	}
27153	errorBody := bytes.NewReader(errorBuffer.Bytes())
27154
27155	errorCode := "UnknownError"
27156	errorMessage := errorCode
27157
27158	code := response.Header.Get("X-Amzn-ErrorType")
27159	if len(code) != 0 {
27160		errorCode = restjson.SanitizeErrorCode(code)
27161	}
27162
27163	var buff [1024]byte
27164	ringBuffer := smithyio.NewRingBuffer(buff[:])
27165
27166	body := io.TeeReader(errorBody, ringBuffer)
27167	decoder := json.NewDecoder(body)
27168	decoder.UseNumber()
27169	code, message, err := restjson.GetErrorInfo(decoder)
27170	if err != nil {
27171		var snapshot bytes.Buffer
27172		io.Copy(&snapshot, ringBuffer)
27173		err = &smithy.DeserializationError{
27174			Err:      fmt.Errorf("failed to decode response body, %w", err),
27175			Snapshot: snapshot.Bytes(),
27176		}
27177		return err
27178	}
27179
27180	errorBody.Seek(0, io.SeekStart)
27181	if len(code) != 0 {
27182		errorCode = restjson.SanitizeErrorCode(code)
27183	}
27184	if len(message) != 0 {
27185		errorMessage = message
27186	}
27187
27188	switch {
27189	case strings.EqualFold("BadRequestException", errorCode):
27190		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27191
27192	case strings.EqualFold("ForbiddenException", errorCode):
27193		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27194
27195	case strings.EqualFold("NotFoundException", errorCode):
27196		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27197
27198	case strings.EqualFold("ServiceFailureException", errorCode):
27199		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27200
27201	case strings.EqualFold("ServiceUnavailableException", errorCode):
27202		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27203
27204	case strings.EqualFold("ThrottledClientException", errorCode):
27205		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27206
27207	case strings.EqualFold("UnauthorizedClientException", errorCode):
27208		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27209
27210	default:
27211		genericError := &smithy.GenericAPIError{
27212			Code:    errorCode,
27213			Message: errorMessage,
27214		}
27215		return genericError
27216
27217	}
27218}
27219
27220func awsRestjson1_deserializeOpDocumentUpdateUserOutput(v **UpdateUserOutput, value interface{}) error {
27221	if v == nil {
27222		return fmt.Errorf("unexpected nil of type %T", v)
27223	}
27224	if value == nil {
27225		return nil
27226	}
27227
27228	shape, ok := value.(map[string]interface{})
27229	if !ok {
27230		return fmt.Errorf("unexpected JSON type %v", value)
27231	}
27232
27233	var sv *UpdateUserOutput
27234	if *v == nil {
27235		sv = &UpdateUserOutput{}
27236	} else {
27237		sv = *v
27238	}
27239
27240	for key, value := range shape {
27241		switch key {
27242		case "User":
27243			if err := awsRestjson1_deserializeDocumentUser(&sv.User, value); err != nil {
27244				return err
27245			}
27246
27247		default:
27248			_, _ = key, value
27249
27250		}
27251	}
27252	*v = sv
27253	return nil
27254}
27255
27256type awsRestjson1_deserializeOpUpdateUserSettings struct {
27257}
27258
27259func (*awsRestjson1_deserializeOpUpdateUserSettings) ID() string {
27260	return "OperationDeserializer"
27261}
27262
27263func (m *awsRestjson1_deserializeOpUpdateUserSettings) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27264	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27265) {
27266	out, metadata, err = next.HandleDeserialize(ctx, in)
27267	if err != nil {
27268		return out, metadata, err
27269	}
27270
27271	response, ok := out.RawResponse.(*smithyhttp.Response)
27272	if !ok {
27273		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27274	}
27275
27276	if response.StatusCode < 200 || response.StatusCode >= 300 {
27277		return out, metadata, awsRestjson1_deserializeOpErrorUpdateUserSettings(response, &metadata)
27278	}
27279	output := &UpdateUserSettingsOutput{}
27280	out.Result = output
27281
27282	if _, err = io.Copy(ioutil.Discard, response.Body); err != nil {
27283		return out, metadata, &smithy.DeserializationError{
27284			Err: fmt.Errorf("failed to discard response body, %w", err),
27285		}
27286	}
27287
27288	return out, metadata, err
27289}
27290
27291func awsRestjson1_deserializeOpErrorUpdateUserSettings(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27292	var errorBuffer bytes.Buffer
27293	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27294		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27295	}
27296	errorBody := bytes.NewReader(errorBuffer.Bytes())
27297
27298	errorCode := "UnknownError"
27299	errorMessage := errorCode
27300
27301	code := response.Header.Get("X-Amzn-ErrorType")
27302	if len(code) != 0 {
27303		errorCode = restjson.SanitizeErrorCode(code)
27304	}
27305
27306	var buff [1024]byte
27307	ringBuffer := smithyio.NewRingBuffer(buff[:])
27308
27309	body := io.TeeReader(errorBody, ringBuffer)
27310	decoder := json.NewDecoder(body)
27311	decoder.UseNumber()
27312	code, message, err := restjson.GetErrorInfo(decoder)
27313	if err != nil {
27314		var snapshot bytes.Buffer
27315		io.Copy(&snapshot, ringBuffer)
27316		err = &smithy.DeserializationError{
27317			Err:      fmt.Errorf("failed to decode response body, %w", err),
27318			Snapshot: snapshot.Bytes(),
27319		}
27320		return err
27321	}
27322
27323	errorBody.Seek(0, io.SeekStart)
27324	if len(code) != 0 {
27325		errorCode = restjson.SanitizeErrorCode(code)
27326	}
27327	if len(message) != 0 {
27328		errorMessage = message
27329	}
27330
27331	switch {
27332	case strings.EqualFold("BadRequestException", errorCode):
27333		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27334
27335	case strings.EqualFold("ForbiddenException", errorCode):
27336		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27337
27338	case strings.EqualFold("NotFoundException", errorCode):
27339		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27340
27341	case strings.EqualFold("ServiceFailureException", errorCode):
27342		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27343
27344	case strings.EqualFold("ServiceUnavailableException", errorCode):
27345		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27346
27347	case strings.EqualFold("ThrottledClientException", errorCode):
27348		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27349
27350	case strings.EqualFold("UnauthorizedClientException", errorCode):
27351		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27352
27353	default:
27354		genericError := &smithy.GenericAPIError{
27355			Code:    errorCode,
27356			Message: errorMessage,
27357		}
27358		return genericError
27359
27360	}
27361}
27362
27363type awsRestjson1_deserializeOpUpdateVoiceConnector struct {
27364}
27365
27366func (*awsRestjson1_deserializeOpUpdateVoiceConnector) ID() string {
27367	return "OperationDeserializer"
27368}
27369
27370func (m *awsRestjson1_deserializeOpUpdateVoiceConnector) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27371	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27372) {
27373	out, metadata, err = next.HandleDeserialize(ctx, in)
27374	if err != nil {
27375		return out, metadata, err
27376	}
27377
27378	response, ok := out.RawResponse.(*smithyhttp.Response)
27379	if !ok {
27380		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27381	}
27382
27383	if response.StatusCode < 200 || response.StatusCode >= 300 {
27384		return out, metadata, awsRestjson1_deserializeOpErrorUpdateVoiceConnector(response, &metadata)
27385	}
27386	output := &UpdateVoiceConnectorOutput{}
27387	out.Result = output
27388
27389	var buff [1024]byte
27390	ringBuffer := smithyio.NewRingBuffer(buff[:])
27391
27392	body := io.TeeReader(response.Body, ringBuffer)
27393
27394	decoder := json.NewDecoder(body)
27395	decoder.UseNumber()
27396	var shape interface{}
27397	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27398		var snapshot bytes.Buffer
27399		io.Copy(&snapshot, ringBuffer)
27400		err = &smithy.DeserializationError{
27401			Err:      fmt.Errorf("failed to decode response body, %w", err),
27402			Snapshot: snapshot.Bytes(),
27403		}
27404		return out, metadata, err
27405	}
27406
27407	err = awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorOutput(&output, shape)
27408	if err != nil {
27409		var snapshot bytes.Buffer
27410		io.Copy(&snapshot, ringBuffer)
27411		return out, metadata, &smithy.DeserializationError{
27412			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27413			Snapshot: snapshot.Bytes(),
27414		}
27415	}
27416
27417	return out, metadata, err
27418}
27419
27420func awsRestjson1_deserializeOpErrorUpdateVoiceConnector(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27421	var errorBuffer bytes.Buffer
27422	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27423		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27424	}
27425	errorBody := bytes.NewReader(errorBuffer.Bytes())
27426
27427	errorCode := "UnknownError"
27428	errorMessage := errorCode
27429
27430	code := response.Header.Get("X-Amzn-ErrorType")
27431	if len(code) != 0 {
27432		errorCode = restjson.SanitizeErrorCode(code)
27433	}
27434
27435	var buff [1024]byte
27436	ringBuffer := smithyio.NewRingBuffer(buff[:])
27437
27438	body := io.TeeReader(errorBody, ringBuffer)
27439	decoder := json.NewDecoder(body)
27440	decoder.UseNumber()
27441	code, message, err := restjson.GetErrorInfo(decoder)
27442	if err != nil {
27443		var snapshot bytes.Buffer
27444		io.Copy(&snapshot, ringBuffer)
27445		err = &smithy.DeserializationError{
27446			Err:      fmt.Errorf("failed to decode response body, %w", err),
27447			Snapshot: snapshot.Bytes(),
27448		}
27449		return err
27450	}
27451
27452	errorBody.Seek(0, io.SeekStart)
27453	if len(code) != 0 {
27454		errorCode = restjson.SanitizeErrorCode(code)
27455	}
27456	if len(message) != 0 {
27457		errorMessage = message
27458	}
27459
27460	switch {
27461	case strings.EqualFold("BadRequestException", errorCode):
27462		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27463
27464	case strings.EqualFold("ForbiddenException", errorCode):
27465		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27466
27467	case strings.EqualFold("NotFoundException", errorCode):
27468		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27469
27470	case strings.EqualFold("ServiceFailureException", errorCode):
27471		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27472
27473	case strings.EqualFold("ServiceUnavailableException", errorCode):
27474		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27475
27476	case strings.EqualFold("ThrottledClientException", errorCode):
27477		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27478
27479	case strings.EqualFold("UnauthorizedClientException", errorCode):
27480		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27481
27482	default:
27483		genericError := &smithy.GenericAPIError{
27484			Code:    errorCode,
27485			Message: errorMessage,
27486		}
27487		return genericError
27488
27489	}
27490}
27491
27492func awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorOutput(v **UpdateVoiceConnectorOutput, value interface{}) error {
27493	if v == nil {
27494		return fmt.Errorf("unexpected nil of type %T", v)
27495	}
27496	if value == nil {
27497		return nil
27498	}
27499
27500	shape, ok := value.(map[string]interface{})
27501	if !ok {
27502		return fmt.Errorf("unexpected JSON type %v", value)
27503	}
27504
27505	var sv *UpdateVoiceConnectorOutput
27506	if *v == nil {
27507		sv = &UpdateVoiceConnectorOutput{}
27508	} else {
27509		sv = *v
27510	}
27511
27512	for key, value := range shape {
27513		switch key {
27514		case "VoiceConnector":
27515			if err := awsRestjson1_deserializeDocumentVoiceConnector(&sv.VoiceConnector, value); err != nil {
27516				return err
27517			}
27518
27519		default:
27520			_, _ = key, value
27521
27522		}
27523	}
27524	*v = sv
27525	return nil
27526}
27527
27528type awsRestjson1_deserializeOpUpdateVoiceConnectorGroup struct {
27529}
27530
27531func (*awsRestjson1_deserializeOpUpdateVoiceConnectorGroup) ID() string {
27532	return "OperationDeserializer"
27533}
27534
27535func (m *awsRestjson1_deserializeOpUpdateVoiceConnectorGroup) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (
27536	out middleware.DeserializeOutput, metadata middleware.Metadata, err error,
27537) {
27538	out, metadata, err = next.HandleDeserialize(ctx, in)
27539	if err != nil {
27540		return out, metadata, err
27541	}
27542
27543	response, ok := out.RawResponse.(*smithyhttp.Response)
27544	if !ok {
27545		return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)}
27546	}
27547
27548	if response.StatusCode < 200 || response.StatusCode >= 300 {
27549		return out, metadata, awsRestjson1_deserializeOpErrorUpdateVoiceConnectorGroup(response, &metadata)
27550	}
27551	output := &UpdateVoiceConnectorGroupOutput{}
27552	out.Result = output
27553
27554	var buff [1024]byte
27555	ringBuffer := smithyio.NewRingBuffer(buff[:])
27556
27557	body := io.TeeReader(response.Body, ringBuffer)
27558
27559	decoder := json.NewDecoder(body)
27560	decoder.UseNumber()
27561	var shape interface{}
27562	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27563		var snapshot bytes.Buffer
27564		io.Copy(&snapshot, ringBuffer)
27565		err = &smithy.DeserializationError{
27566			Err:      fmt.Errorf("failed to decode response body, %w", err),
27567			Snapshot: snapshot.Bytes(),
27568		}
27569		return out, metadata, err
27570	}
27571
27572	err = awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorGroupOutput(&output, shape)
27573	if err != nil {
27574		var snapshot bytes.Buffer
27575		io.Copy(&snapshot, ringBuffer)
27576		return out, metadata, &smithy.DeserializationError{
27577			Err:      fmt.Errorf("failed to decode response body with invalid JSON, %w", err),
27578			Snapshot: snapshot.Bytes(),
27579		}
27580	}
27581
27582	return out, metadata, err
27583}
27584
27585func awsRestjson1_deserializeOpErrorUpdateVoiceConnectorGroup(response *smithyhttp.Response, metadata *middleware.Metadata) error {
27586	var errorBuffer bytes.Buffer
27587	if _, err := io.Copy(&errorBuffer, response.Body); err != nil {
27588		return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)}
27589	}
27590	errorBody := bytes.NewReader(errorBuffer.Bytes())
27591
27592	errorCode := "UnknownError"
27593	errorMessage := errorCode
27594
27595	code := response.Header.Get("X-Amzn-ErrorType")
27596	if len(code) != 0 {
27597		errorCode = restjson.SanitizeErrorCode(code)
27598	}
27599
27600	var buff [1024]byte
27601	ringBuffer := smithyio.NewRingBuffer(buff[:])
27602
27603	body := io.TeeReader(errorBody, ringBuffer)
27604	decoder := json.NewDecoder(body)
27605	decoder.UseNumber()
27606	code, message, err := restjson.GetErrorInfo(decoder)
27607	if err != nil {
27608		var snapshot bytes.Buffer
27609		io.Copy(&snapshot, ringBuffer)
27610		err = &smithy.DeserializationError{
27611			Err:      fmt.Errorf("failed to decode response body, %w", err),
27612			Snapshot: snapshot.Bytes(),
27613		}
27614		return err
27615	}
27616
27617	errorBody.Seek(0, io.SeekStart)
27618	if len(code) != 0 {
27619		errorCode = restjson.SanitizeErrorCode(code)
27620	}
27621	if len(message) != 0 {
27622		errorMessage = message
27623	}
27624
27625	switch {
27626	case strings.EqualFold("BadRequestException", errorCode):
27627		return awsRestjson1_deserializeErrorBadRequestException(response, errorBody)
27628
27629	case strings.EqualFold("ConflictException", errorCode):
27630		return awsRestjson1_deserializeErrorConflictException(response, errorBody)
27631
27632	case strings.EqualFold("ForbiddenException", errorCode):
27633		return awsRestjson1_deserializeErrorForbiddenException(response, errorBody)
27634
27635	case strings.EqualFold("NotFoundException", errorCode):
27636		return awsRestjson1_deserializeErrorNotFoundException(response, errorBody)
27637
27638	case strings.EqualFold("ServiceFailureException", errorCode):
27639		return awsRestjson1_deserializeErrorServiceFailureException(response, errorBody)
27640
27641	case strings.EqualFold("ServiceUnavailableException", errorCode):
27642		return awsRestjson1_deserializeErrorServiceUnavailableException(response, errorBody)
27643
27644	case strings.EqualFold("ThrottledClientException", errorCode):
27645		return awsRestjson1_deserializeErrorThrottledClientException(response, errorBody)
27646
27647	case strings.EqualFold("UnauthorizedClientException", errorCode):
27648		return awsRestjson1_deserializeErrorUnauthorizedClientException(response, errorBody)
27649
27650	default:
27651		genericError := &smithy.GenericAPIError{
27652			Code:    errorCode,
27653			Message: errorMessage,
27654		}
27655		return genericError
27656
27657	}
27658}
27659
27660func awsRestjson1_deserializeOpDocumentUpdateVoiceConnectorGroupOutput(v **UpdateVoiceConnectorGroupOutput, value interface{}) error {
27661	if v == nil {
27662		return fmt.Errorf("unexpected nil of type %T", v)
27663	}
27664	if value == nil {
27665		return nil
27666	}
27667
27668	shape, ok := value.(map[string]interface{})
27669	if !ok {
27670		return fmt.Errorf("unexpected JSON type %v", value)
27671	}
27672
27673	var sv *UpdateVoiceConnectorGroupOutput
27674	if *v == nil {
27675		sv = &UpdateVoiceConnectorGroupOutput{}
27676	} else {
27677		sv = *v
27678	}
27679
27680	for key, value := range shape {
27681		switch key {
27682		case "VoiceConnectorGroup":
27683			if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&sv.VoiceConnectorGroup, value); err != nil {
27684				return err
27685			}
27686
27687		default:
27688			_, _ = key, value
27689
27690		}
27691	}
27692	*v = sv
27693	return nil
27694}
27695
27696func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27697	output := &types.AccessDeniedException{}
27698	var buff [1024]byte
27699	ringBuffer := smithyio.NewRingBuffer(buff[:])
27700
27701	body := io.TeeReader(errorBody, ringBuffer)
27702	decoder := json.NewDecoder(body)
27703	decoder.UseNumber()
27704	var shape interface{}
27705	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27706		var snapshot bytes.Buffer
27707		io.Copy(&snapshot, ringBuffer)
27708		err = &smithy.DeserializationError{
27709			Err:      fmt.Errorf("failed to decode response body, %w", err),
27710			Snapshot: snapshot.Bytes(),
27711		}
27712		return err
27713	}
27714
27715	err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape)
27716
27717	if err != nil {
27718		var snapshot bytes.Buffer
27719		io.Copy(&snapshot, ringBuffer)
27720		err = &smithy.DeserializationError{
27721			Err:      fmt.Errorf("failed to decode response body, %w", err),
27722			Snapshot: snapshot.Bytes(),
27723		}
27724		return err
27725	}
27726
27727	errorBody.Seek(0, io.SeekStart)
27728
27729	return output
27730}
27731
27732func awsRestjson1_deserializeErrorBadRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27733	output := &types.BadRequestException{}
27734	var buff [1024]byte
27735	ringBuffer := smithyio.NewRingBuffer(buff[:])
27736
27737	body := io.TeeReader(errorBody, ringBuffer)
27738	decoder := json.NewDecoder(body)
27739	decoder.UseNumber()
27740	var shape interface{}
27741	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27742		var snapshot bytes.Buffer
27743		io.Copy(&snapshot, ringBuffer)
27744		err = &smithy.DeserializationError{
27745			Err:      fmt.Errorf("failed to decode response body, %w", err),
27746			Snapshot: snapshot.Bytes(),
27747		}
27748		return err
27749	}
27750
27751	err := awsRestjson1_deserializeDocumentBadRequestException(&output, shape)
27752
27753	if err != nil {
27754		var snapshot bytes.Buffer
27755		io.Copy(&snapshot, ringBuffer)
27756		err = &smithy.DeserializationError{
27757			Err:      fmt.Errorf("failed to decode response body, %w", err),
27758			Snapshot: snapshot.Bytes(),
27759		}
27760		return err
27761	}
27762
27763	errorBody.Seek(0, io.SeekStart)
27764
27765	return output
27766}
27767
27768func awsRestjson1_deserializeErrorConflictException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27769	output := &types.ConflictException{}
27770	var buff [1024]byte
27771	ringBuffer := smithyio.NewRingBuffer(buff[:])
27772
27773	body := io.TeeReader(errorBody, ringBuffer)
27774	decoder := json.NewDecoder(body)
27775	decoder.UseNumber()
27776	var shape interface{}
27777	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27778		var snapshot bytes.Buffer
27779		io.Copy(&snapshot, ringBuffer)
27780		err = &smithy.DeserializationError{
27781			Err:      fmt.Errorf("failed to decode response body, %w", err),
27782			Snapshot: snapshot.Bytes(),
27783		}
27784		return err
27785	}
27786
27787	err := awsRestjson1_deserializeDocumentConflictException(&output, shape)
27788
27789	if err != nil {
27790		var snapshot bytes.Buffer
27791		io.Copy(&snapshot, ringBuffer)
27792		err = &smithy.DeserializationError{
27793			Err:      fmt.Errorf("failed to decode response body, %w", err),
27794			Snapshot: snapshot.Bytes(),
27795		}
27796		return err
27797	}
27798
27799	errorBody.Seek(0, io.SeekStart)
27800
27801	return output
27802}
27803
27804func awsRestjson1_deserializeErrorForbiddenException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27805	output := &types.ForbiddenException{}
27806	var buff [1024]byte
27807	ringBuffer := smithyio.NewRingBuffer(buff[:])
27808
27809	body := io.TeeReader(errorBody, ringBuffer)
27810	decoder := json.NewDecoder(body)
27811	decoder.UseNumber()
27812	var shape interface{}
27813	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27814		var snapshot bytes.Buffer
27815		io.Copy(&snapshot, ringBuffer)
27816		err = &smithy.DeserializationError{
27817			Err:      fmt.Errorf("failed to decode response body, %w", err),
27818			Snapshot: snapshot.Bytes(),
27819		}
27820		return err
27821	}
27822
27823	err := awsRestjson1_deserializeDocumentForbiddenException(&output, shape)
27824
27825	if err != nil {
27826		var snapshot bytes.Buffer
27827		io.Copy(&snapshot, ringBuffer)
27828		err = &smithy.DeserializationError{
27829			Err:      fmt.Errorf("failed to decode response body, %w", err),
27830			Snapshot: snapshot.Bytes(),
27831		}
27832		return err
27833	}
27834
27835	errorBody.Seek(0, io.SeekStart)
27836
27837	return output
27838}
27839
27840func awsRestjson1_deserializeErrorNotFoundException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27841	output := &types.NotFoundException{}
27842	var buff [1024]byte
27843	ringBuffer := smithyio.NewRingBuffer(buff[:])
27844
27845	body := io.TeeReader(errorBody, ringBuffer)
27846	decoder := json.NewDecoder(body)
27847	decoder.UseNumber()
27848	var shape interface{}
27849	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27850		var snapshot bytes.Buffer
27851		io.Copy(&snapshot, ringBuffer)
27852		err = &smithy.DeserializationError{
27853			Err:      fmt.Errorf("failed to decode response body, %w", err),
27854			Snapshot: snapshot.Bytes(),
27855		}
27856		return err
27857	}
27858
27859	err := awsRestjson1_deserializeDocumentNotFoundException(&output, shape)
27860
27861	if err != nil {
27862		var snapshot bytes.Buffer
27863		io.Copy(&snapshot, ringBuffer)
27864		err = &smithy.DeserializationError{
27865			Err:      fmt.Errorf("failed to decode response body, %w", err),
27866			Snapshot: snapshot.Bytes(),
27867		}
27868		return err
27869	}
27870
27871	errorBody.Seek(0, io.SeekStart)
27872
27873	return output
27874}
27875
27876func awsRestjson1_deserializeErrorResourceLimitExceededException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27877	output := &types.ResourceLimitExceededException{}
27878	var buff [1024]byte
27879	ringBuffer := smithyio.NewRingBuffer(buff[:])
27880
27881	body := io.TeeReader(errorBody, ringBuffer)
27882	decoder := json.NewDecoder(body)
27883	decoder.UseNumber()
27884	var shape interface{}
27885	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27886		var snapshot bytes.Buffer
27887		io.Copy(&snapshot, ringBuffer)
27888		err = &smithy.DeserializationError{
27889			Err:      fmt.Errorf("failed to decode response body, %w", err),
27890			Snapshot: snapshot.Bytes(),
27891		}
27892		return err
27893	}
27894
27895	err := awsRestjson1_deserializeDocumentResourceLimitExceededException(&output, shape)
27896
27897	if err != nil {
27898		var snapshot bytes.Buffer
27899		io.Copy(&snapshot, ringBuffer)
27900		err = &smithy.DeserializationError{
27901			Err:      fmt.Errorf("failed to decode response body, %w", err),
27902			Snapshot: snapshot.Bytes(),
27903		}
27904		return err
27905	}
27906
27907	errorBody.Seek(0, io.SeekStart)
27908
27909	return output
27910}
27911
27912func awsRestjson1_deserializeErrorServiceFailureException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27913	output := &types.ServiceFailureException{}
27914	var buff [1024]byte
27915	ringBuffer := smithyio.NewRingBuffer(buff[:])
27916
27917	body := io.TeeReader(errorBody, ringBuffer)
27918	decoder := json.NewDecoder(body)
27919	decoder.UseNumber()
27920	var shape interface{}
27921	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27922		var snapshot bytes.Buffer
27923		io.Copy(&snapshot, ringBuffer)
27924		err = &smithy.DeserializationError{
27925			Err:      fmt.Errorf("failed to decode response body, %w", err),
27926			Snapshot: snapshot.Bytes(),
27927		}
27928		return err
27929	}
27930
27931	err := awsRestjson1_deserializeDocumentServiceFailureException(&output, shape)
27932
27933	if err != nil {
27934		var snapshot bytes.Buffer
27935		io.Copy(&snapshot, ringBuffer)
27936		err = &smithy.DeserializationError{
27937			Err:      fmt.Errorf("failed to decode response body, %w", err),
27938			Snapshot: snapshot.Bytes(),
27939		}
27940		return err
27941	}
27942
27943	errorBody.Seek(0, io.SeekStart)
27944
27945	return output
27946}
27947
27948func awsRestjson1_deserializeErrorServiceUnavailableException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27949	output := &types.ServiceUnavailableException{}
27950	var buff [1024]byte
27951	ringBuffer := smithyio.NewRingBuffer(buff[:])
27952
27953	body := io.TeeReader(errorBody, ringBuffer)
27954	decoder := json.NewDecoder(body)
27955	decoder.UseNumber()
27956	var shape interface{}
27957	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27958		var snapshot bytes.Buffer
27959		io.Copy(&snapshot, ringBuffer)
27960		err = &smithy.DeserializationError{
27961			Err:      fmt.Errorf("failed to decode response body, %w", err),
27962			Snapshot: snapshot.Bytes(),
27963		}
27964		return err
27965	}
27966
27967	err := awsRestjson1_deserializeDocumentServiceUnavailableException(&output, shape)
27968
27969	if err != nil {
27970		var snapshot bytes.Buffer
27971		io.Copy(&snapshot, ringBuffer)
27972		err = &smithy.DeserializationError{
27973			Err:      fmt.Errorf("failed to decode response body, %w", err),
27974			Snapshot: snapshot.Bytes(),
27975		}
27976		return err
27977	}
27978
27979	errorBody.Seek(0, io.SeekStart)
27980
27981	return output
27982}
27983
27984func awsRestjson1_deserializeErrorThrottledClientException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
27985	output := &types.ThrottledClientException{}
27986	var buff [1024]byte
27987	ringBuffer := smithyio.NewRingBuffer(buff[:])
27988
27989	body := io.TeeReader(errorBody, ringBuffer)
27990	decoder := json.NewDecoder(body)
27991	decoder.UseNumber()
27992	var shape interface{}
27993	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
27994		var snapshot bytes.Buffer
27995		io.Copy(&snapshot, ringBuffer)
27996		err = &smithy.DeserializationError{
27997			Err:      fmt.Errorf("failed to decode response body, %w", err),
27998			Snapshot: snapshot.Bytes(),
27999		}
28000		return err
28001	}
28002
28003	err := awsRestjson1_deserializeDocumentThrottledClientException(&output, shape)
28004
28005	if err != nil {
28006		var snapshot bytes.Buffer
28007		io.Copy(&snapshot, ringBuffer)
28008		err = &smithy.DeserializationError{
28009			Err:      fmt.Errorf("failed to decode response body, %w", err),
28010			Snapshot: snapshot.Bytes(),
28011		}
28012		return err
28013	}
28014
28015	errorBody.Seek(0, io.SeekStart)
28016
28017	return output
28018}
28019
28020func awsRestjson1_deserializeErrorUnauthorizedClientException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
28021	output := &types.UnauthorizedClientException{}
28022	var buff [1024]byte
28023	ringBuffer := smithyio.NewRingBuffer(buff[:])
28024
28025	body := io.TeeReader(errorBody, ringBuffer)
28026	decoder := json.NewDecoder(body)
28027	decoder.UseNumber()
28028	var shape interface{}
28029	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28030		var snapshot bytes.Buffer
28031		io.Copy(&snapshot, ringBuffer)
28032		err = &smithy.DeserializationError{
28033			Err:      fmt.Errorf("failed to decode response body, %w", err),
28034			Snapshot: snapshot.Bytes(),
28035		}
28036		return err
28037	}
28038
28039	err := awsRestjson1_deserializeDocumentUnauthorizedClientException(&output, shape)
28040
28041	if err != nil {
28042		var snapshot bytes.Buffer
28043		io.Copy(&snapshot, ringBuffer)
28044		err = &smithy.DeserializationError{
28045			Err:      fmt.Errorf("failed to decode response body, %w", err),
28046			Snapshot: snapshot.Bytes(),
28047		}
28048		return err
28049	}
28050
28051	errorBody.Seek(0, io.SeekStart)
28052
28053	return output
28054}
28055
28056func awsRestjson1_deserializeErrorUnprocessableEntityException(response *smithyhttp.Response, errorBody *bytes.Reader) error {
28057	output := &types.UnprocessableEntityException{}
28058	var buff [1024]byte
28059	ringBuffer := smithyio.NewRingBuffer(buff[:])
28060
28061	body := io.TeeReader(errorBody, ringBuffer)
28062	decoder := json.NewDecoder(body)
28063	decoder.UseNumber()
28064	var shape interface{}
28065	if err := decoder.Decode(&shape); err != nil && err != io.EOF {
28066		var snapshot bytes.Buffer
28067		io.Copy(&snapshot, ringBuffer)
28068		err = &smithy.DeserializationError{
28069			Err:      fmt.Errorf("failed to decode response body, %w", err),
28070			Snapshot: snapshot.Bytes(),
28071		}
28072		return err
28073	}
28074
28075	err := awsRestjson1_deserializeDocumentUnprocessableEntityException(&output, shape)
28076
28077	if err != nil {
28078		var snapshot bytes.Buffer
28079		io.Copy(&snapshot, ringBuffer)
28080		err = &smithy.DeserializationError{
28081			Err:      fmt.Errorf("failed to decode response body, %w", err),
28082			Snapshot: snapshot.Bytes(),
28083		}
28084		return err
28085	}
28086
28087	errorBody.Seek(0, io.SeekStart)
28088
28089	return output
28090}
28091
28092func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error {
28093	if v == nil {
28094		return fmt.Errorf("unexpected nil of type %T", v)
28095	}
28096	if value == nil {
28097		return nil
28098	}
28099
28100	shape, ok := value.(map[string]interface{})
28101	if !ok {
28102		return fmt.Errorf("unexpected JSON type %v", value)
28103	}
28104
28105	var sv *types.AccessDeniedException
28106	if *v == nil {
28107		sv = &types.AccessDeniedException{}
28108	} else {
28109		sv = *v
28110	}
28111
28112	for key, value := range shape {
28113		switch key {
28114		case "Code":
28115			if value != nil {
28116				jtv, ok := value.(string)
28117				if !ok {
28118					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
28119				}
28120				sv.Code = types.ErrorCode(jtv)
28121			}
28122
28123		case "Message":
28124			if value != nil {
28125				jtv, ok := value.(string)
28126				if !ok {
28127					return fmt.Errorf("expected String to be of type string, got %T instead", value)
28128				}
28129				sv.Message = ptr.String(jtv)
28130			}
28131
28132		default:
28133			_, _ = key, value
28134
28135		}
28136	}
28137	*v = sv
28138	return nil
28139}
28140
28141func awsRestjson1_deserializeDocumentAccount(v **types.Account, value interface{}) error {
28142	if v == nil {
28143		return fmt.Errorf("unexpected nil of type %T", v)
28144	}
28145	if value == nil {
28146		return nil
28147	}
28148
28149	shape, ok := value.(map[string]interface{})
28150	if !ok {
28151		return fmt.Errorf("unexpected JSON type %v", value)
28152	}
28153
28154	var sv *types.Account
28155	if *v == nil {
28156		sv = &types.Account{}
28157	} else {
28158		sv = *v
28159	}
28160
28161	for key, value := range shape {
28162		switch key {
28163		case "AccountId":
28164			if value != nil {
28165				jtv, ok := value.(string)
28166				if !ok {
28167					return fmt.Errorf("expected String to be of type string, got %T instead", value)
28168				}
28169				sv.AccountId = ptr.String(jtv)
28170			}
28171
28172		case "AccountType":
28173			if value != nil {
28174				jtv, ok := value.(string)
28175				if !ok {
28176					return fmt.Errorf("expected AccountType to be of type string, got %T instead", value)
28177				}
28178				sv.AccountType = types.AccountType(jtv)
28179			}
28180
28181		case "AwsAccountId":
28182			if value != nil {
28183				jtv, ok := value.(string)
28184				if !ok {
28185					return fmt.Errorf("expected String to be of type string, got %T instead", value)
28186				}
28187				sv.AwsAccountId = ptr.String(jtv)
28188			}
28189
28190		case "CreatedTimestamp":
28191			if value != nil {
28192				jtv, ok := value.(string)
28193				if !ok {
28194					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
28195				}
28196				t, err := smithytime.ParseDateTime(jtv)
28197				if err != nil {
28198					return err
28199				}
28200				sv.CreatedTimestamp = ptr.Time(t)
28201			}
28202
28203		case "DefaultLicense":
28204			if value != nil {
28205				jtv, ok := value.(string)
28206				if !ok {
28207					return fmt.Errorf("expected License to be of type string, got %T instead", value)
28208				}
28209				sv.DefaultLicense = types.License(jtv)
28210			}
28211
28212		case "Name":
28213			if value != nil {
28214				jtv, ok := value.(string)
28215				if !ok {
28216					return fmt.Errorf("expected String to be of type string, got %T instead", value)
28217				}
28218				sv.Name = ptr.String(jtv)
28219			}
28220
28221		case "SigninDelegateGroups":
28222			if err := awsRestjson1_deserializeDocumentSigninDelegateGroupList(&sv.SigninDelegateGroups, value); err != nil {
28223				return err
28224			}
28225
28226		case "SupportedLicenses":
28227			if err := awsRestjson1_deserializeDocumentLicenseList(&sv.SupportedLicenses, value); err != nil {
28228				return err
28229			}
28230
28231		default:
28232			_, _ = key, value
28233
28234		}
28235	}
28236	*v = sv
28237	return nil
28238}
28239
28240func awsRestjson1_deserializeDocumentAccountList(v *[]types.Account, value interface{}) error {
28241	if v == nil {
28242		return fmt.Errorf("unexpected nil of type %T", v)
28243	}
28244	if value == nil {
28245		return nil
28246	}
28247
28248	shape, ok := value.([]interface{})
28249	if !ok {
28250		return fmt.Errorf("unexpected JSON type %v", value)
28251	}
28252
28253	var cv []types.Account
28254	if *v == nil {
28255		cv = []types.Account{}
28256	} else {
28257		cv = *v
28258	}
28259
28260	for _, value := range shape {
28261		var col types.Account
28262		destAddr := &col
28263		if err := awsRestjson1_deserializeDocumentAccount(&destAddr, value); err != nil {
28264			return err
28265		}
28266		col = *destAddr
28267		cv = append(cv, col)
28268
28269	}
28270	*v = cv
28271	return nil
28272}
28273
28274func awsRestjson1_deserializeDocumentAccountSettings(v **types.AccountSettings, value interface{}) error {
28275	if v == nil {
28276		return fmt.Errorf("unexpected nil of type %T", v)
28277	}
28278	if value == nil {
28279		return nil
28280	}
28281
28282	shape, ok := value.(map[string]interface{})
28283	if !ok {
28284		return fmt.Errorf("unexpected JSON type %v", value)
28285	}
28286
28287	var sv *types.AccountSettings
28288	if *v == nil {
28289		sv = &types.AccountSettings{}
28290	} else {
28291		sv = *v
28292	}
28293
28294	for key, value := range shape {
28295		switch key {
28296		case "DisableRemoteControl":
28297			if value != nil {
28298				jtv, ok := value.(bool)
28299				if !ok {
28300					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28301				}
28302				sv.DisableRemoteControl = ptr.Bool(jtv)
28303			}
28304
28305		case "EnableDialOut":
28306			if value != nil {
28307				jtv, ok := value.(bool)
28308				if !ok {
28309					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28310				}
28311				sv.EnableDialOut = ptr.Bool(jtv)
28312			}
28313
28314		default:
28315			_, _ = key, value
28316
28317		}
28318	}
28319	*v = sv
28320	return nil
28321}
28322
28323func awsRestjson1_deserializeDocumentAlexaForBusinessMetadata(v **types.AlexaForBusinessMetadata, value interface{}) error {
28324	if v == nil {
28325		return fmt.Errorf("unexpected nil of type %T", v)
28326	}
28327	if value == nil {
28328		return nil
28329	}
28330
28331	shape, ok := value.(map[string]interface{})
28332	if !ok {
28333		return fmt.Errorf("unexpected JSON type %v", value)
28334	}
28335
28336	var sv *types.AlexaForBusinessMetadata
28337	if *v == nil {
28338		sv = &types.AlexaForBusinessMetadata{}
28339	} else {
28340		sv = *v
28341	}
28342
28343	for key, value := range shape {
28344		switch key {
28345		case "AlexaForBusinessRoomArn":
28346			if value != nil {
28347				jtv, ok := value.(string)
28348				if !ok {
28349					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
28350				}
28351				sv.AlexaForBusinessRoomArn = ptr.String(jtv)
28352			}
28353
28354		case "IsAlexaForBusinessEnabled":
28355			if value != nil {
28356				jtv, ok := value.(bool)
28357				if !ok {
28358					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
28359				}
28360				sv.IsAlexaForBusinessEnabled = ptr.Bool(jtv)
28361			}
28362
28363		default:
28364			_, _ = key, value
28365
28366		}
28367	}
28368	*v = sv
28369	return nil
28370}
28371
28372func awsRestjson1_deserializeDocumentAppInstance(v **types.AppInstance, value interface{}) error {
28373	if v == nil {
28374		return fmt.Errorf("unexpected nil of type %T", v)
28375	}
28376	if value == nil {
28377		return nil
28378	}
28379
28380	shape, ok := value.(map[string]interface{})
28381	if !ok {
28382		return fmt.Errorf("unexpected JSON type %v", value)
28383	}
28384
28385	var sv *types.AppInstance
28386	if *v == nil {
28387		sv = &types.AppInstance{}
28388	} else {
28389		sv = *v
28390	}
28391
28392	for key, value := range shape {
28393		switch key {
28394		case "AppInstanceArn":
28395			if value != nil {
28396				jtv, ok := value.(string)
28397				if !ok {
28398					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
28399				}
28400				sv.AppInstanceArn = ptr.String(jtv)
28401			}
28402
28403		case "CreatedTimestamp":
28404			if value != nil {
28405				jtv, ok := value.(json.Number)
28406				if !ok {
28407					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
28408				}
28409				f64, err := jtv.Float64()
28410				if err != nil {
28411					return err
28412				}
28413				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
28414			}
28415
28416		case "LastUpdatedTimestamp":
28417			if value != nil {
28418				jtv, ok := value.(json.Number)
28419				if !ok {
28420					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
28421				}
28422				f64, err := jtv.Float64()
28423				if err != nil {
28424					return err
28425				}
28426				sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
28427			}
28428
28429		case "Metadata":
28430			if value != nil {
28431				jtv, ok := value.(string)
28432				if !ok {
28433					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
28434				}
28435				sv.Metadata = ptr.String(jtv)
28436			}
28437
28438		case "Name":
28439			if value != nil {
28440				jtv, ok := value.(string)
28441				if !ok {
28442					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
28443				}
28444				sv.Name = ptr.String(jtv)
28445			}
28446
28447		default:
28448			_, _ = key, value
28449
28450		}
28451	}
28452	*v = sv
28453	return nil
28454}
28455
28456func awsRestjson1_deserializeDocumentAppInstanceAdmin(v **types.AppInstanceAdmin, value interface{}) error {
28457	if v == nil {
28458		return fmt.Errorf("unexpected nil of type %T", v)
28459	}
28460	if value == nil {
28461		return nil
28462	}
28463
28464	shape, ok := value.(map[string]interface{})
28465	if !ok {
28466		return fmt.Errorf("unexpected JSON type %v", value)
28467	}
28468
28469	var sv *types.AppInstanceAdmin
28470	if *v == nil {
28471		sv = &types.AppInstanceAdmin{}
28472	} else {
28473		sv = *v
28474	}
28475
28476	for key, value := range shape {
28477		switch key {
28478		case "Admin":
28479			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Admin, value); err != nil {
28480				return err
28481			}
28482
28483		case "AppInstanceArn":
28484			if value != nil {
28485				jtv, ok := value.(string)
28486				if !ok {
28487					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
28488				}
28489				sv.AppInstanceArn = ptr.String(jtv)
28490			}
28491
28492		case "CreatedTimestamp":
28493			if value != nil {
28494				jtv, ok := value.(json.Number)
28495				if !ok {
28496					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
28497				}
28498				f64, err := jtv.Float64()
28499				if err != nil {
28500					return err
28501				}
28502				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
28503			}
28504
28505		default:
28506			_, _ = key, value
28507
28508		}
28509	}
28510	*v = sv
28511	return nil
28512}
28513
28514func awsRestjson1_deserializeDocumentAppInstanceAdminList(v *[]types.AppInstanceAdminSummary, value interface{}) error {
28515	if v == nil {
28516		return fmt.Errorf("unexpected nil of type %T", v)
28517	}
28518	if value == nil {
28519		return nil
28520	}
28521
28522	shape, ok := value.([]interface{})
28523	if !ok {
28524		return fmt.Errorf("unexpected JSON type %v", value)
28525	}
28526
28527	var cv []types.AppInstanceAdminSummary
28528	if *v == nil {
28529		cv = []types.AppInstanceAdminSummary{}
28530	} else {
28531		cv = *v
28532	}
28533
28534	for _, value := range shape {
28535		var col types.AppInstanceAdminSummary
28536		destAddr := &col
28537		if err := awsRestjson1_deserializeDocumentAppInstanceAdminSummary(&destAddr, value); err != nil {
28538			return err
28539		}
28540		col = *destAddr
28541		cv = append(cv, col)
28542
28543	}
28544	*v = cv
28545	return nil
28546}
28547
28548func awsRestjson1_deserializeDocumentAppInstanceAdminSummary(v **types.AppInstanceAdminSummary, value interface{}) error {
28549	if v == nil {
28550		return fmt.Errorf("unexpected nil of type %T", v)
28551	}
28552	if value == nil {
28553		return nil
28554	}
28555
28556	shape, ok := value.(map[string]interface{})
28557	if !ok {
28558		return fmt.Errorf("unexpected JSON type %v", value)
28559	}
28560
28561	var sv *types.AppInstanceAdminSummary
28562	if *v == nil {
28563		sv = &types.AppInstanceAdminSummary{}
28564	} else {
28565		sv = *v
28566	}
28567
28568	for key, value := range shape {
28569		switch key {
28570		case "Admin":
28571			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Admin, value); err != nil {
28572				return err
28573			}
28574
28575		default:
28576			_, _ = key, value
28577
28578		}
28579	}
28580	*v = sv
28581	return nil
28582}
28583
28584func awsRestjson1_deserializeDocumentAppInstanceList(v *[]types.AppInstanceSummary, value interface{}) error {
28585	if v == nil {
28586		return fmt.Errorf("unexpected nil of type %T", v)
28587	}
28588	if value == nil {
28589		return nil
28590	}
28591
28592	shape, ok := value.([]interface{})
28593	if !ok {
28594		return fmt.Errorf("unexpected JSON type %v", value)
28595	}
28596
28597	var cv []types.AppInstanceSummary
28598	if *v == nil {
28599		cv = []types.AppInstanceSummary{}
28600	} else {
28601		cv = *v
28602	}
28603
28604	for _, value := range shape {
28605		var col types.AppInstanceSummary
28606		destAddr := &col
28607		if err := awsRestjson1_deserializeDocumentAppInstanceSummary(&destAddr, value); err != nil {
28608			return err
28609		}
28610		col = *destAddr
28611		cv = append(cv, col)
28612
28613	}
28614	*v = cv
28615	return nil
28616}
28617
28618func awsRestjson1_deserializeDocumentAppInstanceRetentionSettings(v **types.AppInstanceRetentionSettings, value interface{}) error {
28619	if v == nil {
28620		return fmt.Errorf("unexpected nil of type %T", v)
28621	}
28622	if value == nil {
28623		return nil
28624	}
28625
28626	shape, ok := value.(map[string]interface{})
28627	if !ok {
28628		return fmt.Errorf("unexpected JSON type %v", value)
28629	}
28630
28631	var sv *types.AppInstanceRetentionSettings
28632	if *v == nil {
28633		sv = &types.AppInstanceRetentionSettings{}
28634	} else {
28635		sv = *v
28636	}
28637
28638	for key, value := range shape {
28639		switch key {
28640		case "ChannelRetentionSettings":
28641			if err := awsRestjson1_deserializeDocumentChannelRetentionSettings(&sv.ChannelRetentionSettings, value); err != nil {
28642				return err
28643			}
28644
28645		default:
28646			_, _ = key, value
28647
28648		}
28649	}
28650	*v = sv
28651	return nil
28652}
28653
28654func awsRestjson1_deserializeDocumentAppInstanceStreamingConfiguration(v **types.AppInstanceStreamingConfiguration, value interface{}) error {
28655	if v == nil {
28656		return fmt.Errorf("unexpected nil of type %T", v)
28657	}
28658	if value == nil {
28659		return nil
28660	}
28661
28662	shape, ok := value.(map[string]interface{})
28663	if !ok {
28664		return fmt.Errorf("unexpected JSON type %v", value)
28665	}
28666
28667	var sv *types.AppInstanceStreamingConfiguration
28668	if *v == nil {
28669		sv = &types.AppInstanceStreamingConfiguration{}
28670	} else {
28671		sv = *v
28672	}
28673
28674	for key, value := range shape {
28675		switch key {
28676		case "AppInstanceDataType":
28677			if value != nil {
28678				jtv, ok := value.(string)
28679				if !ok {
28680					return fmt.Errorf("expected AppInstanceDataType to be of type string, got %T instead", value)
28681				}
28682				sv.AppInstanceDataType = types.AppInstanceDataType(jtv)
28683			}
28684
28685		case "ResourceArn":
28686			if value != nil {
28687				jtv, ok := value.(string)
28688				if !ok {
28689					return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
28690				}
28691				sv.ResourceArn = ptr.String(jtv)
28692			}
28693
28694		default:
28695			_, _ = key, value
28696
28697		}
28698	}
28699	*v = sv
28700	return nil
28701}
28702
28703func awsRestjson1_deserializeDocumentAppInstanceStreamingConfigurationList(v *[]types.AppInstanceStreamingConfiguration, value interface{}) error {
28704	if v == nil {
28705		return fmt.Errorf("unexpected nil of type %T", v)
28706	}
28707	if value == nil {
28708		return nil
28709	}
28710
28711	shape, ok := value.([]interface{})
28712	if !ok {
28713		return fmt.Errorf("unexpected JSON type %v", value)
28714	}
28715
28716	var cv []types.AppInstanceStreamingConfiguration
28717	if *v == nil {
28718		cv = []types.AppInstanceStreamingConfiguration{}
28719	} else {
28720		cv = *v
28721	}
28722
28723	for _, value := range shape {
28724		var col types.AppInstanceStreamingConfiguration
28725		destAddr := &col
28726		if err := awsRestjson1_deserializeDocumentAppInstanceStreamingConfiguration(&destAddr, value); err != nil {
28727			return err
28728		}
28729		col = *destAddr
28730		cv = append(cv, col)
28731
28732	}
28733	*v = cv
28734	return nil
28735}
28736
28737func awsRestjson1_deserializeDocumentAppInstanceSummary(v **types.AppInstanceSummary, value interface{}) error {
28738	if v == nil {
28739		return fmt.Errorf("unexpected nil of type %T", v)
28740	}
28741	if value == nil {
28742		return nil
28743	}
28744
28745	shape, ok := value.(map[string]interface{})
28746	if !ok {
28747		return fmt.Errorf("unexpected JSON type %v", value)
28748	}
28749
28750	var sv *types.AppInstanceSummary
28751	if *v == nil {
28752		sv = &types.AppInstanceSummary{}
28753	} else {
28754		sv = *v
28755	}
28756
28757	for key, value := range shape {
28758		switch key {
28759		case "AppInstanceArn":
28760			if value != nil {
28761				jtv, ok := value.(string)
28762				if !ok {
28763					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
28764				}
28765				sv.AppInstanceArn = ptr.String(jtv)
28766			}
28767
28768		case "Metadata":
28769			if value != nil {
28770				jtv, ok := value.(string)
28771				if !ok {
28772					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
28773				}
28774				sv.Metadata = ptr.String(jtv)
28775			}
28776
28777		case "Name":
28778			if value != nil {
28779				jtv, ok := value.(string)
28780				if !ok {
28781					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
28782				}
28783				sv.Name = ptr.String(jtv)
28784			}
28785
28786		default:
28787			_, _ = key, value
28788
28789		}
28790	}
28791	*v = sv
28792	return nil
28793}
28794
28795func awsRestjson1_deserializeDocumentAppInstanceUser(v **types.AppInstanceUser, value interface{}) error {
28796	if v == nil {
28797		return fmt.Errorf("unexpected nil of type %T", v)
28798	}
28799	if value == nil {
28800		return nil
28801	}
28802
28803	shape, ok := value.(map[string]interface{})
28804	if !ok {
28805		return fmt.Errorf("unexpected JSON type %v", value)
28806	}
28807
28808	var sv *types.AppInstanceUser
28809	if *v == nil {
28810		sv = &types.AppInstanceUser{}
28811	} else {
28812		sv = *v
28813	}
28814
28815	for key, value := range shape {
28816		switch key {
28817		case "AppInstanceUserArn":
28818			if value != nil {
28819				jtv, ok := value.(string)
28820				if !ok {
28821					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
28822				}
28823				sv.AppInstanceUserArn = ptr.String(jtv)
28824			}
28825
28826		case "CreatedTimestamp":
28827			if value != nil {
28828				jtv, ok := value.(json.Number)
28829				if !ok {
28830					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
28831				}
28832				f64, err := jtv.Float64()
28833				if err != nil {
28834					return err
28835				}
28836				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
28837			}
28838
28839		case "LastUpdatedTimestamp":
28840			if value != nil {
28841				jtv, ok := value.(json.Number)
28842				if !ok {
28843					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
28844				}
28845				f64, err := jtv.Float64()
28846				if err != nil {
28847					return err
28848				}
28849				sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
28850			}
28851
28852		case "Metadata":
28853			if value != nil {
28854				jtv, ok := value.(string)
28855				if !ok {
28856					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
28857				}
28858				sv.Metadata = ptr.String(jtv)
28859			}
28860
28861		case "Name":
28862			if value != nil {
28863				jtv, ok := value.(string)
28864				if !ok {
28865					return fmt.Errorf("expected UserName to be of type string, got %T instead", value)
28866				}
28867				sv.Name = ptr.String(jtv)
28868			}
28869
28870		default:
28871			_, _ = key, value
28872
28873		}
28874	}
28875	*v = sv
28876	return nil
28877}
28878
28879func awsRestjson1_deserializeDocumentAppInstanceUserList(v *[]types.AppInstanceUserSummary, value interface{}) error {
28880	if v == nil {
28881		return fmt.Errorf("unexpected nil of type %T", v)
28882	}
28883	if value == nil {
28884		return nil
28885	}
28886
28887	shape, ok := value.([]interface{})
28888	if !ok {
28889		return fmt.Errorf("unexpected JSON type %v", value)
28890	}
28891
28892	var cv []types.AppInstanceUserSummary
28893	if *v == nil {
28894		cv = []types.AppInstanceUserSummary{}
28895	} else {
28896		cv = *v
28897	}
28898
28899	for _, value := range shape {
28900		var col types.AppInstanceUserSummary
28901		destAddr := &col
28902		if err := awsRestjson1_deserializeDocumentAppInstanceUserSummary(&destAddr, value); err != nil {
28903			return err
28904		}
28905		col = *destAddr
28906		cv = append(cv, col)
28907
28908	}
28909	*v = cv
28910	return nil
28911}
28912
28913func awsRestjson1_deserializeDocumentAppInstanceUserMembershipSummary(v **types.AppInstanceUserMembershipSummary, value interface{}) error {
28914	if v == nil {
28915		return fmt.Errorf("unexpected nil of type %T", v)
28916	}
28917	if value == nil {
28918		return nil
28919	}
28920
28921	shape, ok := value.(map[string]interface{})
28922	if !ok {
28923		return fmt.Errorf("unexpected JSON type %v", value)
28924	}
28925
28926	var sv *types.AppInstanceUserMembershipSummary
28927	if *v == nil {
28928		sv = &types.AppInstanceUserMembershipSummary{}
28929	} else {
28930		sv = *v
28931	}
28932
28933	for key, value := range shape {
28934		switch key {
28935		case "ReadMarkerTimestamp":
28936			if value != nil {
28937				jtv, ok := value.(json.Number)
28938				if !ok {
28939					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
28940				}
28941				f64, err := jtv.Float64()
28942				if err != nil {
28943					return err
28944				}
28945				sv.ReadMarkerTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
28946			}
28947
28948		case "Type":
28949			if value != nil {
28950				jtv, ok := value.(string)
28951				if !ok {
28952					return fmt.Errorf("expected ChannelMembershipType to be of type string, got %T instead", value)
28953				}
28954				sv.Type = types.ChannelMembershipType(jtv)
28955			}
28956
28957		default:
28958			_, _ = key, value
28959
28960		}
28961	}
28962	*v = sv
28963	return nil
28964}
28965
28966func awsRestjson1_deserializeDocumentAppInstanceUserSummary(v **types.AppInstanceUserSummary, value interface{}) error {
28967	if v == nil {
28968		return fmt.Errorf("unexpected nil of type %T", v)
28969	}
28970	if value == nil {
28971		return nil
28972	}
28973
28974	shape, ok := value.(map[string]interface{})
28975	if !ok {
28976		return fmt.Errorf("unexpected JSON type %v", value)
28977	}
28978
28979	var sv *types.AppInstanceUserSummary
28980	if *v == nil {
28981		sv = &types.AppInstanceUserSummary{}
28982	} else {
28983		sv = *v
28984	}
28985
28986	for key, value := range shape {
28987		switch key {
28988		case "AppInstanceUserArn":
28989			if value != nil {
28990				jtv, ok := value.(string)
28991				if !ok {
28992					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
28993				}
28994				sv.AppInstanceUserArn = ptr.String(jtv)
28995			}
28996
28997		case "Metadata":
28998			if value != nil {
28999				jtv, ok := value.(string)
29000				if !ok {
29001					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
29002				}
29003				sv.Metadata = ptr.String(jtv)
29004			}
29005
29006		case "Name":
29007			if value != nil {
29008				jtv, ok := value.(string)
29009				if !ok {
29010					return fmt.Errorf("expected UserName to be of type string, got %T instead", value)
29011				}
29012				sv.Name = ptr.String(jtv)
29013			}
29014
29015		default:
29016			_, _ = key, value
29017
29018		}
29019	}
29020	*v = sv
29021	return nil
29022}
29023
29024func awsRestjson1_deserializeDocumentAttendee(v **types.Attendee, value interface{}) error {
29025	if v == nil {
29026		return fmt.Errorf("unexpected nil of type %T", v)
29027	}
29028	if value == nil {
29029		return nil
29030	}
29031
29032	shape, ok := value.(map[string]interface{})
29033	if !ok {
29034		return fmt.Errorf("unexpected JSON type %v", value)
29035	}
29036
29037	var sv *types.Attendee
29038	if *v == nil {
29039		sv = &types.Attendee{}
29040	} else {
29041		sv = *v
29042	}
29043
29044	for key, value := range shape {
29045		switch key {
29046		case "AttendeeId":
29047			if value != nil {
29048				jtv, ok := value.(string)
29049				if !ok {
29050					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
29051				}
29052				sv.AttendeeId = ptr.String(jtv)
29053			}
29054
29055		case "ExternalUserId":
29056			if value != nil {
29057				jtv, ok := value.(string)
29058				if !ok {
29059					return fmt.Errorf("expected ExternalUserIdType to be of type string, got %T instead", value)
29060				}
29061				sv.ExternalUserId = ptr.String(jtv)
29062			}
29063
29064		case "JoinToken":
29065			if value != nil {
29066				jtv, ok := value.(string)
29067				if !ok {
29068					return fmt.Errorf("expected JoinTokenString to be of type string, got %T instead", value)
29069				}
29070				sv.JoinToken = ptr.String(jtv)
29071			}
29072
29073		default:
29074			_, _ = key, value
29075
29076		}
29077	}
29078	*v = sv
29079	return nil
29080}
29081
29082func awsRestjson1_deserializeDocumentAttendeeList(v *[]types.Attendee, value interface{}) error {
29083	if v == nil {
29084		return fmt.Errorf("unexpected nil of type %T", v)
29085	}
29086	if value == nil {
29087		return nil
29088	}
29089
29090	shape, ok := value.([]interface{})
29091	if !ok {
29092		return fmt.Errorf("unexpected JSON type %v", value)
29093	}
29094
29095	var cv []types.Attendee
29096	if *v == nil {
29097		cv = []types.Attendee{}
29098	} else {
29099		cv = *v
29100	}
29101
29102	for _, value := range shape {
29103		var col types.Attendee
29104		destAddr := &col
29105		if err := awsRestjson1_deserializeDocumentAttendee(&destAddr, value); err != nil {
29106			return err
29107		}
29108		col = *destAddr
29109		cv = append(cv, col)
29110
29111	}
29112	*v = cv
29113	return nil
29114}
29115
29116func awsRestjson1_deserializeDocumentBadRequestException(v **types.BadRequestException, value interface{}) error {
29117	if v == nil {
29118		return fmt.Errorf("unexpected nil of type %T", v)
29119	}
29120	if value == nil {
29121		return nil
29122	}
29123
29124	shape, ok := value.(map[string]interface{})
29125	if !ok {
29126		return fmt.Errorf("unexpected JSON type %v", value)
29127	}
29128
29129	var sv *types.BadRequestException
29130	if *v == nil {
29131		sv = &types.BadRequestException{}
29132	} else {
29133		sv = *v
29134	}
29135
29136	for key, value := range shape {
29137		switch key {
29138		case "Code":
29139			if value != nil {
29140				jtv, ok := value.(string)
29141				if !ok {
29142					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
29143				}
29144				sv.Code = types.ErrorCode(jtv)
29145			}
29146
29147		case "Message":
29148			if value != nil {
29149				jtv, ok := value.(string)
29150				if !ok {
29151					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29152				}
29153				sv.Message = ptr.String(jtv)
29154			}
29155
29156		default:
29157			_, _ = key, value
29158
29159		}
29160	}
29161	*v = sv
29162	return nil
29163}
29164
29165func awsRestjson1_deserializeDocumentBatchCreateAttendeeErrorList(v *[]types.CreateAttendeeError, value interface{}) error {
29166	if v == nil {
29167		return fmt.Errorf("unexpected nil of type %T", v)
29168	}
29169	if value == nil {
29170		return nil
29171	}
29172
29173	shape, ok := value.([]interface{})
29174	if !ok {
29175		return fmt.Errorf("unexpected JSON type %v", value)
29176	}
29177
29178	var cv []types.CreateAttendeeError
29179	if *v == nil {
29180		cv = []types.CreateAttendeeError{}
29181	} else {
29182		cv = *v
29183	}
29184
29185	for _, value := range shape {
29186		var col types.CreateAttendeeError
29187		destAddr := &col
29188		if err := awsRestjson1_deserializeDocumentCreateAttendeeError(&destAddr, value); err != nil {
29189			return err
29190		}
29191		col = *destAddr
29192		cv = append(cv, col)
29193
29194	}
29195	*v = cv
29196	return nil
29197}
29198
29199func awsRestjson1_deserializeDocumentBot(v **types.Bot, value interface{}) error {
29200	if v == nil {
29201		return fmt.Errorf("unexpected nil of type %T", v)
29202	}
29203	if value == nil {
29204		return nil
29205	}
29206
29207	shape, ok := value.(map[string]interface{})
29208	if !ok {
29209		return fmt.Errorf("unexpected JSON type %v", value)
29210	}
29211
29212	var sv *types.Bot
29213	if *v == nil {
29214		sv = &types.Bot{}
29215	} else {
29216		sv = *v
29217	}
29218
29219	for key, value := range shape {
29220		switch key {
29221		case "BotEmail":
29222			if value != nil {
29223				jtv, ok := value.(string)
29224				if !ok {
29225					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
29226				}
29227				sv.BotEmail = ptr.String(jtv)
29228			}
29229
29230		case "BotId":
29231			if value != nil {
29232				jtv, ok := value.(string)
29233				if !ok {
29234					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29235				}
29236				sv.BotId = ptr.String(jtv)
29237			}
29238
29239		case "BotType":
29240			if value != nil {
29241				jtv, ok := value.(string)
29242				if !ok {
29243					return fmt.Errorf("expected BotType to be of type string, got %T instead", value)
29244				}
29245				sv.BotType = types.BotType(jtv)
29246			}
29247
29248		case "CreatedTimestamp":
29249			if value != nil {
29250				jtv, ok := value.(string)
29251				if !ok {
29252					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
29253				}
29254				t, err := smithytime.ParseDateTime(jtv)
29255				if err != nil {
29256					return err
29257				}
29258				sv.CreatedTimestamp = ptr.Time(t)
29259			}
29260
29261		case "Disabled":
29262			if value != nil {
29263				jtv, ok := value.(bool)
29264				if !ok {
29265					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
29266				}
29267				sv.Disabled = ptr.Bool(jtv)
29268			}
29269
29270		case "DisplayName":
29271			if value != nil {
29272				jtv, ok := value.(string)
29273				if !ok {
29274					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
29275				}
29276				sv.DisplayName = ptr.String(jtv)
29277			}
29278
29279		case "SecurityToken":
29280			if value != nil {
29281				jtv, ok := value.(string)
29282				if !ok {
29283					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
29284				}
29285				sv.SecurityToken = ptr.String(jtv)
29286			}
29287
29288		case "UpdatedTimestamp":
29289			if value != nil {
29290				jtv, ok := value.(string)
29291				if !ok {
29292					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
29293				}
29294				t, err := smithytime.ParseDateTime(jtv)
29295				if err != nil {
29296					return err
29297				}
29298				sv.UpdatedTimestamp = ptr.Time(t)
29299			}
29300
29301		case "UserId":
29302			if value != nil {
29303				jtv, ok := value.(string)
29304				if !ok {
29305					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29306				}
29307				sv.UserId = ptr.String(jtv)
29308			}
29309
29310		default:
29311			_, _ = key, value
29312
29313		}
29314	}
29315	*v = sv
29316	return nil
29317}
29318
29319func awsRestjson1_deserializeDocumentBotList(v *[]types.Bot, value interface{}) error {
29320	if v == nil {
29321		return fmt.Errorf("unexpected nil of type %T", v)
29322	}
29323	if value == nil {
29324		return nil
29325	}
29326
29327	shape, ok := value.([]interface{})
29328	if !ok {
29329		return fmt.Errorf("unexpected JSON type %v", value)
29330	}
29331
29332	var cv []types.Bot
29333	if *v == nil {
29334		cv = []types.Bot{}
29335	} else {
29336		cv = *v
29337	}
29338
29339	for _, value := range shape {
29340		var col types.Bot
29341		destAddr := &col
29342		if err := awsRestjson1_deserializeDocumentBot(&destAddr, value); err != nil {
29343			return err
29344		}
29345		col = *destAddr
29346		cv = append(cv, col)
29347
29348	}
29349	*v = cv
29350	return nil
29351}
29352
29353func awsRestjson1_deserializeDocumentBusinessCallingSettings(v **types.BusinessCallingSettings, value interface{}) error {
29354	if v == nil {
29355		return fmt.Errorf("unexpected nil of type %T", v)
29356	}
29357	if value == nil {
29358		return nil
29359	}
29360
29361	shape, ok := value.(map[string]interface{})
29362	if !ok {
29363		return fmt.Errorf("unexpected JSON type %v", value)
29364	}
29365
29366	var sv *types.BusinessCallingSettings
29367	if *v == nil {
29368		sv = &types.BusinessCallingSettings{}
29369	} else {
29370		sv = *v
29371	}
29372
29373	for key, value := range shape {
29374		switch key {
29375		case "CdrBucket":
29376			if value != nil {
29377				jtv, ok := value.(string)
29378				if !ok {
29379					return fmt.Errorf("expected String to be of type string, got %T instead", value)
29380				}
29381				sv.CdrBucket = ptr.String(jtv)
29382			}
29383
29384		default:
29385			_, _ = key, value
29386
29387		}
29388	}
29389	*v = sv
29390	return nil
29391}
29392
29393func awsRestjson1_deserializeDocumentCallingRegionList(v *[]string, value interface{}) error {
29394	if v == nil {
29395		return fmt.Errorf("unexpected nil of type %T", v)
29396	}
29397	if value == nil {
29398		return nil
29399	}
29400
29401	shape, ok := value.([]interface{})
29402	if !ok {
29403		return fmt.Errorf("unexpected JSON type %v", value)
29404	}
29405
29406	var cv []string
29407	if *v == nil {
29408		cv = []string{}
29409	} else {
29410		cv = *v
29411	}
29412
29413	for _, value := range shape {
29414		var col string
29415		if value != nil {
29416			jtv, ok := value.(string)
29417			if !ok {
29418				return fmt.Errorf("expected CallingRegion to be of type string, got %T instead", value)
29419			}
29420			col = jtv
29421		}
29422		cv = append(cv, col)
29423
29424	}
29425	*v = cv
29426	return nil
29427}
29428
29429func awsRestjson1_deserializeDocumentCapabilityList(v *[]types.Capability, 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.([]interface{})
29438	if !ok {
29439		return fmt.Errorf("unexpected JSON type %v", value)
29440	}
29441
29442	var cv []types.Capability
29443	if *v == nil {
29444		cv = []types.Capability{}
29445	} else {
29446		cv = *v
29447	}
29448
29449	for _, value := range shape {
29450		var col types.Capability
29451		if value != nil {
29452			jtv, ok := value.(string)
29453			if !ok {
29454				return fmt.Errorf("expected Capability to be of type string, got %T instead", value)
29455			}
29456			col = types.Capability(jtv)
29457		}
29458		cv = append(cv, col)
29459
29460	}
29461	*v = cv
29462	return nil
29463}
29464
29465func awsRestjson1_deserializeDocumentChannel(v **types.Channel, value interface{}) error {
29466	if v == nil {
29467		return fmt.Errorf("unexpected nil of type %T", v)
29468	}
29469	if value == nil {
29470		return nil
29471	}
29472
29473	shape, ok := value.(map[string]interface{})
29474	if !ok {
29475		return fmt.Errorf("unexpected JSON type %v", value)
29476	}
29477
29478	var sv *types.Channel
29479	if *v == nil {
29480		sv = &types.Channel{}
29481	} else {
29482		sv = *v
29483	}
29484
29485	for key, value := range shape {
29486		switch key {
29487		case "ChannelArn":
29488			if value != nil {
29489				jtv, ok := value.(string)
29490				if !ok {
29491					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
29492				}
29493				sv.ChannelArn = ptr.String(jtv)
29494			}
29495
29496		case "CreatedBy":
29497			if err := awsRestjson1_deserializeDocumentIdentity(&sv.CreatedBy, value); err != nil {
29498				return err
29499			}
29500
29501		case "CreatedTimestamp":
29502			if value != nil {
29503				jtv, ok := value.(json.Number)
29504				if !ok {
29505					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29506				}
29507				f64, err := jtv.Float64()
29508				if err != nil {
29509					return err
29510				}
29511				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29512			}
29513
29514		case "LastMessageTimestamp":
29515			if value != nil {
29516				jtv, ok := value.(json.Number)
29517				if !ok {
29518					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29519				}
29520				f64, err := jtv.Float64()
29521				if err != nil {
29522					return err
29523				}
29524				sv.LastMessageTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29525			}
29526
29527		case "LastUpdatedTimestamp":
29528			if value != nil {
29529				jtv, ok := value.(json.Number)
29530				if !ok {
29531					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29532				}
29533				f64, err := jtv.Float64()
29534				if err != nil {
29535					return err
29536				}
29537				sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29538			}
29539
29540		case "Metadata":
29541			if value != nil {
29542				jtv, ok := value.(string)
29543				if !ok {
29544					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
29545				}
29546				sv.Metadata = ptr.String(jtv)
29547			}
29548
29549		case "Mode":
29550			if value != nil {
29551				jtv, ok := value.(string)
29552				if !ok {
29553					return fmt.Errorf("expected ChannelMode to be of type string, got %T instead", value)
29554				}
29555				sv.Mode = types.ChannelMode(jtv)
29556			}
29557
29558		case "Name":
29559			if value != nil {
29560				jtv, ok := value.(string)
29561				if !ok {
29562					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
29563				}
29564				sv.Name = ptr.String(jtv)
29565			}
29566
29567		case "Privacy":
29568			if value != nil {
29569				jtv, ok := value.(string)
29570				if !ok {
29571					return fmt.Errorf("expected ChannelPrivacy to be of type string, got %T instead", value)
29572				}
29573				sv.Privacy = types.ChannelPrivacy(jtv)
29574			}
29575
29576		default:
29577			_, _ = key, value
29578
29579		}
29580	}
29581	*v = sv
29582	return nil
29583}
29584
29585func awsRestjson1_deserializeDocumentChannelBan(v **types.ChannelBan, value interface{}) error {
29586	if v == nil {
29587		return fmt.Errorf("unexpected nil of type %T", v)
29588	}
29589	if value == nil {
29590		return nil
29591	}
29592
29593	shape, ok := value.(map[string]interface{})
29594	if !ok {
29595		return fmt.Errorf("unexpected JSON type %v", value)
29596	}
29597
29598	var sv *types.ChannelBan
29599	if *v == nil {
29600		sv = &types.ChannelBan{}
29601	} else {
29602		sv = *v
29603	}
29604
29605	for key, value := range shape {
29606		switch key {
29607		case "ChannelArn":
29608			if value != nil {
29609				jtv, ok := value.(string)
29610				if !ok {
29611					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
29612				}
29613				sv.ChannelArn = ptr.String(jtv)
29614			}
29615
29616		case "CreatedBy":
29617			if err := awsRestjson1_deserializeDocumentIdentity(&sv.CreatedBy, value); err != nil {
29618				return err
29619			}
29620
29621		case "CreatedTimestamp":
29622			if value != nil {
29623				jtv, ok := value.(json.Number)
29624				if !ok {
29625					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29626				}
29627				f64, err := jtv.Float64()
29628				if err != nil {
29629					return err
29630				}
29631				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29632			}
29633
29634		case "Member":
29635			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
29636				return err
29637			}
29638
29639		default:
29640			_, _ = key, value
29641
29642		}
29643	}
29644	*v = sv
29645	return nil
29646}
29647
29648func awsRestjson1_deserializeDocumentChannelBanSummary(v **types.ChannelBanSummary, value interface{}) error {
29649	if v == nil {
29650		return fmt.Errorf("unexpected nil of type %T", v)
29651	}
29652	if value == nil {
29653		return nil
29654	}
29655
29656	shape, ok := value.(map[string]interface{})
29657	if !ok {
29658		return fmt.Errorf("unexpected JSON type %v", value)
29659	}
29660
29661	var sv *types.ChannelBanSummary
29662	if *v == nil {
29663		sv = &types.ChannelBanSummary{}
29664	} else {
29665		sv = *v
29666	}
29667
29668	for key, value := range shape {
29669		switch key {
29670		case "Member":
29671			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
29672				return err
29673			}
29674
29675		default:
29676			_, _ = key, value
29677
29678		}
29679	}
29680	*v = sv
29681	return nil
29682}
29683
29684func awsRestjson1_deserializeDocumentChannelBanSummaryList(v *[]types.ChannelBanSummary, value interface{}) error {
29685	if v == nil {
29686		return fmt.Errorf("unexpected nil of type %T", v)
29687	}
29688	if value == nil {
29689		return nil
29690	}
29691
29692	shape, ok := value.([]interface{})
29693	if !ok {
29694		return fmt.Errorf("unexpected JSON type %v", value)
29695	}
29696
29697	var cv []types.ChannelBanSummary
29698	if *v == nil {
29699		cv = []types.ChannelBanSummary{}
29700	} else {
29701		cv = *v
29702	}
29703
29704	for _, value := range shape {
29705		var col types.ChannelBanSummary
29706		destAddr := &col
29707		if err := awsRestjson1_deserializeDocumentChannelBanSummary(&destAddr, value); err != nil {
29708			return err
29709		}
29710		col = *destAddr
29711		cv = append(cv, col)
29712
29713	}
29714	*v = cv
29715	return nil
29716}
29717
29718func awsRestjson1_deserializeDocumentChannelMembership(v **types.ChannelMembership, 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.ChannelMembership
29732	if *v == nil {
29733		sv = &types.ChannelMembership{}
29734	} else {
29735		sv = *v
29736	}
29737
29738	for key, value := range shape {
29739		switch key {
29740		case "ChannelArn":
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.ChannelArn = ptr.String(jtv)
29747			}
29748
29749		case "CreatedTimestamp":
29750			if value != nil {
29751				jtv, ok := value.(json.Number)
29752				if !ok {
29753					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29754				}
29755				f64, err := jtv.Float64()
29756				if err != nil {
29757					return err
29758				}
29759				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29760			}
29761
29762		case "InvitedBy":
29763			if err := awsRestjson1_deserializeDocumentIdentity(&sv.InvitedBy, value); err != nil {
29764				return err
29765			}
29766
29767		case "LastUpdatedTimestamp":
29768			if value != nil {
29769				jtv, ok := value.(json.Number)
29770				if !ok {
29771					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29772				}
29773				f64, err := jtv.Float64()
29774				if err != nil {
29775					return err
29776				}
29777				sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29778			}
29779
29780		case "Member":
29781			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
29782				return err
29783			}
29784
29785		case "Type":
29786			if value != nil {
29787				jtv, ok := value.(string)
29788				if !ok {
29789					return fmt.Errorf("expected ChannelMembershipType to be of type string, got %T instead", value)
29790				}
29791				sv.Type = types.ChannelMembershipType(jtv)
29792			}
29793
29794		default:
29795			_, _ = key, value
29796
29797		}
29798	}
29799	*v = sv
29800	return nil
29801}
29802
29803func awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummary(v **types.ChannelMembershipForAppInstanceUserSummary, value interface{}) error {
29804	if v == nil {
29805		return fmt.Errorf("unexpected nil of type %T", v)
29806	}
29807	if value == nil {
29808		return nil
29809	}
29810
29811	shape, ok := value.(map[string]interface{})
29812	if !ok {
29813		return fmt.Errorf("unexpected JSON type %v", value)
29814	}
29815
29816	var sv *types.ChannelMembershipForAppInstanceUserSummary
29817	if *v == nil {
29818		sv = &types.ChannelMembershipForAppInstanceUserSummary{}
29819	} else {
29820		sv = *v
29821	}
29822
29823	for key, value := range shape {
29824		switch key {
29825		case "AppInstanceUserMembershipSummary":
29826			if err := awsRestjson1_deserializeDocumentAppInstanceUserMembershipSummary(&sv.AppInstanceUserMembershipSummary, value); err != nil {
29827				return err
29828			}
29829
29830		case "ChannelSummary":
29831			if err := awsRestjson1_deserializeDocumentChannelSummary(&sv.ChannelSummary, value); err != nil {
29832				return err
29833			}
29834
29835		default:
29836			_, _ = key, value
29837
29838		}
29839	}
29840	*v = sv
29841	return nil
29842}
29843
29844func awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummaryList(v *[]types.ChannelMembershipForAppInstanceUserSummary, value interface{}) error {
29845	if v == nil {
29846		return fmt.Errorf("unexpected nil of type %T", v)
29847	}
29848	if value == nil {
29849		return nil
29850	}
29851
29852	shape, ok := value.([]interface{})
29853	if !ok {
29854		return fmt.Errorf("unexpected JSON type %v", value)
29855	}
29856
29857	var cv []types.ChannelMembershipForAppInstanceUserSummary
29858	if *v == nil {
29859		cv = []types.ChannelMembershipForAppInstanceUserSummary{}
29860	} else {
29861		cv = *v
29862	}
29863
29864	for _, value := range shape {
29865		var col types.ChannelMembershipForAppInstanceUserSummary
29866		destAddr := &col
29867		if err := awsRestjson1_deserializeDocumentChannelMembershipForAppInstanceUserSummary(&destAddr, value); err != nil {
29868			return err
29869		}
29870		col = *destAddr
29871		cv = append(cv, col)
29872
29873	}
29874	*v = cv
29875	return nil
29876}
29877
29878func awsRestjson1_deserializeDocumentChannelMembershipSummary(v **types.ChannelMembershipSummary, value interface{}) error {
29879	if v == nil {
29880		return fmt.Errorf("unexpected nil of type %T", v)
29881	}
29882	if value == nil {
29883		return nil
29884	}
29885
29886	shape, ok := value.(map[string]interface{})
29887	if !ok {
29888		return fmt.Errorf("unexpected JSON type %v", value)
29889	}
29890
29891	var sv *types.ChannelMembershipSummary
29892	if *v == nil {
29893		sv = &types.ChannelMembershipSummary{}
29894	} else {
29895		sv = *v
29896	}
29897
29898	for key, value := range shape {
29899		switch key {
29900		case "Member":
29901			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Member, value); err != nil {
29902				return err
29903			}
29904
29905		default:
29906			_, _ = key, value
29907
29908		}
29909	}
29910	*v = sv
29911	return nil
29912}
29913
29914func awsRestjson1_deserializeDocumentChannelMembershipSummaryList(v *[]types.ChannelMembershipSummary, value interface{}) error {
29915	if v == nil {
29916		return fmt.Errorf("unexpected nil of type %T", v)
29917	}
29918	if value == nil {
29919		return nil
29920	}
29921
29922	shape, ok := value.([]interface{})
29923	if !ok {
29924		return fmt.Errorf("unexpected JSON type %v", value)
29925	}
29926
29927	var cv []types.ChannelMembershipSummary
29928	if *v == nil {
29929		cv = []types.ChannelMembershipSummary{}
29930	} else {
29931		cv = *v
29932	}
29933
29934	for _, value := range shape {
29935		var col types.ChannelMembershipSummary
29936		destAddr := &col
29937		if err := awsRestjson1_deserializeDocumentChannelMembershipSummary(&destAddr, value); err != nil {
29938			return err
29939		}
29940		col = *destAddr
29941		cv = append(cv, col)
29942
29943	}
29944	*v = cv
29945	return nil
29946}
29947
29948func awsRestjson1_deserializeDocumentChannelMessage(v **types.ChannelMessage, value interface{}) error {
29949	if v == nil {
29950		return fmt.Errorf("unexpected nil of type %T", v)
29951	}
29952	if value == nil {
29953		return nil
29954	}
29955
29956	shape, ok := value.(map[string]interface{})
29957	if !ok {
29958		return fmt.Errorf("unexpected JSON type %v", value)
29959	}
29960
29961	var sv *types.ChannelMessage
29962	if *v == nil {
29963		sv = &types.ChannelMessage{}
29964	} else {
29965		sv = *v
29966	}
29967
29968	for key, value := range shape {
29969		switch key {
29970		case "ChannelArn":
29971			if value != nil {
29972				jtv, ok := value.(string)
29973				if !ok {
29974					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
29975				}
29976				sv.ChannelArn = ptr.String(jtv)
29977			}
29978
29979		case "Content":
29980			if value != nil {
29981				jtv, ok := value.(string)
29982				if !ok {
29983					return fmt.Errorf("expected Content to be of type string, got %T instead", value)
29984				}
29985				sv.Content = ptr.String(jtv)
29986			}
29987
29988		case "CreatedTimestamp":
29989			if value != nil {
29990				jtv, ok := value.(json.Number)
29991				if !ok {
29992					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
29993				}
29994				f64, err := jtv.Float64()
29995				if err != nil {
29996					return err
29997				}
29998				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
29999			}
30000
30001		case "LastEditedTimestamp":
30002			if value != nil {
30003				jtv, ok := value.(json.Number)
30004				if !ok {
30005					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30006				}
30007				f64, err := jtv.Float64()
30008				if err != nil {
30009					return err
30010				}
30011				sv.LastEditedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30012			}
30013
30014		case "LastUpdatedTimestamp":
30015			if value != nil {
30016				jtv, ok := value.(json.Number)
30017				if !ok {
30018					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30019				}
30020				f64, err := jtv.Float64()
30021				if err != nil {
30022					return err
30023				}
30024				sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30025			}
30026
30027		case "MessageId":
30028			if value != nil {
30029				jtv, ok := value.(string)
30030				if !ok {
30031					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
30032				}
30033				sv.MessageId = ptr.String(jtv)
30034			}
30035
30036		case "Metadata":
30037			if value != nil {
30038				jtv, ok := value.(string)
30039				if !ok {
30040					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
30041				}
30042				sv.Metadata = ptr.String(jtv)
30043			}
30044
30045		case "Persistence":
30046			if value != nil {
30047				jtv, ok := value.(string)
30048				if !ok {
30049					return fmt.Errorf("expected ChannelMessagePersistenceType to be of type string, got %T instead", value)
30050				}
30051				sv.Persistence = types.ChannelMessagePersistenceType(jtv)
30052			}
30053
30054		case "Redacted":
30055			if value != nil {
30056				jtv, ok := value.(bool)
30057				if !ok {
30058					return fmt.Errorf("expected NonNullableBoolean to be of type *bool, got %T instead", value)
30059				}
30060				sv.Redacted = jtv
30061			}
30062
30063		case "Sender":
30064			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Sender, value); err != nil {
30065				return err
30066			}
30067
30068		case "Type":
30069			if value != nil {
30070				jtv, ok := value.(string)
30071				if !ok {
30072					return fmt.Errorf("expected ChannelMessageType to be of type string, got %T instead", value)
30073				}
30074				sv.Type = types.ChannelMessageType(jtv)
30075			}
30076
30077		default:
30078			_, _ = key, value
30079
30080		}
30081	}
30082	*v = sv
30083	return nil
30084}
30085
30086func awsRestjson1_deserializeDocumentChannelMessageSummary(v **types.ChannelMessageSummary, value interface{}) error {
30087	if v == nil {
30088		return fmt.Errorf("unexpected nil of type %T", v)
30089	}
30090	if value == nil {
30091		return nil
30092	}
30093
30094	shape, ok := value.(map[string]interface{})
30095	if !ok {
30096		return fmt.Errorf("unexpected JSON type %v", value)
30097	}
30098
30099	var sv *types.ChannelMessageSummary
30100	if *v == nil {
30101		sv = &types.ChannelMessageSummary{}
30102	} else {
30103		sv = *v
30104	}
30105
30106	for key, value := range shape {
30107		switch key {
30108		case "Content":
30109			if value != nil {
30110				jtv, ok := value.(string)
30111				if !ok {
30112					return fmt.Errorf("expected Content to be of type string, got %T instead", value)
30113				}
30114				sv.Content = ptr.String(jtv)
30115			}
30116
30117		case "CreatedTimestamp":
30118			if value != nil {
30119				jtv, ok := value.(json.Number)
30120				if !ok {
30121					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30122				}
30123				f64, err := jtv.Float64()
30124				if err != nil {
30125					return err
30126				}
30127				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30128			}
30129
30130		case "LastEditedTimestamp":
30131			if value != nil {
30132				jtv, ok := value.(json.Number)
30133				if !ok {
30134					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30135				}
30136				f64, err := jtv.Float64()
30137				if err != nil {
30138					return err
30139				}
30140				sv.LastEditedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30141			}
30142
30143		case "LastUpdatedTimestamp":
30144			if value != nil {
30145				jtv, ok := value.(json.Number)
30146				if !ok {
30147					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30148				}
30149				f64, err := jtv.Float64()
30150				if err != nil {
30151					return err
30152				}
30153				sv.LastUpdatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30154			}
30155
30156		case "MessageId":
30157			if value != nil {
30158				jtv, ok := value.(string)
30159				if !ok {
30160					return fmt.Errorf("expected MessageId to be of type string, got %T instead", value)
30161				}
30162				sv.MessageId = ptr.String(jtv)
30163			}
30164
30165		case "Metadata":
30166			if value != nil {
30167				jtv, ok := value.(string)
30168				if !ok {
30169					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
30170				}
30171				sv.Metadata = ptr.String(jtv)
30172			}
30173
30174		case "Redacted":
30175			if value != nil {
30176				jtv, ok := value.(bool)
30177				if !ok {
30178					return fmt.Errorf("expected NonNullableBoolean to be of type *bool, got %T instead", value)
30179				}
30180				sv.Redacted = jtv
30181			}
30182
30183		case "Sender":
30184			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Sender, value); err != nil {
30185				return err
30186			}
30187
30188		case "Type":
30189			if value != nil {
30190				jtv, ok := value.(string)
30191				if !ok {
30192					return fmt.Errorf("expected ChannelMessageType to be of type string, got %T instead", value)
30193				}
30194				sv.Type = types.ChannelMessageType(jtv)
30195			}
30196
30197		default:
30198			_, _ = key, value
30199
30200		}
30201	}
30202	*v = sv
30203	return nil
30204}
30205
30206func awsRestjson1_deserializeDocumentChannelMessageSummaryList(v *[]types.ChannelMessageSummary, value interface{}) error {
30207	if v == nil {
30208		return fmt.Errorf("unexpected nil of type %T", v)
30209	}
30210	if value == nil {
30211		return nil
30212	}
30213
30214	shape, ok := value.([]interface{})
30215	if !ok {
30216		return fmt.Errorf("unexpected JSON type %v", value)
30217	}
30218
30219	var cv []types.ChannelMessageSummary
30220	if *v == nil {
30221		cv = []types.ChannelMessageSummary{}
30222	} else {
30223		cv = *v
30224	}
30225
30226	for _, value := range shape {
30227		var col types.ChannelMessageSummary
30228		destAddr := &col
30229		if err := awsRestjson1_deserializeDocumentChannelMessageSummary(&destAddr, value); err != nil {
30230			return err
30231		}
30232		col = *destAddr
30233		cv = append(cv, col)
30234
30235	}
30236	*v = cv
30237	return nil
30238}
30239
30240func awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummary(v **types.ChannelModeratedByAppInstanceUserSummary, 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.(map[string]interface{})
30249	if !ok {
30250		return fmt.Errorf("unexpected JSON type %v", value)
30251	}
30252
30253	var sv *types.ChannelModeratedByAppInstanceUserSummary
30254	if *v == nil {
30255		sv = &types.ChannelModeratedByAppInstanceUserSummary{}
30256	} else {
30257		sv = *v
30258	}
30259
30260	for key, value := range shape {
30261		switch key {
30262		case "ChannelSummary":
30263			if err := awsRestjson1_deserializeDocumentChannelSummary(&sv.ChannelSummary, value); err != nil {
30264				return err
30265			}
30266
30267		default:
30268			_, _ = key, value
30269
30270		}
30271	}
30272	*v = sv
30273	return nil
30274}
30275
30276func awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummaryList(v *[]types.ChannelModeratedByAppInstanceUserSummary, value interface{}) error {
30277	if v == nil {
30278		return fmt.Errorf("unexpected nil of type %T", v)
30279	}
30280	if value == nil {
30281		return nil
30282	}
30283
30284	shape, ok := value.([]interface{})
30285	if !ok {
30286		return fmt.Errorf("unexpected JSON type %v", value)
30287	}
30288
30289	var cv []types.ChannelModeratedByAppInstanceUserSummary
30290	if *v == nil {
30291		cv = []types.ChannelModeratedByAppInstanceUserSummary{}
30292	} else {
30293		cv = *v
30294	}
30295
30296	for _, value := range shape {
30297		var col types.ChannelModeratedByAppInstanceUserSummary
30298		destAddr := &col
30299		if err := awsRestjson1_deserializeDocumentChannelModeratedByAppInstanceUserSummary(&destAddr, value); err != nil {
30300			return err
30301		}
30302		col = *destAddr
30303		cv = append(cv, col)
30304
30305	}
30306	*v = cv
30307	return nil
30308}
30309
30310func awsRestjson1_deserializeDocumentChannelModerator(v **types.ChannelModerator, value interface{}) error {
30311	if v == nil {
30312		return fmt.Errorf("unexpected nil of type %T", v)
30313	}
30314	if value == nil {
30315		return nil
30316	}
30317
30318	shape, ok := value.(map[string]interface{})
30319	if !ok {
30320		return fmt.Errorf("unexpected JSON type %v", value)
30321	}
30322
30323	var sv *types.ChannelModerator
30324	if *v == nil {
30325		sv = &types.ChannelModerator{}
30326	} else {
30327		sv = *v
30328	}
30329
30330	for key, value := range shape {
30331		switch key {
30332		case "ChannelArn":
30333			if value != nil {
30334				jtv, ok := value.(string)
30335				if !ok {
30336					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30337				}
30338				sv.ChannelArn = ptr.String(jtv)
30339			}
30340
30341		case "CreatedBy":
30342			if err := awsRestjson1_deserializeDocumentIdentity(&sv.CreatedBy, value); err != nil {
30343				return err
30344			}
30345
30346		case "CreatedTimestamp":
30347			if value != nil {
30348				jtv, ok := value.(json.Number)
30349				if !ok {
30350					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30351				}
30352				f64, err := jtv.Float64()
30353				if err != nil {
30354					return err
30355				}
30356				sv.CreatedTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30357			}
30358
30359		case "Moderator":
30360			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Moderator, value); err != nil {
30361				return err
30362			}
30363
30364		default:
30365			_, _ = key, value
30366
30367		}
30368	}
30369	*v = sv
30370	return nil
30371}
30372
30373func awsRestjson1_deserializeDocumentChannelModeratorSummary(v **types.ChannelModeratorSummary, value interface{}) error {
30374	if v == nil {
30375		return fmt.Errorf("unexpected nil of type %T", v)
30376	}
30377	if value == nil {
30378		return nil
30379	}
30380
30381	shape, ok := value.(map[string]interface{})
30382	if !ok {
30383		return fmt.Errorf("unexpected JSON type %v", value)
30384	}
30385
30386	var sv *types.ChannelModeratorSummary
30387	if *v == nil {
30388		sv = &types.ChannelModeratorSummary{}
30389	} else {
30390		sv = *v
30391	}
30392
30393	for key, value := range shape {
30394		switch key {
30395		case "Moderator":
30396			if err := awsRestjson1_deserializeDocumentIdentity(&sv.Moderator, value); err != nil {
30397				return err
30398			}
30399
30400		default:
30401			_, _ = key, value
30402
30403		}
30404	}
30405	*v = sv
30406	return nil
30407}
30408
30409func awsRestjson1_deserializeDocumentChannelModeratorSummaryList(v *[]types.ChannelModeratorSummary, value interface{}) error {
30410	if v == nil {
30411		return fmt.Errorf("unexpected nil of type %T", v)
30412	}
30413	if value == nil {
30414		return nil
30415	}
30416
30417	shape, ok := value.([]interface{})
30418	if !ok {
30419		return fmt.Errorf("unexpected JSON type %v", value)
30420	}
30421
30422	var cv []types.ChannelModeratorSummary
30423	if *v == nil {
30424		cv = []types.ChannelModeratorSummary{}
30425	} else {
30426		cv = *v
30427	}
30428
30429	for _, value := range shape {
30430		var col types.ChannelModeratorSummary
30431		destAddr := &col
30432		if err := awsRestjson1_deserializeDocumentChannelModeratorSummary(&destAddr, value); err != nil {
30433			return err
30434		}
30435		col = *destAddr
30436		cv = append(cv, col)
30437
30438	}
30439	*v = cv
30440	return nil
30441}
30442
30443func awsRestjson1_deserializeDocumentChannelRetentionSettings(v **types.ChannelRetentionSettings, value interface{}) error {
30444	if v == nil {
30445		return fmt.Errorf("unexpected nil of type %T", v)
30446	}
30447	if value == nil {
30448		return nil
30449	}
30450
30451	shape, ok := value.(map[string]interface{})
30452	if !ok {
30453		return fmt.Errorf("unexpected JSON type %v", value)
30454	}
30455
30456	var sv *types.ChannelRetentionSettings
30457	if *v == nil {
30458		sv = &types.ChannelRetentionSettings{}
30459	} else {
30460		sv = *v
30461	}
30462
30463	for key, value := range shape {
30464		switch key {
30465		case "RetentionDays":
30466			if value != nil {
30467				jtv, ok := value.(json.Number)
30468				if !ok {
30469					return fmt.Errorf("expected RetentionDays to be json.Number, got %T instead", value)
30470				}
30471				i64, err := jtv.Int64()
30472				if err != nil {
30473					return err
30474				}
30475				sv.RetentionDays = ptr.Int32(int32(i64))
30476			}
30477
30478		default:
30479			_, _ = key, value
30480
30481		}
30482	}
30483	*v = sv
30484	return nil
30485}
30486
30487func awsRestjson1_deserializeDocumentChannelSummary(v **types.ChannelSummary, value interface{}) error {
30488	if v == nil {
30489		return fmt.Errorf("unexpected nil of type %T", v)
30490	}
30491	if value == nil {
30492		return nil
30493	}
30494
30495	shape, ok := value.(map[string]interface{})
30496	if !ok {
30497		return fmt.Errorf("unexpected JSON type %v", value)
30498	}
30499
30500	var sv *types.ChannelSummary
30501	if *v == nil {
30502		sv = &types.ChannelSummary{}
30503	} else {
30504		sv = *v
30505	}
30506
30507	for key, value := range shape {
30508		switch key {
30509		case "ChannelArn":
30510			if value != nil {
30511				jtv, ok := value.(string)
30512				if !ok {
30513					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
30514				}
30515				sv.ChannelArn = ptr.String(jtv)
30516			}
30517
30518		case "LastMessageTimestamp":
30519			if value != nil {
30520				jtv, ok := value.(json.Number)
30521				if !ok {
30522					return fmt.Errorf("expected Timestamp to be json.Number, got %T instead", value)
30523				}
30524				f64, err := jtv.Float64()
30525				if err != nil {
30526					return err
30527				}
30528				sv.LastMessageTimestamp = ptr.Time(smithytime.ParseEpochSeconds(f64))
30529			}
30530
30531		case "Metadata":
30532			if value != nil {
30533				jtv, ok := value.(string)
30534				if !ok {
30535					return fmt.Errorf("expected Metadata to be of type string, got %T instead", value)
30536				}
30537				sv.Metadata = ptr.String(jtv)
30538			}
30539
30540		case "Mode":
30541			if value != nil {
30542				jtv, ok := value.(string)
30543				if !ok {
30544					return fmt.Errorf("expected ChannelMode to be of type string, got %T instead", value)
30545				}
30546				sv.Mode = types.ChannelMode(jtv)
30547			}
30548
30549		case "Name":
30550			if value != nil {
30551				jtv, ok := value.(string)
30552				if !ok {
30553					return fmt.Errorf("expected NonEmptyResourceName to be of type string, got %T instead", value)
30554				}
30555				sv.Name = ptr.String(jtv)
30556			}
30557
30558		case "Privacy":
30559			if value != nil {
30560				jtv, ok := value.(string)
30561				if !ok {
30562					return fmt.Errorf("expected ChannelPrivacy to be of type string, got %T instead", value)
30563				}
30564				sv.Privacy = types.ChannelPrivacy(jtv)
30565			}
30566
30567		default:
30568			_, _ = key, value
30569
30570		}
30571	}
30572	*v = sv
30573	return nil
30574}
30575
30576func awsRestjson1_deserializeDocumentChannelSummaryList(v *[]types.ChannelSummary, value interface{}) error {
30577	if v == nil {
30578		return fmt.Errorf("unexpected nil of type %T", v)
30579	}
30580	if value == nil {
30581		return nil
30582	}
30583
30584	shape, ok := value.([]interface{})
30585	if !ok {
30586		return fmt.Errorf("unexpected JSON type %v", value)
30587	}
30588
30589	var cv []types.ChannelSummary
30590	if *v == nil {
30591		cv = []types.ChannelSummary{}
30592	} else {
30593		cv = *v
30594	}
30595
30596	for _, value := range shape {
30597		var col types.ChannelSummary
30598		destAddr := &col
30599		if err := awsRestjson1_deserializeDocumentChannelSummary(&destAddr, value); err != nil {
30600			return err
30601		}
30602		col = *destAddr
30603		cv = append(cv, col)
30604
30605	}
30606	*v = cv
30607	return nil
30608}
30609
30610func awsRestjson1_deserializeDocumentConflictException(v **types.ConflictException, value interface{}) error {
30611	if v == nil {
30612		return fmt.Errorf("unexpected nil of type %T", v)
30613	}
30614	if value == nil {
30615		return nil
30616	}
30617
30618	shape, ok := value.(map[string]interface{})
30619	if !ok {
30620		return fmt.Errorf("unexpected JSON type %v", value)
30621	}
30622
30623	var sv *types.ConflictException
30624	if *v == nil {
30625		sv = &types.ConflictException{}
30626	} else {
30627		sv = *v
30628	}
30629
30630	for key, value := range shape {
30631		switch key {
30632		case "Code":
30633			if value != nil {
30634				jtv, ok := value.(string)
30635				if !ok {
30636					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
30637				}
30638				sv.Code = types.ErrorCode(jtv)
30639			}
30640
30641		case "Message":
30642			if value != nil {
30643				jtv, ok := value.(string)
30644				if !ok {
30645					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30646				}
30647				sv.Message = ptr.String(jtv)
30648			}
30649
30650		default:
30651			_, _ = key, value
30652
30653		}
30654	}
30655	*v = sv
30656	return nil
30657}
30658
30659func awsRestjson1_deserializeDocumentConversationRetentionSettings(v **types.ConversationRetentionSettings, value interface{}) error {
30660	if v == nil {
30661		return fmt.Errorf("unexpected nil of type %T", v)
30662	}
30663	if value == nil {
30664		return nil
30665	}
30666
30667	shape, ok := value.(map[string]interface{})
30668	if !ok {
30669		return fmt.Errorf("unexpected JSON type %v", value)
30670	}
30671
30672	var sv *types.ConversationRetentionSettings
30673	if *v == nil {
30674		sv = &types.ConversationRetentionSettings{}
30675	} else {
30676		sv = *v
30677	}
30678
30679	for key, value := range shape {
30680		switch key {
30681		case "RetentionDays":
30682			if value != nil {
30683				jtv, ok := value.(json.Number)
30684				if !ok {
30685					return fmt.Errorf("expected RetentionDays to be json.Number, got %T instead", value)
30686				}
30687				i64, err := jtv.Int64()
30688				if err != nil {
30689					return err
30690				}
30691				sv.RetentionDays = ptr.Int32(int32(i64))
30692			}
30693
30694		default:
30695			_, _ = key, value
30696
30697		}
30698	}
30699	*v = sv
30700	return nil
30701}
30702
30703func awsRestjson1_deserializeDocumentCreateAttendeeError(v **types.CreateAttendeeError, value interface{}) error {
30704	if v == nil {
30705		return fmt.Errorf("unexpected nil of type %T", v)
30706	}
30707	if value == nil {
30708		return nil
30709	}
30710
30711	shape, ok := value.(map[string]interface{})
30712	if !ok {
30713		return fmt.Errorf("unexpected JSON type %v", value)
30714	}
30715
30716	var sv *types.CreateAttendeeError
30717	if *v == nil {
30718		sv = &types.CreateAttendeeError{}
30719	} else {
30720		sv = *v
30721	}
30722
30723	for key, value := range shape {
30724		switch key {
30725		case "ErrorCode":
30726			if value != nil {
30727				jtv, ok := value.(string)
30728				if !ok {
30729					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30730				}
30731				sv.ErrorCode = ptr.String(jtv)
30732			}
30733
30734		case "ErrorMessage":
30735			if value != nil {
30736				jtv, ok := value.(string)
30737				if !ok {
30738					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30739				}
30740				sv.ErrorMessage = ptr.String(jtv)
30741			}
30742
30743		case "ExternalUserId":
30744			if value != nil {
30745				jtv, ok := value.(string)
30746				if !ok {
30747					return fmt.Errorf("expected ExternalUserIdType to be of type string, got %T instead", value)
30748				}
30749				sv.ExternalUserId = ptr.String(jtv)
30750			}
30751
30752		default:
30753			_, _ = key, value
30754
30755		}
30756	}
30757	*v = sv
30758	return nil
30759}
30760
30761func awsRestjson1_deserializeDocumentDNISEmergencyCallingConfiguration(v **types.DNISEmergencyCallingConfiguration, value interface{}) error {
30762	if v == nil {
30763		return fmt.Errorf("unexpected nil of type %T", v)
30764	}
30765	if value == nil {
30766		return nil
30767	}
30768
30769	shape, ok := value.(map[string]interface{})
30770	if !ok {
30771		return fmt.Errorf("unexpected JSON type %v", value)
30772	}
30773
30774	var sv *types.DNISEmergencyCallingConfiguration
30775	if *v == nil {
30776		sv = &types.DNISEmergencyCallingConfiguration{}
30777	} else {
30778		sv = *v
30779	}
30780
30781	for key, value := range shape {
30782		switch key {
30783		case "CallingCountry":
30784			if value != nil {
30785				jtv, ok := value.(string)
30786				if !ok {
30787					return fmt.Errorf("expected Alpha2CountryCode to be of type string, got %T instead", value)
30788				}
30789				sv.CallingCountry = ptr.String(jtv)
30790			}
30791
30792		case "EmergencyPhoneNumber":
30793			if value != nil {
30794				jtv, ok := value.(string)
30795				if !ok {
30796					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
30797				}
30798				sv.EmergencyPhoneNumber = ptr.String(jtv)
30799			}
30800
30801		case "TestPhoneNumber":
30802			if value != nil {
30803				jtv, ok := value.(string)
30804				if !ok {
30805					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
30806				}
30807				sv.TestPhoneNumber = ptr.String(jtv)
30808			}
30809
30810		default:
30811			_, _ = key, value
30812
30813		}
30814	}
30815	*v = sv
30816	return nil
30817}
30818
30819func awsRestjson1_deserializeDocumentDNISEmergencyCallingConfigurationList(v *[]types.DNISEmergencyCallingConfiguration, value interface{}) error {
30820	if v == nil {
30821		return fmt.Errorf("unexpected nil of type %T", v)
30822	}
30823	if value == nil {
30824		return nil
30825	}
30826
30827	shape, ok := value.([]interface{})
30828	if !ok {
30829		return fmt.Errorf("unexpected JSON type %v", value)
30830	}
30831
30832	var cv []types.DNISEmergencyCallingConfiguration
30833	if *v == nil {
30834		cv = []types.DNISEmergencyCallingConfiguration{}
30835	} else {
30836		cv = *v
30837	}
30838
30839	for _, value := range shape {
30840		var col types.DNISEmergencyCallingConfiguration
30841		destAddr := &col
30842		if err := awsRestjson1_deserializeDocumentDNISEmergencyCallingConfiguration(&destAddr, value); err != nil {
30843			return err
30844		}
30845		col = *destAddr
30846		cv = append(cv, col)
30847
30848	}
30849	*v = cv
30850	return nil
30851}
30852
30853func awsRestjson1_deserializeDocumentE164PhoneNumberList(v *[]string, value interface{}) error {
30854	if v == nil {
30855		return fmt.Errorf("unexpected nil of type %T", v)
30856	}
30857	if value == nil {
30858		return nil
30859	}
30860
30861	shape, ok := value.([]interface{})
30862	if !ok {
30863		return fmt.Errorf("unexpected JSON type %v", value)
30864	}
30865
30866	var cv []string
30867	if *v == nil {
30868		cv = []string{}
30869	} else {
30870		cv = *v
30871	}
30872
30873	for _, value := range shape {
30874		var col string
30875		if value != nil {
30876			jtv, ok := value.(string)
30877			if !ok {
30878				return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
30879			}
30880			col = jtv
30881		}
30882		cv = append(cv, col)
30883
30884	}
30885	*v = cv
30886	return nil
30887}
30888
30889func awsRestjson1_deserializeDocumentEmergencyCallingConfiguration(v **types.EmergencyCallingConfiguration, value interface{}) error {
30890	if v == nil {
30891		return fmt.Errorf("unexpected nil of type %T", v)
30892	}
30893	if value == nil {
30894		return nil
30895	}
30896
30897	shape, ok := value.(map[string]interface{})
30898	if !ok {
30899		return fmt.Errorf("unexpected JSON type %v", value)
30900	}
30901
30902	var sv *types.EmergencyCallingConfiguration
30903	if *v == nil {
30904		sv = &types.EmergencyCallingConfiguration{}
30905	} else {
30906		sv = *v
30907	}
30908
30909	for key, value := range shape {
30910		switch key {
30911		case "DNIS":
30912			if err := awsRestjson1_deserializeDocumentDNISEmergencyCallingConfigurationList(&sv.DNIS, value); err != nil {
30913				return err
30914			}
30915
30916		default:
30917			_, _ = key, value
30918
30919		}
30920	}
30921	*v = sv
30922	return nil
30923}
30924
30925func awsRestjson1_deserializeDocumentEventsConfiguration(v **types.EventsConfiguration, value interface{}) error {
30926	if v == nil {
30927		return fmt.Errorf("unexpected nil of type %T", v)
30928	}
30929	if value == nil {
30930		return nil
30931	}
30932
30933	shape, ok := value.(map[string]interface{})
30934	if !ok {
30935		return fmt.Errorf("unexpected JSON type %v", value)
30936	}
30937
30938	var sv *types.EventsConfiguration
30939	if *v == nil {
30940		sv = &types.EventsConfiguration{}
30941	} else {
30942		sv = *v
30943	}
30944
30945	for key, value := range shape {
30946		switch key {
30947		case "BotId":
30948			if value != nil {
30949				jtv, ok := value.(string)
30950				if !ok {
30951					return fmt.Errorf("expected String to be of type string, got %T instead", value)
30952				}
30953				sv.BotId = ptr.String(jtv)
30954			}
30955
30956		case "LambdaFunctionArn":
30957			if value != nil {
30958				jtv, ok := value.(string)
30959				if !ok {
30960					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
30961				}
30962				sv.LambdaFunctionArn = ptr.String(jtv)
30963			}
30964
30965		case "OutboundEventsHTTPSEndpoint":
30966			if value != nil {
30967				jtv, ok := value.(string)
30968				if !ok {
30969					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
30970				}
30971				sv.OutboundEventsHTTPSEndpoint = ptr.String(jtv)
30972			}
30973
30974		default:
30975			_, _ = key, value
30976
30977		}
30978	}
30979	*v = sv
30980	return nil
30981}
30982
30983func awsRestjson1_deserializeDocumentForbiddenException(v **types.ForbiddenException, value interface{}) error {
30984	if v == nil {
30985		return fmt.Errorf("unexpected nil of type %T", v)
30986	}
30987	if value == nil {
30988		return nil
30989	}
30990
30991	shape, ok := value.(map[string]interface{})
30992	if !ok {
30993		return fmt.Errorf("unexpected JSON type %v", value)
30994	}
30995
30996	var sv *types.ForbiddenException
30997	if *v == nil {
30998		sv = &types.ForbiddenException{}
30999	} else {
31000		sv = *v
31001	}
31002
31003	for key, value := range shape {
31004		switch key {
31005		case "Code":
31006			if value != nil {
31007				jtv, ok := value.(string)
31008				if !ok {
31009					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
31010				}
31011				sv.Code = types.ErrorCode(jtv)
31012			}
31013
31014		case "Message":
31015			if value != nil {
31016				jtv, ok := value.(string)
31017				if !ok {
31018					return fmt.Errorf("expected String to be of type string, got %T instead", value)
31019				}
31020				sv.Message = ptr.String(jtv)
31021			}
31022
31023		default:
31024			_, _ = key, value
31025
31026		}
31027	}
31028	*v = sv
31029	return nil
31030}
31031
31032func awsRestjson1_deserializeDocumentGeoMatchParams(v **types.GeoMatchParams, value interface{}) error {
31033	if v == nil {
31034		return fmt.Errorf("unexpected nil of type %T", v)
31035	}
31036	if value == nil {
31037		return nil
31038	}
31039
31040	shape, ok := value.(map[string]interface{})
31041	if !ok {
31042		return fmt.Errorf("unexpected JSON type %v", value)
31043	}
31044
31045	var sv *types.GeoMatchParams
31046	if *v == nil {
31047		sv = &types.GeoMatchParams{}
31048	} else {
31049		sv = *v
31050	}
31051
31052	for key, value := range shape {
31053		switch key {
31054		case "AreaCode":
31055			if value != nil {
31056				jtv, ok := value.(string)
31057				if !ok {
31058					return fmt.Errorf("expected AreaCode to be of type string, got %T instead", value)
31059				}
31060				sv.AreaCode = ptr.String(jtv)
31061			}
31062
31063		case "Country":
31064			if value != nil {
31065				jtv, ok := value.(string)
31066				if !ok {
31067					return fmt.Errorf("expected Country to be of type string, got %T instead", value)
31068				}
31069				sv.Country = ptr.String(jtv)
31070			}
31071
31072		default:
31073			_, _ = key, value
31074
31075		}
31076	}
31077	*v = sv
31078	return nil
31079}
31080
31081func awsRestjson1_deserializeDocumentIdentity(v **types.Identity, value interface{}) error {
31082	if v == nil {
31083		return fmt.Errorf("unexpected nil of type %T", v)
31084	}
31085	if value == nil {
31086		return nil
31087	}
31088
31089	shape, ok := value.(map[string]interface{})
31090	if !ok {
31091		return fmt.Errorf("unexpected JSON type %v", value)
31092	}
31093
31094	var sv *types.Identity
31095	if *v == nil {
31096		sv = &types.Identity{}
31097	} else {
31098		sv = *v
31099	}
31100
31101	for key, value := range shape {
31102		switch key {
31103		case "Arn":
31104			if value != nil {
31105				jtv, ok := value.(string)
31106				if !ok {
31107					return fmt.Errorf("expected ChimeArn to be of type string, got %T instead", value)
31108				}
31109				sv.Arn = ptr.String(jtv)
31110			}
31111
31112		case "Name":
31113			if value != nil {
31114				jtv, ok := value.(string)
31115				if !ok {
31116					return fmt.Errorf("expected ResourceName to be of type string, got %T instead", value)
31117				}
31118				sv.Name = ptr.String(jtv)
31119			}
31120
31121		default:
31122			_, _ = key, value
31123
31124		}
31125	}
31126	*v = sv
31127	return nil
31128}
31129
31130func awsRestjson1_deserializeDocumentInvite(v **types.Invite, value interface{}) error {
31131	if v == nil {
31132		return fmt.Errorf("unexpected nil of type %T", v)
31133	}
31134	if value == nil {
31135		return nil
31136	}
31137
31138	shape, ok := value.(map[string]interface{})
31139	if !ok {
31140		return fmt.Errorf("unexpected JSON type %v", value)
31141	}
31142
31143	var sv *types.Invite
31144	if *v == nil {
31145		sv = &types.Invite{}
31146	} else {
31147		sv = *v
31148	}
31149
31150	for key, value := range shape {
31151		switch key {
31152		case "EmailAddress":
31153			if value != nil {
31154				jtv, ok := value.(string)
31155				if !ok {
31156					return fmt.Errorf("expected EmailAddress to be of type string, got %T instead", value)
31157				}
31158				sv.EmailAddress = ptr.String(jtv)
31159			}
31160
31161		case "EmailStatus":
31162			if value != nil {
31163				jtv, ok := value.(string)
31164				if !ok {
31165					return fmt.Errorf("expected EmailStatus to be of type string, got %T instead", value)
31166				}
31167				sv.EmailStatus = types.EmailStatus(jtv)
31168			}
31169
31170		case "InviteId":
31171			if value != nil {
31172				jtv, ok := value.(string)
31173				if !ok {
31174					return fmt.Errorf("expected String to be of type string, got %T instead", value)
31175				}
31176				sv.InviteId = ptr.String(jtv)
31177			}
31178
31179		case "Status":
31180			if value != nil {
31181				jtv, ok := value.(string)
31182				if !ok {
31183					return fmt.Errorf("expected InviteStatus to be of type string, got %T instead", value)
31184				}
31185				sv.Status = types.InviteStatus(jtv)
31186			}
31187
31188		default:
31189			_, _ = key, value
31190
31191		}
31192	}
31193	*v = sv
31194	return nil
31195}
31196
31197func awsRestjson1_deserializeDocumentInviteList(v *[]types.Invite, value interface{}) error {
31198	if v == nil {
31199		return fmt.Errorf("unexpected nil of type %T", v)
31200	}
31201	if value == nil {
31202		return nil
31203	}
31204
31205	shape, ok := value.([]interface{})
31206	if !ok {
31207		return fmt.Errorf("unexpected JSON type %v", value)
31208	}
31209
31210	var cv []types.Invite
31211	if *v == nil {
31212		cv = []types.Invite{}
31213	} else {
31214		cv = *v
31215	}
31216
31217	for _, value := range shape {
31218		var col types.Invite
31219		destAddr := &col
31220		if err := awsRestjson1_deserializeDocumentInvite(&destAddr, value); err != nil {
31221			return err
31222		}
31223		col = *destAddr
31224		cv = append(cv, col)
31225
31226	}
31227	*v = cv
31228	return nil
31229}
31230
31231func awsRestjson1_deserializeDocumentLicenseList(v *[]types.License, value interface{}) error {
31232	if v == nil {
31233		return fmt.Errorf("unexpected nil of type %T", v)
31234	}
31235	if value == nil {
31236		return nil
31237	}
31238
31239	shape, ok := value.([]interface{})
31240	if !ok {
31241		return fmt.Errorf("unexpected JSON type %v", value)
31242	}
31243
31244	var cv []types.License
31245	if *v == nil {
31246		cv = []types.License{}
31247	} else {
31248		cv = *v
31249	}
31250
31251	for _, value := range shape {
31252		var col types.License
31253		if value != nil {
31254			jtv, ok := value.(string)
31255			if !ok {
31256				return fmt.Errorf("expected License to be of type string, got %T instead", value)
31257			}
31258			col = types.License(jtv)
31259		}
31260		cv = append(cv, col)
31261
31262	}
31263	*v = cv
31264	return nil
31265}
31266
31267func awsRestjson1_deserializeDocumentLoggingConfiguration(v **types.LoggingConfiguration, value interface{}) error {
31268	if v == nil {
31269		return fmt.Errorf("unexpected nil of type %T", v)
31270	}
31271	if value == nil {
31272		return nil
31273	}
31274
31275	shape, ok := value.(map[string]interface{})
31276	if !ok {
31277		return fmt.Errorf("unexpected JSON type %v", value)
31278	}
31279
31280	var sv *types.LoggingConfiguration
31281	if *v == nil {
31282		sv = &types.LoggingConfiguration{}
31283	} else {
31284		sv = *v
31285	}
31286
31287	for key, value := range shape {
31288		switch key {
31289		case "EnableSIPLogs":
31290			if value != nil {
31291				jtv, ok := value.(bool)
31292				if !ok {
31293					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
31294				}
31295				sv.EnableSIPLogs = ptr.Bool(jtv)
31296			}
31297
31298		default:
31299			_, _ = key, value
31300
31301		}
31302	}
31303	*v = sv
31304	return nil
31305}
31306
31307func awsRestjson1_deserializeDocumentMediaPlacement(v **types.MediaPlacement, value interface{}) error {
31308	if v == nil {
31309		return fmt.Errorf("unexpected nil of type %T", v)
31310	}
31311	if value == nil {
31312		return nil
31313	}
31314
31315	shape, ok := value.(map[string]interface{})
31316	if !ok {
31317		return fmt.Errorf("unexpected JSON type %v", value)
31318	}
31319
31320	var sv *types.MediaPlacement
31321	if *v == nil {
31322		sv = &types.MediaPlacement{}
31323	} else {
31324		sv = *v
31325	}
31326
31327	for key, value := range shape {
31328		switch key {
31329		case "AudioFallbackUrl":
31330			if value != nil {
31331				jtv, ok := value.(string)
31332				if !ok {
31333					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31334				}
31335				sv.AudioFallbackUrl = ptr.String(jtv)
31336			}
31337
31338		case "AudioHostUrl":
31339			if value != nil {
31340				jtv, ok := value.(string)
31341				if !ok {
31342					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31343				}
31344				sv.AudioHostUrl = ptr.String(jtv)
31345			}
31346
31347		case "ScreenDataUrl":
31348			if value != nil {
31349				jtv, ok := value.(string)
31350				if !ok {
31351					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31352				}
31353				sv.ScreenDataUrl = ptr.String(jtv)
31354			}
31355
31356		case "ScreenSharingUrl":
31357			if value != nil {
31358				jtv, ok := value.(string)
31359				if !ok {
31360					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31361				}
31362				sv.ScreenSharingUrl = ptr.String(jtv)
31363			}
31364
31365		case "ScreenViewingUrl":
31366			if value != nil {
31367				jtv, ok := value.(string)
31368				if !ok {
31369					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31370				}
31371				sv.ScreenViewingUrl = ptr.String(jtv)
31372			}
31373
31374		case "SignalingUrl":
31375			if value != nil {
31376				jtv, ok := value.(string)
31377				if !ok {
31378					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31379				}
31380				sv.SignalingUrl = ptr.String(jtv)
31381			}
31382
31383		case "TurnControlUrl":
31384			if value != nil {
31385				jtv, ok := value.(string)
31386				if !ok {
31387					return fmt.Errorf("expected UriType to be of type string, got %T instead", value)
31388				}
31389				sv.TurnControlUrl = ptr.String(jtv)
31390			}
31391
31392		default:
31393			_, _ = key, value
31394
31395		}
31396	}
31397	*v = sv
31398	return nil
31399}
31400
31401func awsRestjson1_deserializeDocumentMeeting(v **types.Meeting, value interface{}) error {
31402	if v == nil {
31403		return fmt.Errorf("unexpected nil of type %T", v)
31404	}
31405	if value == nil {
31406		return nil
31407	}
31408
31409	shape, ok := value.(map[string]interface{})
31410	if !ok {
31411		return fmt.Errorf("unexpected JSON type %v", value)
31412	}
31413
31414	var sv *types.Meeting
31415	if *v == nil {
31416		sv = &types.Meeting{}
31417	} else {
31418		sv = *v
31419	}
31420
31421	for key, value := range shape {
31422		switch key {
31423		case "ExternalMeetingId":
31424			if value != nil {
31425				jtv, ok := value.(string)
31426				if !ok {
31427					return fmt.Errorf("expected ExternalMeetingIdType to be of type string, got %T instead", value)
31428				}
31429				sv.ExternalMeetingId = ptr.String(jtv)
31430			}
31431
31432		case "MediaPlacement":
31433			if err := awsRestjson1_deserializeDocumentMediaPlacement(&sv.MediaPlacement, value); err != nil {
31434				return err
31435			}
31436
31437		case "MediaRegion":
31438			if value != nil {
31439				jtv, ok := value.(string)
31440				if !ok {
31441					return fmt.Errorf("expected String to be of type string, got %T instead", value)
31442				}
31443				sv.MediaRegion = ptr.String(jtv)
31444			}
31445
31446		case "MeetingId":
31447			if value != nil {
31448				jtv, ok := value.(string)
31449				if !ok {
31450					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
31451				}
31452				sv.MeetingId = ptr.String(jtv)
31453			}
31454
31455		default:
31456			_, _ = key, value
31457
31458		}
31459	}
31460	*v = sv
31461	return nil
31462}
31463
31464func awsRestjson1_deserializeDocumentMeetingList(v *[]types.Meeting, value interface{}) error {
31465	if v == nil {
31466		return fmt.Errorf("unexpected nil of type %T", v)
31467	}
31468	if value == nil {
31469		return nil
31470	}
31471
31472	shape, ok := value.([]interface{})
31473	if !ok {
31474		return fmt.Errorf("unexpected JSON type %v", value)
31475	}
31476
31477	var cv []types.Meeting
31478	if *v == nil {
31479		cv = []types.Meeting{}
31480	} else {
31481		cv = *v
31482	}
31483
31484	for _, value := range shape {
31485		var col types.Meeting
31486		destAddr := &col
31487		if err := awsRestjson1_deserializeDocumentMeeting(&destAddr, value); err != nil {
31488			return err
31489		}
31490		col = *destAddr
31491		cv = append(cv, col)
31492
31493	}
31494	*v = cv
31495	return nil
31496}
31497
31498func awsRestjson1_deserializeDocumentMember(v **types.Member, value interface{}) error {
31499	if v == nil {
31500		return fmt.Errorf("unexpected nil of type %T", v)
31501	}
31502	if value == nil {
31503		return nil
31504	}
31505
31506	shape, ok := value.(map[string]interface{})
31507	if !ok {
31508		return fmt.Errorf("unexpected JSON type %v", value)
31509	}
31510
31511	var sv *types.Member
31512	if *v == nil {
31513		sv = &types.Member{}
31514	} else {
31515		sv = *v
31516	}
31517
31518	for key, value := range shape {
31519		switch key {
31520		case "AccountId":
31521			if value != nil {
31522				jtv, ok := value.(string)
31523				if !ok {
31524					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31525				}
31526				sv.AccountId = ptr.String(jtv)
31527			}
31528
31529		case "Email":
31530			if value != nil {
31531				jtv, ok := value.(string)
31532				if !ok {
31533					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
31534				}
31535				sv.Email = ptr.String(jtv)
31536			}
31537
31538		case "FullName":
31539			if value != nil {
31540				jtv, ok := value.(string)
31541				if !ok {
31542					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
31543				}
31544				sv.FullName = ptr.String(jtv)
31545			}
31546
31547		case "MemberId":
31548			if value != nil {
31549				jtv, ok := value.(string)
31550				if !ok {
31551					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31552				}
31553				sv.MemberId = ptr.String(jtv)
31554			}
31555
31556		case "MemberType":
31557			if value != nil {
31558				jtv, ok := value.(string)
31559				if !ok {
31560					return fmt.Errorf("expected MemberType to be of type string, got %T instead", value)
31561				}
31562				sv.MemberType = types.MemberType(jtv)
31563			}
31564
31565		default:
31566			_, _ = key, value
31567
31568		}
31569	}
31570	*v = sv
31571	return nil
31572}
31573
31574func awsRestjson1_deserializeDocumentMemberError(v **types.MemberError, value interface{}) error {
31575	if v == nil {
31576		return fmt.Errorf("unexpected nil of type %T", v)
31577	}
31578	if value == nil {
31579		return nil
31580	}
31581
31582	shape, ok := value.(map[string]interface{})
31583	if !ok {
31584		return fmt.Errorf("unexpected JSON type %v", value)
31585	}
31586
31587	var sv *types.MemberError
31588	if *v == nil {
31589		sv = &types.MemberError{}
31590	} else {
31591		sv = *v
31592	}
31593
31594	for key, value := range shape {
31595		switch key {
31596		case "ErrorCode":
31597			if value != nil {
31598				jtv, ok := value.(string)
31599				if !ok {
31600					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
31601				}
31602				sv.ErrorCode = types.ErrorCode(jtv)
31603			}
31604
31605		case "ErrorMessage":
31606			if value != nil {
31607				jtv, ok := value.(string)
31608				if !ok {
31609					return fmt.Errorf("expected String to be of type string, got %T instead", value)
31610				}
31611				sv.ErrorMessage = ptr.String(jtv)
31612			}
31613
31614		case "MemberId":
31615			if value != nil {
31616				jtv, ok := value.(string)
31617				if !ok {
31618					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
31619				}
31620				sv.MemberId = ptr.String(jtv)
31621			}
31622
31623		default:
31624			_, _ = key, value
31625
31626		}
31627	}
31628	*v = sv
31629	return nil
31630}
31631
31632func awsRestjson1_deserializeDocumentMemberErrorList(v *[]types.MemberError, value interface{}) error {
31633	if v == nil {
31634		return fmt.Errorf("unexpected nil of type %T", v)
31635	}
31636	if value == nil {
31637		return nil
31638	}
31639
31640	shape, ok := value.([]interface{})
31641	if !ok {
31642		return fmt.Errorf("unexpected JSON type %v", value)
31643	}
31644
31645	var cv []types.MemberError
31646	if *v == nil {
31647		cv = []types.MemberError{}
31648	} else {
31649		cv = *v
31650	}
31651
31652	for _, value := range shape {
31653		var col types.MemberError
31654		destAddr := &col
31655		if err := awsRestjson1_deserializeDocumentMemberError(&destAddr, value); err != nil {
31656			return err
31657		}
31658		col = *destAddr
31659		cv = append(cv, col)
31660
31661	}
31662	*v = cv
31663	return nil
31664}
31665
31666func awsRestjson1_deserializeDocumentMessagingSessionEndpoint(v **types.MessagingSessionEndpoint, value interface{}) error {
31667	if v == nil {
31668		return fmt.Errorf("unexpected nil of type %T", v)
31669	}
31670	if value == nil {
31671		return nil
31672	}
31673
31674	shape, ok := value.(map[string]interface{})
31675	if !ok {
31676		return fmt.Errorf("unexpected JSON type %v", value)
31677	}
31678
31679	var sv *types.MessagingSessionEndpoint
31680	if *v == nil {
31681		sv = &types.MessagingSessionEndpoint{}
31682	} else {
31683		sv = *v
31684	}
31685
31686	for key, value := range shape {
31687		switch key {
31688		case "Url":
31689			if value != nil {
31690				jtv, ok := value.(string)
31691				if !ok {
31692					return fmt.Errorf("expected UrlType to be of type string, got %T instead", value)
31693				}
31694				sv.Url = ptr.String(jtv)
31695			}
31696
31697		default:
31698			_, _ = key, value
31699
31700		}
31701	}
31702	*v = sv
31703	return nil
31704}
31705
31706func awsRestjson1_deserializeDocumentNotFoundException(v **types.NotFoundException, value interface{}) error {
31707	if v == nil {
31708		return fmt.Errorf("unexpected nil of type %T", v)
31709	}
31710	if value == nil {
31711		return nil
31712	}
31713
31714	shape, ok := value.(map[string]interface{})
31715	if !ok {
31716		return fmt.Errorf("unexpected JSON type %v", value)
31717	}
31718
31719	var sv *types.NotFoundException
31720	if *v == nil {
31721		sv = &types.NotFoundException{}
31722	} else {
31723		sv = *v
31724	}
31725
31726	for key, value := range shape {
31727		switch key {
31728		case "Code":
31729			if value != nil {
31730				jtv, ok := value.(string)
31731				if !ok {
31732					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
31733				}
31734				sv.Code = types.ErrorCode(jtv)
31735			}
31736
31737		case "Message":
31738			if value != nil {
31739				jtv, ok := value.(string)
31740				if !ok {
31741					return fmt.Errorf("expected String to be of type string, got %T instead", value)
31742				}
31743				sv.Message = ptr.String(jtv)
31744			}
31745
31746		default:
31747			_, _ = key, value
31748
31749		}
31750	}
31751	*v = sv
31752	return nil
31753}
31754
31755func awsRestjson1_deserializeDocumentOrderedPhoneNumber(v **types.OrderedPhoneNumber, value interface{}) error {
31756	if v == nil {
31757		return fmt.Errorf("unexpected nil of type %T", v)
31758	}
31759	if value == nil {
31760		return nil
31761	}
31762
31763	shape, ok := value.(map[string]interface{})
31764	if !ok {
31765		return fmt.Errorf("unexpected JSON type %v", value)
31766	}
31767
31768	var sv *types.OrderedPhoneNumber
31769	if *v == nil {
31770		sv = &types.OrderedPhoneNumber{}
31771	} else {
31772		sv = *v
31773	}
31774
31775	for key, value := range shape {
31776		switch key {
31777		case "E164PhoneNumber":
31778			if value != nil {
31779				jtv, ok := value.(string)
31780				if !ok {
31781					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
31782				}
31783				sv.E164PhoneNumber = ptr.String(jtv)
31784			}
31785
31786		case "Status":
31787			if value != nil {
31788				jtv, ok := value.(string)
31789				if !ok {
31790					return fmt.Errorf("expected OrderedPhoneNumberStatus to be of type string, got %T instead", value)
31791				}
31792				sv.Status = types.OrderedPhoneNumberStatus(jtv)
31793			}
31794
31795		default:
31796			_, _ = key, value
31797
31798		}
31799	}
31800	*v = sv
31801	return nil
31802}
31803
31804func awsRestjson1_deserializeDocumentOrderedPhoneNumberList(v *[]types.OrderedPhoneNumber, value interface{}) error {
31805	if v == nil {
31806		return fmt.Errorf("unexpected nil of type %T", v)
31807	}
31808	if value == nil {
31809		return nil
31810	}
31811
31812	shape, ok := value.([]interface{})
31813	if !ok {
31814		return fmt.Errorf("unexpected JSON type %v", value)
31815	}
31816
31817	var cv []types.OrderedPhoneNumber
31818	if *v == nil {
31819		cv = []types.OrderedPhoneNumber{}
31820	} else {
31821		cv = *v
31822	}
31823
31824	for _, value := range shape {
31825		var col types.OrderedPhoneNumber
31826		destAddr := &col
31827		if err := awsRestjson1_deserializeDocumentOrderedPhoneNumber(&destAddr, value); err != nil {
31828			return err
31829		}
31830		col = *destAddr
31831		cv = append(cv, col)
31832
31833	}
31834	*v = cv
31835	return nil
31836}
31837
31838func awsRestjson1_deserializeDocumentOrigination(v **types.Origination, value interface{}) error {
31839	if v == nil {
31840		return fmt.Errorf("unexpected nil of type %T", v)
31841	}
31842	if value == nil {
31843		return nil
31844	}
31845
31846	shape, ok := value.(map[string]interface{})
31847	if !ok {
31848		return fmt.Errorf("unexpected JSON type %v", value)
31849	}
31850
31851	var sv *types.Origination
31852	if *v == nil {
31853		sv = &types.Origination{}
31854	} else {
31855		sv = *v
31856	}
31857
31858	for key, value := range shape {
31859		switch key {
31860		case "Disabled":
31861			if value != nil {
31862				jtv, ok := value.(bool)
31863				if !ok {
31864					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
31865				}
31866				sv.Disabled = ptr.Bool(jtv)
31867			}
31868
31869		case "Routes":
31870			if err := awsRestjson1_deserializeDocumentOriginationRouteList(&sv.Routes, value); err != nil {
31871				return err
31872			}
31873
31874		default:
31875			_, _ = key, value
31876
31877		}
31878	}
31879	*v = sv
31880	return nil
31881}
31882
31883func awsRestjson1_deserializeDocumentOriginationRoute(v **types.OriginationRoute, value interface{}) error {
31884	if v == nil {
31885		return fmt.Errorf("unexpected nil of type %T", v)
31886	}
31887	if value == nil {
31888		return nil
31889	}
31890
31891	shape, ok := value.(map[string]interface{})
31892	if !ok {
31893		return fmt.Errorf("unexpected JSON type %v", value)
31894	}
31895
31896	var sv *types.OriginationRoute
31897	if *v == nil {
31898		sv = &types.OriginationRoute{}
31899	} else {
31900		sv = *v
31901	}
31902
31903	for key, value := range shape {
31904		switch key {
31905		case "Host":
31906			if value != nil {
31907				jtv, ok := value.(string)
31908				if !ok {
31909					return fmt.Errorf("expected String to be of type string, got %T instead", value)
31910				}
31911				sv.Host = ptr.String(jtv)
31912			}
31913
31914		case "Port":
31915			if value != nil {
31916				jtv, ok := value.(json.Number)
31917				if !ok {
31918					return fmt.Errorf("expected Port to be json.Number, got %T instead", value)
31919				}
31920				i64, err := jtv.Int64()
31921				if err != nil {
31922					return err
31923				}
31924				sv.Port = ptr.Int32(int32(i64))
31925			}
31926
31927		case "Priority":
31928			if value != nil {
31929				jtv, ok := value.(json.Number)
31930				if !ok {
31931					return fmt.Errorf("expected OriginationRoutePriority to be json.Number, got %T instead", value)
31932				}
31933				i64, err := jtv.Int64()
31934				if err != nil {
31935					return err
31936				}
31937				sv.Priority = ptr.Int32(int32(i64))
31938			}
31939
31940		case "Protocol":
31941			if value != nil {
31942				jtv, ok := value.(string)
31943				if !ok {
31944					return fmt.Errorf("expected OriginationRouteProtocol to be of type string, got %T instead", value)
31945				}
31946				sv.Protocol = types.OriginationRouteProtocol(jtv)
31947			}
31948
31949		case "Weight":
31950			if value != nil {
31951				jtv, ok := value.(json.Number)
31952				if !ok {
31953					return fmt.Errorf("expected OriginationRouteWeight to be json.Number, got %T instead", value)
31954				}
31955				i64, err := jtv.Int64()
31956				if err != nil {
31957					return err
31958				}
31959				sv.Weight = ptr.Int32(int32(i64))
31960			}
31961
31962		default:
31963			_, _ = key, value
31964
31965		}
31966	}
31967	*v = sv
31968	return nil
31969}
31970
31971func awsRestjson1_deserializeDocumentOriginationRouteList(v *[]types.OriginationRoute, value interface{}) error {
31972	if v == nil {
31973		return fmt.Errorf("unexpected nil of type %T", v)
31974	}
31975	if value == nil {
31976		return nil
31977	}
31978
31979	shape, ok := value.([]interface{})
31980	if !ok {
31981		return fmt.Errorf("unexpected JSON type %v", value)
31982	}
31983
31984	var cv []types.OriginationRoute
31985	if *v == nil {
31986		cv = []types.OriginationRoute{}
31987	} else {
31988		cv = *v
31989	}
31990
31991	for _, value := range shape {
31992		var col types.OriginationRoute
31993		destAddr := &col
31994		if err := awsRestjson1_deserializeDocumentOriginationRoute(&destAddr, value); err != nil {
31995			return err
31996		}
31997		col = *destAddr
31998		cv = append(cv, col)
31999
32000	}
32001	*v = cv
32002	return nil
32003}
32004
32005func awsRestjson1_deserializeDocumentParticipant(v **types.Participant, value interface{}) error {
32006	if v == nil {
32007		return fmt.Errorf("unexpected nil of type %T", v)
32008	}
32009	if value == nil {
32010		return nil
32011	}
32012
32013	shape, ok := value.(map[string]interface{})
32014	if !ok {
32015		return fmt.Errorf("unexpected JSON type %v", value)
32016	}
32017
32018	var sv *types.Participant
32019	if *v == nil {
32020		sv = &types.Participant{}
32021	} else {
32022		sv = *v
32023	}
32024
32025	for key, value := range shape {
32026		switch key {
32027		case "PhoneNumber":
32028			if value != nil {
32029				jtv, ok := value.(string)
32030				if !ok {
32031					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32032				}
32033				sv.PhoneNumber = ptr.String(jtv)
32034			}
32035
32036		case "ProxyPhoneNumber":
32037			if value != nil {
32038				jtv, ok := value.(string)
32039				if !ok {
32040					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32041				}
32042				sv.ProxyPhoneNumber = ptr.String(jtv)
32043			}
32044
32045		default:
32046			_, _ = key, value
32047
32048		}
32049	}
32050	*v = sv
32051	return nil
32052}
32053
32054func awsRestjson1_deserializeDocumentParticipants(v *[]types.Participant, value interface{}) error {
32055	if v == nil {
32056		return fmt.Errorf("unexpected nil of type %T", v)
32057	}
32058	if value == nil {
32059		return nil
32060	}
32061
32062	shape, ok := value.([]interface{})
32063	if !ok {
32064		return fmt.Errorf("unexpected JSON type %v", value)
32065	}
32066
32067	var cv []types.Participant
32068	if *v == nil {
32069		cv = []types.Participant{}
32070	} else {
32071		cv = *v
32072	}
32073
32074	for _, value := range shape {
32075		var col types.Participant
32076		destAddr := &col
32077		if err := awsRestjson1_deserializeDocumentParticipant(&destAddr, value); err != nil {
32078			return err
32079		}
32080		col = *destAddr
32081		cv = append(cv, col)
32082
32083	}
32084	*v = cv
32085	return nil
32086}
32087
32088func awsRestjson1_deserializeDocumentPhoneNumber(v **types.PhoneNumber, value interface{}) error {
32089	if v == nil {
32090		return fmt.Errorf("unexpected nil of type %T", v)
32091	}
32092	if value == nil {
32093		return nil
32094	}
32095
32096	shape, ok := value.(map[string]interface{})
32097	if !ok {
32098		return fmt.Errorf("unexpected JSON type %v", value)
32099	}
32100
32101	var sv *types.PhoneNumber
32102	if *v == nil {
32103		sv = &types.PhoneNumber{}
32104	} else {
32105		sv = *v
32106	}
32107
32108	for key, value := range shape {
32109		switch key {
32110		case "Associations":
32111			if err := awsRestjson1_deserializeDocumentPhoneNumberAssociationList(&sv.Associations, value); err != nil {
32112				return err
32113			}
32114
32115		case "CallingName":
32116			if value != nil {
32117				jtv, ok := value.(string)
32118				if !ok {
32119					return fmt.Errorf("expected CallingName to be of type string, got %T instead", value)
32120				}
32121				sv.CallingName = ptr.String(jtv)
32122			}
32123
32124		case "CallingNameStatus":
32125			if value != nil {
32126				jtv, ok := value.(string)
32127				if !ok {
32128					return fmt.Errorf("expected CallingNameStatus to be of type string, got %T instead", value)
32129				}
32130				sv.CallingNameStatus = types.CallingNameStatus(jtv)
32131			}
32132
32133		case "Capabilities":
32134			if err := awsRestjson1_deserializeDocumentPhoneNumberCapabilities(&sv.Capabilities, value); err != nil {
32135				return err
32136			}
32137
32138		case "CreatedTimestamp":
32139			if value != nil {
32140				jtv, ok := value.(string)
32141				if !ok {
32142					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32143				}
32144				t, err := smithytime.ParseDateTime(jtv)
32145				if err != nil {
32146					return err
32147				}
32148				sv.CreatedTimestamp = ptr.Time(t)
32149			}
32150
32151		case "DeletionTimestamp":
32152			if value != nil {
32153				jtv, ok := value.(string)
32154				if !ok {
32155					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32156				}
32157				t, err := smithytime.ParseDateTime(jtv)
32158				if err != nil {
32159					return err
32160				}
32161				sv.DeletionTimestamp = ptr.Time(t)
32162			}
32163
32164		case "E164PhoneNumber":
32165			if value != nil {
32166				jtv, ok := value.(string)
32167				if !ok {
32168					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32169				}
32170				sv.E164PhoneNumber = ptr.String(jtv)
32171			}
32172
32173		case "PhoneNumberId":
32174			if value != nil {
32175				jtv, ok := value.(string)
32176				if !ok {
32177					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32178				}
32179				sv.PhoneNumberId = ptr.String(jtv)
32180			}
32181
32182		case "ProductType":
32183			if value != nil {
32184				jtv, ok := value.(string)
32185				if !ok {
32186					return fmt.Errorf("expected PhoneNumberProductType to be of type string, got %T instead", value)
32187				}
32188				sv.ProductType = types.PhoneNumberProductType(jtv)
32189			}
32190
32191		case "Status":
32192			if value != nil {
32193				jtv, ok := value.(string)
32194				if !ok {
32195					return fmt.Errorf("expected PhoneNumberStatus to be of type string, got %T instead", value)
32196				}
32197				sv.Status = types.PhoneNumberStatus(jtv)
32198			}
32199
32200		case "Type":
32201			if value != nil {
32202				jtv, ok := value.(string)
32203				if !ok {
32204					return fmt.Errorf("expected PhoneNumberType to be of type string, got %T instead", value)
32205				}
32206				sv.Type = types.PhoneNumberType(jtv)
32207			}
32208
32209		case "UpdatedTimestamp":
32210			if value != nil {
32211				jtv, ok := value.(string)
32212				if !ok {
32213					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32214				}
32215				t, err := smithytime.ParseDateTime(jtv)
32216				if err != nil {
32217					return err
32218				}
32219				sv.UpdatedTimestamp = ptr.Time(t)
32220			}
32221
32222		default:
32223			_, _ = key, value
32224
32225		}
32226	}
32227	*v = sv
32228	return nil
32229}
32230
32231func awsRestjson1_deserializeDocumentPhoneNumberAssociation(v **types.PhoneNumberAssociation, value interface{}) error {
32232	if v == nil {
32233		return fmt.Errorf("unexpected nil of type %T", v)
32234	}
32235	if value == nil {
32236		return nil
32237	}
32238
32239	shape, ok := value.(map[string]interface{})
32240	if !ok {
32241		return fmt.Errorf("unexpected JSON type %v", value)
32242	}
32243
32244	var sv *types.PhoneNumberAssociation
32245	if *v == nil {
32246		sv = &types.PhoneNumberAssociation{}
32247	} else {
32248		sv = *v
32249	}
32250
32251	for key, value := range shape {
32252		switch key {
32253		case "AssociatedTimestamp":
32254			if value != nil {
32255				jtv, ok := value.(string)
32256				if !ok {
32257					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32258				}
32259				t, err := smithytime.ParseDateTime(jtv)
32260				if err != nil {
32261					return err
32262				}
32263				sv.AssociatedTimestamp = ptr.Time(t)
32264			}
32265
32266		case "Name":
32267			if value != nil {
32268				jtv, ok := value.(string)
32269				if !ok {
32270					return fmt.Errorf("expected PhoneNumberAssociationName to be of type string, got %T instead", value)
32271				}
32272				sv.Name = types.PhoneNumberAssociationName(jtv)
32273			}
32274
32275		case "Value":
32276			if value != nil {
32277				jtv, ok := value.(string)
32278				if !ok {
32279					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32280				}
32281				sv.Value = ptr.String(jtv)
32282			}
32283
32284		default:
32285			_, _ = key, value
32286
32287		}
32288	}
32289	*v = sv
32290	return nil
32291}
32292
32293func awsRestjson1_deserializeDocumentPhoneNumberAssociationList(v *[]types.PhoneNumberAssociation, value interface{}) error {
32294	if v == nil {
32295		return fmt.Errorf("unexpected nil of type %T", v)
32296	}
32297	if value == nil {
32298		return nil
32299	}
32300
32301	shape, ok := value.([]interface{})
32302	if !ok {
32303		return fmt.Errorf("unexpected JSON type %v", value)
32304	}
32305
32306	var cv []types.PhoneNumberAssociation
32307	if *v == nil {
32308		cv = []types.PhoneNumberAssociation{}
32309	} else {
32310		cv = *v
32311	}
32312
32313	for _, value := range shape {
32314		var col types.PhoneNumberAssociation
32315		destAddr := &col
32316		if err := awsRestjson1_deserializeDocumentPhoneNumberAssociation(&destAddr, value); err != nil {
32317			return err
32318		}
32319		col = *destAddr
32320		cv = append(cv, col)
32321
32322	}
32323	*v = cv
32324	return nil
32325}
32326
32327func awsRestjson1_deserializeDocumentPhoneNumberCapabilities(v **types.PhoneNumberCapabilities, value interface{}) error {
32328	if v == nil {
32329		return fmt.Errorf("unexpected nil of type %T", v)
32330	}
32331	if value == nil {
32332		return nil
32333	}
32334
32335	shape, ok := value.(map[string]interface{})
32336	if !ok {
32337		return fmt.Errorf("unexpected JSON type %v", value)
32338	}
32339
32340	var sv *types.PhoneNumberCapabilities
32341	if *v == nil {
32342		sv = &types.PhoneNumberCapabilities{}
32343	} else {
32344		sv = *v
32345	}
32346
32347	for key, value := range shape {
32348		switch key {
32349		case "InboundCall":
32350			if value != nil {
32351				jtv, ok := value.(bool)
32352				if !ok {
32353					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
32354				}
32355				sv.InboundCall = ptr.Bool(jtv)
32356			}
32357
32358		case "InboundMMS":
32359			if value != nil {
32360				jtv, ok := value.(bool)
32361				if !ok {
32362					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
32363				}
32364				sv.InboundMMS = ptr.Bool(jtv)
32365			}
32366
32367		case "InboundSMS":
32368			if value != nil {
32369				jtv, ok := value.(bool)
32370				if !ok {
32371					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
32372				}
32373				sv.InboundSMS = ptr.Bool(jtv)
32374			}
32375
32376		case "OutboundCall":
32377			if value != nil {
32378				jtv, ok := value.(bool)
32379				if !ok {
32380					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
32381				}
32382				sv.OutboundCall = ptr.Bool(jtv)
32383			}
32384
32385		case "OutboundMMS":
32386			if value != nil {
32387				jtv, ok := value.(bool)
32388				if !ok {
32389					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
32390				}
32391				sv.OutboundMMS = ptr.Bool(jtv)
32392			}
32393
32394		case "OutboundSMS":
32395			if value != nil {
32396				jtv, ok := value.(bool)
32397				if !ok {
32398					return fmt.Errorf("expected NullableBoolean to be of type *bool, got %T instead", value)
32399				}
32400				sv.OutboundSMS = ptr.Bool(jtv)
32401			}
32402
32403		default:
32404			_, _ = key, value
32405
32406		}
32407	}
32408	*v = sv
32409	return nil
32410}
32411
32412func awsRestjson1_deserializeDocumentPhoneNumberError(v **types.PhoneNumberError, value interface{}) error {
32413	if v == nil {
32414		return fmt.Errorf("unexpected nil of type %T", v)
32415	}
32416	if value == nil {
32417		return nil
32418	}
32419
32420	shape, ok := value.(map[string]interface{})
32421	if !ok {
32422		return fmt.Errorf("unexpected JSON type %v", value)
32423	}
32424
32425	var sv *types.PhoneNumberError
32426	if *v == nil {
32427		sv = &types.PhoneNumberError{}
32428	} else {
32429		sv = *v
32430	}
32431
32432	for key, value := range shape {
32433		switch key {
32434		case "ErrorCode":
32435			if value != nil {
32436				jtv, ok := value.(string)
32437				if !ok {
32438					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
32439				}
32440				sv.ErrorCode = types.ErrorCode(jtv)
32441			}
32442
32443		case "ErrorMessage":
32444			if value != nil {
32445				jtv, ok := value.(string)
32446				if !ok {
32447					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32448				}
32449				sv.ErrorMessage = ptr.String(jtv)
32450			}
32451
32452		case "PhoneNumberId":
32453			if value != nil {
32454				jtv, ok := value.(string)
32455				if !ok {
32456					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
32457				}
32458				sv.PhoneNumberId = ptr.String(jtv)
32459			}
32460
32461		default:
32462			_, _ = key, value
32463
32464		}
32465	}
32466	*v = sv
32467	return nil
32468}
32469
32470func awsRestjson1_deserializeDocumentPhoneNumberErrorList(v *[]types.PhoneNumberError, value interface{}) error {
32471	if v == nil {
32472		return fmt.Errorf("unexpected nil of type %T", v)
32473	}
32474	if value == nil {
32475		return nil
32476	}
32477
32478	shape, ok := value.([]interface{})
32479	if !ok {
32480		return fmt.Errorf("unexpected JSON type %v", value)
32481	}
32482
32483	var cv []types.PhoneNumberError
32484	if *v == nil {
32485		cv = []types.PhoneNumberError{}
32486	} else {
32487		cv = *v
32488	}
32489
32490	for _, value := range shape {
32491		var col types.PhoneNumberError
32492		destAddr := &col
32493		if err := awsRestjson1_deserializeDocumentPhoneNumberError(&destAddr, value); err != nil {
32494			return err
32495		}
32496		col = *destAddr
32497		cv = append(cv, col)
32498
32499	}
32500	*v = cv
32501	return nil
32502}
32503
32504func awsRestjson1_deserializeDocumentPhoneNumberList(v *[]types.PhoneNumber, value interface{}) error {
32505	if v == nil {
32506		return fmt.Errorf("unexpected nil of type %T", v)
32507	}
32508	if value == nil {
32509		return nil
32510	}
32511
32512	shape, ok := value.([]interface{})
32513	if !ok {
32514		return fmt.Errorf("unexpected JSON type %v", value)
32515	}
32516
32517	var cv []types.PhoneNumber
32518	if *v == nil {
32519		cv = []types.PhoneNumber{}
32520	} else {
32521		cv = *v
32522	}
32523
32524	for _, value := range shape {
32525		var col types.PhoneNumber
32526		destAddr := &col
32527		if err := awsRestjson1_deserializeDocumentPhoneNumber(&destAddr, value); err != nil {
32528			return err
32529		}
32530		col = *destAddr
32531		cv = append(cv, col)
32532
32533	}
32534	*v = cv
32535	return nil
32536}
32537
32538func awsRestjson1_deserializeDocumentPhoneNumberOrder(v **types.PhoneNumberOrder, value interface{}) error {
32539	if v == nil {
32540		return fmt.Errorf("unexpected nil of type %T", v)
32541	}
32542	if value == nil {
32543		return nil
32544	}
32545
32546	shape, ok := value.(map[string]interface{})
32547	if !ok {
32548		return fmt.Errorf("unexpected JSON type %v", value)
32549	}
32550
32551	var sv *types.PhoneNumberOrder
32552	if *v == nil {
32553		sv = &types.PhoneNumberOrder{}
32554	} else {
32555		sv = *v
32556	}
32557
32558	for key, value := range shape {
32559		switch key {
32560		case "CreatedTimestamp":
32561			if value != nil {
32562				jtv, ok := value.(string)
32563				if !ok {
32564					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32565				}
32566				t, err := smithytime.ParseDateTime(jtv)
32567				if err != nil {
32568					return err
32569				}
32570				sv.CreatedTimestamp = ptr.Time(t)
32571			}
32572
32573		case "OrderedPhoneNumbers":
32574			if err := awsRestjson1_deserializeDocumentOrderedPhoneNumberList(&sv.OrderedPhoneNumbers, value); err != nil {
32575				return err
32576			}
32577
32578		case "PhoneNumberOrderId":
32579			if value != nil {
32580				jtv, ok := value.(string)
32581				if !ok {
32582					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
32583				}
32584				sv.PhoneNumberOrderId = ptr.String(jtv)
32585			}
32586
32587		case "ProductType":
32588			if value != nil {
32589				jtv, ok := value.(string)
32590				if !ok {
32591					return fmt.Errorf("expected PhoneNumberProductType to be of type string, got %T instead", value)
32592				}
32593				sv.ProductType = types.PhoneNumberProductType(jtv)
32594			}
32595
32596		case "Status":
32597			if value != nil {
32598				jtv, ok := value.(string)
32599				if !ok {
32600					return fmt.Errorf("expected PhoneNumberOrderStatus to be of type string, got %T instead", value)
32601				}
32602				sv.Status = types.PhoneNumberOrderStatus(jtv)
32603			}
32604
32605		case "UpdatedTimestamp":
32606			if value != nil {
32607				jtv, ok := value.(string)
32608				if !ok {
32609					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32610				}
32611				t, err := smithytime.ParseDateTime(jtv)
32612				if err != nil {
32613					return err
32614				}
32615				sv.UpdatedTimestamp = ptr.Time(t)
32616			}
32617
32618		default:
32619			_, _ = key, value
32620
32621		}
32622	}
32623	*v = sv
32624	return nil
32625}
32626
32627func awsRestjson1_deserializeDocumentPhoneNumberOrderList(v *[]types.PhoneNumberOrder, value interface{}) error {
32628	if v == nil {
32629		return fmt.Errorf("unexpected nil of type %T", v)
32630	}
32631	if value == nil {
32632		return nil
32633	}
32634
32635	shape, ok := value.([]interface{})
32636	if !ok {
32637		return fmt.Errorf("unexpected JSON type %v", value)
32638	}
32639
32640	var cv []types.PhoneNumberOrder
32641	if *v == nil {
32642		cv = []types.PhoneNumberOrder{}
32643	} else {
32644		cv = *v
32645	}
32646
32647	for _, value := range shape {
32648		var col types.PhoneNumberOrder
32649		destAddr := &col
32650		if err := awsRestjson1_deserializeDocumentPhoneNumberOrder(&destAddr, value); err != nil {
32651			return err
32652		}
32653		col = *destAddr
32654		cv = append(cv, col)
32655
32656	}
32657	*v = cv
32658	return nil
32659}
32660
32661func awsRestjson1_deserializeDocumentProxy(v **types.Proxy, value interface{}) error {
32662	if v == nil {
32663		return fmt.Errorf("unexpected nil of type %T", v)
32664	}
32665	if value == nil {
32666		return nil
32667	}
32668
32669	shape, ok := value.(map[string]interface{})
32670	if !ok {
32671		return fmt.Errorf("unexpected JSON type %v", value)
32672	}
32673
32674	var sv *types.Proxy
32675	if *v == nil {
32676		sv = &types.Proxy{}
32677	} else {
32678		sv = *v
32679	}
32680
32681	for key, value := range shape {
32682		switch key {
32683		case "DefaultSessionExpiryMinutes":
32684			if value != nil {
32685				jtv, ok := value.(json.Number)
32686				if !ok {
32687					return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
32688				}
32689				i64, err := jtv.Int64()
32690				if err != nil {
32691					return err
32692				}
32693				sv.DefaultSessionExpiryMinutes = ptr.Int32(int32(i64))
32694			}
32695
32696		case "Disabled":
32697			if value != nil {
32698				jtv, ok := value.(bool)
32699				if !ok {
32700					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
32701				}
32702				sv.Disabled = ptr.Bool(jtv)
32703			}
32704
32705		case "FallBackPhoneNumber":
32706			if value != nil {
32707				jtv, ok := value.(string)
32708				if !ok {
32709					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
32710				}
32711				sv.FallBackPhoneNumber = ptr.String(jtv)
32712			}
32713
32714		case "PhoneNumberCountries":
32715			if err := awsRestjson1_deserializeDocumentStringList(&sv.PhoneNumberCountries, value); err != nil {
32716				return err
32717			}
32718
32719		default:
32720			_, _ = key, value
32721
32722		}
32723	}
32724	*v = sv
32725	return nil
32726}
32727
32728func awsRestjson1_deserializeDocumentProxySession(v **types.ProxySession, value interface{}) error {
32729	if v == nil {
32730		return fmt.Errorf("unexpected nil of type %T", v)
32731	}
32732	if value == nil {
32733		return nil
32734	}
32735
32736	shape, ok := value.(map[string]interface{})
32737	if !ok {
32738		return fmt.Errorf("unexpected JSON type %v", value)
32739	}
32740
32741	var sv *types.ProxySession
32742	if *v == nil {
32743		sv = &types.ProxySession{}
32744	} else {
32745		sv = *v
32746	}
32747
32748	for key, value := range shape {
32749		switch key {
32750		case "Capabilities":
32751			if err := awsRestjson1_deserializeDocumentCapabilityList(&sv.Capabilities, value); err != nil {
32752				return err
32753			}
32754
32755		case "CreatedTimestamp":
32756			if value != nil {
32757				jtv, ok := value.(string)
32758				if !ok {
32759					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32760				}
32761				t, err := smithytime.ParseDateTime(jtv)
32762				if err != nil {
32763					return err
32764				}
32765				sv.CreatedTimestamp = ptr.Time(t)
32766			}
32767
32768		case "EndedTimestamp":
32769			if value != nil {
32770				jtv, ok := value.(string)
32771				if !ok {
32772					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32773				}
32774				t, err := smithytime.ParseDateTime(jtv)
32775				if err != nil {
32776					return err
32777				}
32778				sv.EndedTimestamp = ptr.Time(t)
32779			}
32780
32781		case "ExpiryMinutes":
32782			if value != nil {
32783				jtv, ok := value.(json.Number)
32784				if !ok {
32785					return fmt.Errorf("expected PositiveInteger to be json.Number, got %T instead", value)
32786				}
32787				i64, err := jtv.Int64()
32788				if err != nil {
32789					return err
32790				}
32791				sv.ExpiryMinutes = ptr.Int32(int32(i64))
32792			}
32793
32794		case "GeoMatchLevel":
32795			if value != nil {
32796				jtv, ok := value.(string)
32797				if !ok {
32798					return fmt.Errorf("expected GeoMatchLevel to be of type string, got %T instead", value)
32799				}
32800				sv.GeoMatchLevel = types.GeoMatchLevel(jtv)
32801			}
32802
32803		case "GeoMatchParams":
32804			if err := awsRestjson1_deserializeDocumentGeoMatchParams(&sv.GeoMatchParams, value); err != nil {
32805				return err
32806			}
32807
32808		case "Name":
32809			if value != nil {
32810				jtv, ok := value.(string)
32811				if !ok {
32812					return fmt.Errorf("expected String128 to be of type string, got %T instead", value)
32813				}
32814				sv.Name = ptr.String(jtv)
32815			}
32816
32817		case "NumberSelectionBehavior":
32818			if value != nil {
32819				jtv, ok := value.(string)
32820				if !ok {
32821					return fmt.Errorf("expected NumberSelectionBehavior to be of type string, got %T instead", value)
32822				}
32823				sv.NumberSelectionBehavior = types.NumberSelectionBehavior(jtv)
32824			}
32825
32826		case "Participants":
32827			if err := awsRestjson1_deserializeDocumentParticipants(&sv.Participants, value); err != nil {
32828				return err
32829			}
32830
32831		case "ProxySessionId":
32832			if value != nil {
32833				jtv, ok := value.(string)
32834				if !ok {
32835					return fmt.Errorf("expected NonEmptyString128 to be of type string, got %T instead", value)
32836				}
32837				sv.ProxySessionId = ptr.String(jtv)
32838			}
32839
32840		case "Status":
32841			if value != nil {
32842				jtv, ok := value.(string)
32843				if !ok {
32844					return fmt.Errorf("expected ProxySessionStatus to be of type string, got %T instead", value)
32845				}
32846				sv.Status = types.ProxySessionStatus(jtv)
32847			}
32848
32849		case "UpdatedTimestamp":
32850			if value != nil {
32851				jtv, ok := value.(string)
32852				if !ok {
32853					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
32854				}
32855				t, err := smithytime.ParseDateTime(jtv)
32856				if err != nil {
32857					return err
32858				}
32859				sv.UpdatedTimestamp = ptr.Time(t)
32860			}
32861
32862		case "VoiceConnectorId":
32863			if value != nil {
32864				jtv, ok := value.(string)
32865				if !ok {
32866					return fmt.Errorf("expected NonEmptyString128 to be of type string, got %T instead", value)
32867				}
32868				sv.VoiceConnectorId = ptr.String(jtv)
32869			}
32870
32871		default:
32872			_, _ = key, value
32873
32874		}
32875	}
32876	*v = sv
32877	return nil
32878}
32879
32880func awsRestjson1_deserializeDocumentProxySessions(v *[]types.ProxySession, value interface{}) error {
32881	if v == nil {
32882		return fmt.Errorf("unexpected nil of type %T", v)
32883	}
32884	if value == nil {
32885		return nil
32886	}
32887
32888	shape, ok := value.([]interface{})
32889	if !ok {
32890		return fmt.Errorf("unexpected JSON type %v", value)
32891	}
32892
32893	var cv []types.ProxySession
32894	if *v == nil {
32895		cv = []types.ProxySession{}
32896	} else {
32897		cv = *v
32898	}
32899
32900	for _, value := range shape {
32901		var col types.ProxySession
32902		destAddr := &col
32903		if err := awsRestjson1_deserializeDocumentProxySession(&destAddr, value); err != nil {
32904			return err
32905		}
32906		col = *destAddr
32907		cv = append(cv, col)
32908
32909	}
32910	*v = cv
32911	return nil
32912}
32913
32914func awsRestjson1_deserializeDocumentResourceLimitExceededException(v **types.ResourceLimitExceededException, value interface{}) error {
32915	if v == nil {
32916		return fmt.Errorf("unexpected nil of type %T", v)
32917	}
32918	if value == nil {
32919		return nil
32920	}
32921
32922	shape, ok := value.(map[string]interface{})
32923	if !ok {
32924		return fmt.Errorf("unexpected JSON type %v", value)
32925	}
32926
32927	var sv *types.ResourceLimitExceededException
32928	if *v == nil {
32929		sv = &types.ResourceLimitExceededException{}
32930	} else {
32931		sv = *v
32932	}
32933
32934	for key, value := range shape {
32935		switch key {
32936		case "Code":
32937			if value != nil {
32938				jtv, ok := value.(string)
32939				if !ok {
32940					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
32941				}
32942				sv.Code = types.ErrorCode(jtv)
32943			}
32944
32945		case "Message":
32946			if value != nil {
32947				jtv, ok := value.(string)
32948				if !ok {
32949					return fmt.Errorf("expected String to be of type string, got %T instead", value)
32950				}
32951				sv.Message = ptr.String(jtv)
32952			}
32953
32954		default:
32955			_, _ = key, value
32956
32957		}
32958	}
32959	*v = sv
32960	return nil
32961}
32962
32963func awsRestjson1_deserializeDocumentRetentionSettings(v **types.RetentionSettings, value interface{}) error {
32964	if v == nil {
32965		return fmt.Errorf("unexpected nil of type %T", v)
32966	}
32967	if value == nil {
32968		return nil
32969	}
32970
32971	shape, ok := value.(map[string]interface{})
32972	if !ok {
32973		return fmt.Errorf("unexpected JSON type %v", value)
32974	}
32975
32976	var sv *types.RetentionSettings
32977	if *v == nil {
32978		sv = &types.RetentionSettings{}
32979	} else {
32980		sv = *v
32981	}
32982
32983	for key, value := range shape {
32984		switch key {
32985		case "ConversationRetentionSettings":
32986			if err := awsRestjson1_deserializeDocumentConversationRetentionSettings(&sv.ConversationRetentionSettings, value); err != nil {
32987				return err
32988			}
32989
32990		case "RoomRetentionSettings":
32991			if err := awsRestjson1_deserializeDocumentRoomRetentionSettings(&sv.RoomRetentionSettings, value); err != nil {
32992				return err
32993			}
32994
32995		default:
32996			_, _ = key, value
32997
32998		}
32999	}
33000	*v = sv
33001	return nil
33002}
33003
33004func awsRestjson1_deserializeDocumentRoom(v **types.Room, value interface{}) error {
33005	if v == nil {
33006		return fmt.Errorf("unexpected nil of type %T", v)
33007	}
33008	if value == nil {
33009		return nil
33010	}
33011
33012	shape, ok := value.(map[string]interface{})
33013	if !ok {
33014		return fmt.Errorf("unexpected JSON type %v", value)
33015	}
33016
33017	var sv *types.Room
33018	if *v == nil {
33019		sv = &types.Room{}
33020	} else {
33021		sv = *v
33022	}
33023
33024	for key, value := range shape {
33025		switch key {
33026		case "AccountId":
33027			if value != nil {
33028				jtv, ok := value.(string)
33029				if !ok {
33030					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33031				}
33032				sv.AccountId = ptr.String(jtv)
33033			}
33034
33035		case "CreatedBy":
33036			if value != nil {
33037				jtv, ok := value.(string)
33038				if !ok {
33039					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33040				}
33041				sv.CreatedBy = ptr.String(jtv)
33042			}
33043
33044		case "CreatedTimestamp":
33045			if value != nil {
33046				jtv, ok := value.(string)
33047				if !ok {
33048					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33049				}
33050				t, err := smithytime.ParseDateTime(jtv)
33051				if err != nil {
33052					return err
33053				}
33054				sv.CreatedTimestamp = ptr.Time(t)
33055			}
33056
33057		case "Name":
33058			if value != nil {
33059				jtv, ok := value.(string)
33060				if !ok {
33061					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
33062				}
33063				sv.Name = ptr.String(jtv)
33064			}
33065
33066		case "RoomId":
33067			if value != nil {
33068				jtv, ok := value.(string)
33069				if !ok {
33070					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33071				}
33072				sv.RoomId = ptr.String(jtv)
33073			}
33074
33075		case "UpdatedTimestamp":
33076			if value != nil {
33077				jtv, ok := value.(string)
33078				if !ok {
33079					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33080				}
33081				t, err := smithytime.ParseDateTime(jtv)
33082				if err != nil {
33083					return err
33084				}
33085				sv.UpdatedTimestamp = ptr.Time(t)
33086			}
33087
33088		default:
33089			_, _ = key, value
33090
33091		}
33092	}
33093	*v = sv
33094	return nil
33095}
33096
33097func awsRestjson1_deserializeDocumentRoomList(v *[]types.Room, value interface{}) error {
33098	if v == nil {
33099		return fmt.Errorf("unexpected nil of type %T", v)
33100	}
33101	if value == nil {
33102		return nil
33103	}
33104
33105	shape, ok := value.([]interface{})
33106	if !ok {
33107		return fmt.Errorf("unexpected JSON type %v", value)
33108	}
33109
33110	var cv []types.Room
33111	if *v == nil {
33112		cv = []types.Room{}
33113	} else {
33114		cv = *v
33115	}
33116
33117	for _, value := range shape {
33118		var col types.Room
33119		destAddr := &col
33120		if err := awsRestjson1_deserializeDocumentRoom(&destAddr, value); err != nil {
33121			return err
33122		}
33123		col = *destAddr
33124		cv = append(cv, col)
33125
33126	}
33127	*v = cv
33128	return nil
33129}
33130
33131func awsRestjson1_deserializeDocumentRoomMembership(v **types.RoomMembership, value interface{}) error {
33132	if v == nil {
33133		return fmt.Errorf("unexpected nil of type %T", v)
33134	}
33135	if value == nil {
33136		return nil
33137	}
33138
33139	shape, ok := value.(map[string]interface{})
33140	if !ok {
33141		return fmt.Errorf("unexpected JSON type %v", value)
33142	}
33143
33144	var sv *types.RoomMembership
33145	if *v == nil {
33146		sv = &types.RoomMembership{}
33147	} else {
33148		sv = *v
33149	}
33150
33151	for key, value := range shape {
33152		switch key {
33153		case "InvitedBy":
33154			if value != nil {
33155				jtv, ok := value.(string)
33156				if !ok {
33157					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33158				}
33159				sv.InvitedBy = ptr.String(jtv)
33160			}
33161
33162		case "Member":
33163			if err := awsRestjson1_deserializeDocumentMember(&sv.Member, value); err != nil {
33164				return err
33165			}
33166
33167		case "Role":
33168			if value != nil {
33169				jtv, ok := value.(string)
33170				if !ok {
33171					return fmt.Errorf("expected RoomMembershipRole to be of type string, got %T instead", value)
33172				}
33173				sv.Role = types.RoomMembershipRole(jtv)
33174			}
33175
33176		case "RoomId":
33177			if value != nil {
33178				jtv, ok := value.(string)
33179				if !ok {
33180					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33181				}
33182				sv.RoomId = ptr.String(jtv)
33183			}
33184
33185		case "UpdatedTimestamp":
33186			if value != nil {
33187				jtv, ok := value.(string)
33188				if !ok {
33189					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33190				}
33191				t, err := smithytime.ParseDateTime(jtv)
33192				if err != nil {
33193					return err
33194				}
33195				sv.UpdatedTimestamp = ptr.Time(t)
33196			}
33197
33198		default:
33199			_, _ = key, value
33200
33201		}
33202	}
33203	*v = sv
33204	return nil
33205}
33206
33207func awsRestjson1_deserializeDocumentRoomMembershipList(v *[]types.RoomMembership, value interface{}) error {
33208	if v == nil {
33209		return fmt.Errorf("unexpected nil of type %T", v)
33210	}
33211	if value == nil {
33212		return nil
33213	}
33214
33215	shape, ok := value.([]interface{})
33216	if !ok {
33217		return fmt.Errorf("unexpected JSON type %v", value)
33218	}
33219
33220	var cv []types.RoomMembership
33221	if *v == nil {
33222		cv = []types.RoomMembership{}
33223	} else {
33224		cv = *v
33225	}
33226
33227	for _, value := range shape {
33228		var col types.RoomMembership
33229		destAddr := &col
33230		if err := awsRestjson1_deserializeDocumentRoomMembership(&destAddr, value); err != nil {
33231			return err
33232		}
33233		col = *destAddr
33234		cv = append(cv, col)
33235
33236	}
33237	*v = cv
33238	return nil
33239}
33240
33241func awsRestjson1_deserializeDocumentRoomRetentionSettings(v **types.RoomRetentionSettings, value interface{}) error {
33242	if v == nil {
33243		return fmt.Errorf("unexpected nil of type %T", v)
33244	}
33245	if value == nil {
33246		return nil
33247	}
33248
33249	shape, ok := value.(map[string]interface{})
33250	if !ok {
33251		return fmt.Errorf("unexpected JSON type %v", value)
33252	}
33253
33254	var sv *types.RoomRetentionSettings
33255	if *v == nil {
33256		sv = &types.RoomRetentionSettings{}
33257	} else {
33258		sv = *v
33259	}
33260
33261	for key, value := range shape {
33262		switch key {
33263		case "RetentionDays":
33264			if value != nil {
33265				jtv, ok := value.(json.Number)
33266				if !ok {
33267					return fmt.Errorf("expected RetentionDays to be json.Number, got %T instead", value)
33268				}
33269				i64, err := jtv.Int64()
33270				if err != nil {
33271					return err
33272				}
33273				sv.RetentionDays = ptr.Int32(int32(i64))
33274			}
33275
33276		default:
33277			_, _ = key, value
33278
33279		}
33280	}
33281	*v = sv
33282	return nil
33283}
33284
33285func awsRestjson1_deserializeDocumentSensitiveStringList(v *[]string, 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.([]interface{})
33294	if !ok {
33295		return fmt.Errorf("unexpected JSON type %v", value)
33296	}
33297
33298	var cv []string
33299	if *v == nil {
33300		cv = []string{}
33301	} else {
33302		cv = *v
33303	}
33304
33305	for _, value := range shape {
33306		var col string
33307		if value != nil {
33308			jtv, ok := value.(string)
33309			if !ok {
33310				return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
33311			}
33312			col = jtv
33313		}
33314		cv = append(cv, col)
33315
33316	}
33317	*v = cv
33318	return nil
33319}
33320
33321func awsRestjson1_deserializeDocumentServiceFailureException(v **types.ServiceFailureException, value interface{}) error {
33322	if v == nil {
33323		return fmt.Errorf("unexpected nil of type %T", v)
33324	}
33325	if value == nil {
33326		return nil
33327	}
33328
33329	shape, ok := value.(map[string]interface{})
33330	if !ok {
33331		return fmt.Errorf("unexpected JSON type %v", value)
33332	}
33333
33334	var sv *types.ServiceFailureException
33335	if *v == nil {
33336		sv = &types.ServiceFailureException{}
33337	} else {
33338		sv = *v
33339	}
33340
33341	for key, value := range shape {
33342		switch key {
33343		case "Code":
33344			if value != nil {
33345				jtv, ok := value.(string)
33346				if !ok {
33347					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
33348				}
33349				sv.Code = types.ErrorCode(jtv)
33350			}
33351
33352		case "Message":
33353			if value != nil {
33354				jtv, ok := value.(string)
33355				if !ok {
33356					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33357				}
33358				sv.Message = ptr.String(jtv)
33359			}
33360
33361		default:
33362			_, _ = key, value
33363
33364		}
33365	}
33366	*v = sv
33367	return nil
33368}
33369
33370func awsRestjson1_deserializeDocumentServiceUnavailableException(v **types.ServiceUnavailableException, value interface{}) error {
33371	if v == nil {
33372		return fmt.Errorf("unexpected nil of type %T", v)
33373	}
33374	if value == nil {
33375		return nil
33376	}
33377
33378	shape, ok := value.(map[string]interface{})
33379	if !ok {
33380		return fmt.Errorf("unexpected JSON type %v", value)
33381	}
33382
33383	var sv *types.ServiceUnavailableException
33384	if *v == nil {
33385		sv = &types.ServiceUnavailableException{}
33386	} else {
33387		sv = *v
33388	}
33389
33390	for key, value := range shape {
33391		switch key {
33392		case "Code":
33393			if value != nil {
33394				jtv, ok := value.(string)
33395				if !ok {
33396					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
33397				}
33398				sv.Code = types.ErrorCode(jtv)
33399			}
33400
33401		case "Message":
33402			if value != nil {
33403				jtv, ok := value.(string)
33404				if !ok {
33405					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33406				}
33407				sv.Message = ptr.String(jtv)
33408			}
33409
33410		default:
33411			_, _ = key, value
33412
33413		}
33414	}
33415	*v = sv
33416	return nil
33417}
33418
33419func awsRestjson1_deserializeDocumentSigninDelegateGroup(v **types.SigninDelegateGroup, value interface{}) error {
33420	if v == nil {
33421		return fmt.Errorf("unexpected nil of type %T", v)
33422	}
33423	if value == nil {
33424		return nil
33425	}
33426
33427	shape, ok := value.(map[string]interface{})
33428	if !ok {
33429		return fmt.Errorf("unexpected JSON type %v", value)
33430	}
33431
33432	var sv *types.SigninDelegateGroup
33433	if *v == nil {
33434		sv = &types.SigninDelegateGroup{}
33435	} else {
33436		sv = *v
33437	}
33438
33439	for key, value := range shape {
33440		switch key {
33441		case "GroupName":
33442			if value != nil {
33443				jtv, ok := value.(string)
33444				if !ok {
33445					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33446				}
33447				sv.GroupName = ptr.String(jtv)
33448			}
33449
33450		default:
33451			_, _ = key, value
33452
33453		}
33454	}
33455	*v = sv
33456	return nil
33457}
33458
33459func awsRestjson1_deserializeDocumentSigninDelegateGroupList(v *[]types.SigninDelegateGroup, value interface{}) error {
33460	if v == nil {
33461		return fmt.Errorf("unexpected nil of type %T", v)
33462	}
33463	if value == nil {
33464		return nil
33465	}
33466
33467	shape, ok := value.([]interface{})
33468	if !ok {
33469		return fmt.Errorf("unexpected JSON type %v", value)
33470	}
33471
33472	var cv []types.SigninDelegateGroup
33473	if *v == nil {
33474		cv = []types.SigninDelegateGroup{}
33475	} else {
33476		cv = *v
33477	}
33478
33479	for _, value := range shape {
33480		var col types.SigninDelegateGroup
33481		destAddr := &col
33482		if err := awsRestjson1_deserializeDocumentSigninDelegateGroup(&destAddr, value); err != nil {
33483			return err
33484		}
33485		col = *destAddr
33486		cv = append(cv, col)
33487
33488	}
33489	*v = cv
33490	return nil
33491}
33492
33493func awsRestjson1_deserializeDocumentSipMediaApplication(v **types.SipMediaApplication, value interface{}) error {
33494	if v == nil {
33495		return fmt.Errorf("unexpected nil of type %T", v)
33496	}
33497	if value == nil {
33498		return nil
33499	}
33500
33501	shape, ok := value.(map[string]interface{})
33502	if !ok {
33503		return fmt.Errorf("unexpected JSON type %v", value)
33504	}
33505
33506	var sv *types.SipMediaApplication
33507	if *v == nil {
33508		sv = &types.SipMediaApplication{}
33509	} else {
33510		sv = *v
33511	}
33512
33513	for key, value := range shape {
33514		switch key {
33515		case "AwsRegion":
33516			if value != nil {
33517				jtv, ok := value.(string)
33518				if !ok {
33519					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33520				}
33521				sv.AwsRegion = ptr.String(jtv)
33522			}
33523
33524		case "CreatedTimestamp":
33525			if value != nil {
33526				jtv, ok := value.(string)
33527				if !ok {
33528					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33529				}
33530				t, err := smithytime.ParseDateTime(jtv)
33531				if err != nil {
33532					return err
33533				}
33534				sv.CreatedTimestamp = ptr.Time(t)
33535			}
33536
33537		case "Endpoints":
33538			if err := awsRestjson1_deserializeDocumentSipMediaApplicationEndpointList(&sv.Endpoints, value); err != nil {
33539				return err
33540			}
33541
33542		case "Name":
33543			if value != nil {
33544				jtv, ok := value.(string)
33545				if !ok {
33546					return fmt.Errorf("expected SipMediaApplicationName to be of type string, got %T instead", value)
33547				}
33548				sv.Name = ptr.String(jtv)
33549			}
33550
33551		case "SipMediaApplicationId":
33552			if value != nil {
33553				jtv, ok := value.(string)
33554				if !ok {
33555					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33556				}
33557				sv.SipMediaApplicationId = ptr.String(jtv)
33558			}
33559
33560		case "UpdatedTimestamp":
33561			if value != nil {
33562				jtv, ok := value.(string)
33563				if !ok {
33564					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33565				}
33566				t, err := smithytime.ParseDateTime(jtv)
33567				if err != nil {
33568					return err
33569				}
33570				sv.UpdatedTimestamp = ptr.Time(t)
33571			}
33572
33573		default:
33574			_, _ = key, value
33575
33576		}
33577	}
33578	*v = sv
33579	return nil
33580}
33581
33582func awsRestjson1_deserializeDocumentSipMediaApplicationCall(v **types.SipMediaApplicationCall, value interface{}) error {
33583	if v == nil {
33584		return fmt.Errorf("unexpected nil of type %T", v)
33585	}
33586	if value == nil {
33587		return nil
33588	}
33589
33590	shape, ok := value.(map[string]interface{})
33591	if !ok {
33592		return fmt.Errorf("unexpected JSON type %v", value)
33593	}
33594
33595	var sv *types.SipMediaApplicationCall
33596	if *v == nil {
33597		sv = &types.SipMediaApplicationCall{}
33598	} else {
33599		sv = *v
33600	}
33601
33602	for key, value := range shape {
33603		switch key {
33604		case "TransactionId":
33605			if value != nil {
33606				jtv, ok := value.(string)
33607				if !ok {
33608					return fmt.Errorf("expected GuidString to be of type string, got %T instead", value)
33609				}
33610				sv.TransactionId = ptr.String(jtv)
33611			}
33612
33613		default:
33614			_, _ = key, value
33615
33616		}
33617	}
33618	*v = sv
33619	return nil
33620}
33621
33622func awsRestjson1_deserializeDocumentSipMediaApplicationEndpoint(v **types.SipMediaApplicationEndpoint, value interface{}) error {
33623	if v == nil {
33624		return fmt.Errorf("unexpected nil of type %T", v)
33625	}
33626	if value == nil {
33627		return nil
33628	}
33629
33630	shape, ok := value.(map[string]interface{})
33631	if !ok {
33632		return fmt.Errorf("unexpected JSON type %v", value)
33633	}
33634
33635	var sv *types.SipMediaApplicationEndpoint
33636	if *v == nil {
33637		sv = &types.SipMediaApplicationEndpoint{}
33638	} else {
33639		sv = *v
33640	}
33641
33642	for key, value := range shape {
33643		switch key {
33644		case "LambdaArn":
33645			if value != nil {
33646				jtv, ok := value.(string)
33647				if !ok {
33648					return fmt.Errorf("expected FunctionArn to be of type string, got %T instead", value)
33649				}
33650				sv.LambdaArn = ptr.String(jtv)
33651			}
33652
33653		default:
33654			_, _ = key, value
33655
33656		}
33657	}
33658	*v = sv
33659	return nil
33660}
33661
33662func awsRestjson1_deserializeDocumentSipMediaApplicationEndpointList(v *[]types.SipMediaApplicationEndpoint, value interface{}) error {
33663	if v == nil {
33664		return fmt.Errorf("unexpected nil of type %T", v)
33665	}
33666	if value == nil {
33667		return nil
33668	}
33669
33670	shape, ok := value.([]interface{})
33671	if !ok {
33672		return fmt.Errorf("unexpected JSON type %v", value)
33673	}
33674
33675	var cv []types.SipMediaApplicationEndpoint
33676	if *v == nil {
33677		cv = []types.SipMediaApplicationEndpoint{}
33678	} else {
33679		cv = *v
33680	}
33681
33682	for _, value := range shape {
33683		var col types.SipMediaApplicationEndpoint
33684		destAddr := &col
33685		if err := awsRestjson1_deserializeDocumentSipMediaApplicationEndpoint(&destAddr, value); err != nil {
33686			return err
33687		}
33688		col = *destAddr
33689		cv = append(cv, col)
33690
33691	}
33692	*v = cv
33693	return nil
33694}
33695
33696func awsRestjson1_deserializeDocumentSipMediaApplicationList(v *[]types.SipMediaApplication, value interface{}) error {
33697	if v == nil {
33698		return fmt.Errorf("unexpected nil of type %T", v)
33699	}
33700	if value == nil {
33701		return nil
33702	}
33703
33704	shape, ok := value.([]interface{})
33705	if !ok {
33706		return fmt.Errorf("unexpected JSON type %v", value)
33707	}
33708
33709	var cv []types.SipMediaApplication
33710	if *v == nil {
33711		cv = []types.SipMediaApplication{}
33712	} else {
33713		cv = *v
33714	}
33715
33716	for _, value := range shape {
33717		var col types.SipMediaApplication
33718		destAddr := &col
33719		if err := awsRestjson1_deserializeDocumentSipMediaApplication(&destAddr, value); err != nil {
33720			return err
33721		}
33722		col = *destAddr
33723		cv = append(cv, col)
33724
33725	}
33726	*v = cv
33727	return nil
33728}
33729
33730func awsRestjson1_deserializeDocumentSipMediaApplicationLoggingConfiguration(v **types.SipMediaApplicationLoggingConfiguration, value interface{}) error {
33731	if v == nil {
33732		return fmt.Errorf("unexpected nil of type %T", v)
33733	}
33734	if value == nil {
33735		return nil
33736	}
33737
33738	shape, ok := value.(map[string]interface{})
33739	if !ok {
33740		return fmt.Errorf("unexpected JSON type %v", value)
33741	}
33742
33743	var sv *types.SipMediaApplicationLoggingConfiguration
33744	if *v == nil {
33745		sv = &types.SipMediaApplicationLoggingConfiguration{}
33746	} else {
33747		sv = *v
33748	}
33749
33750	for key, value := range shape {
33751		switch key {
33752		case "EnableSipMediaApplicationMessageLogs":
33753			if value != nil {
33754				jtv, ok := value.(bool)
33755				if !ok {
33756					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
33757				}
33758				sv.EnableSipMediaApplicationMessageLogs = ptr.Bool(jtv)
33759			}
33760
33761		default:
33762			_, _ = key, value
33763
33764		}
33765	}
33766	*v = sv
33767	return nil
33768}
33769
33770func awsRestjson1_deserializeDocumentSipRule(v **types.SipRule, value interface{}) error {
33771	if v == nil {
33772		return fmt.Errorf("unexpected nil of type %T", v)
33773	}
33774	if value == nil {
33775		return nil
33776	}
33777
33778	shape, ok := value.(map[string]interface{})
33779	if !ok {
33780		return fmt.Errorf("unexpected JSON type %v", value)
33781	}
33782
33783	var sv *types.SipRule
33784	if *v == nil {
33785		sv = &types.SipRule{}
33786	} else {
33787		sv = *v
33788	}
33789
33790	for key, value := range shape {
33791		switch key {
33792		case "CreatedTimestamp":
33793			if value != nil {
33794				jtv, ok := value.(string)
33795				if !ok {
33796					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33797				}
33798				t, err := smithytime.ParseDateTime(jtv)
33799				if err != nil {
33800					return err
33801				}
33802				sv.CreatedTimestamp = ptr.Time(t)
33803			}
33804
33805		case "Disabled":
33806			if value != nil {
33807				jtv, ok := value.(bool)
33808				if !ok {
33809					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
33810				}
33811				sv.Disabled = ptr.Bool(jtv)
33812			}
33813
33814		case "Name":
33815			if value != nil {
33816				jtv, ok := value.(string)
33817				if !ok {
33818					return fmt.Errorf("expected SipRuleName to be of type string, got %T instead", value)
33819				}
33820				sv.Name = ptr.String(jtv)
33821			}
33822
33823		case "SipRuleId":
33824			if value != nil {
33825				jtv, ok := value.(string)
33826				if !ok {
33827					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33828				}
33829				sv.SipRuleId = ptr.String(jtv)
33830			}
33831
33832		case "TargetApplications":
33833			if err := awsRestjson1_deserializeDocumentSipRuleTargetApplicationList(&sv.TargetApplications, value); err != nil {
33834				return err
33835			}
33836
33837		case "TriggerType":
33838			if value != nil {
33839				jtv, ok := value.(string)
33840				if !ok {
33841					return fmt.Errorf("expected SipRuleTriggerType to be of type string, got %T instead", value)
33842				}
33843				sv.TriggerType = types.SipRuleTriggerType(jtv)
33844			}
33845
33846		case "TriggerValue":
33847			if value != nil {
33848				jtv, ok := value.(string)
33849				if !ok {
33850					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33851				}
33852				sv.TriggerValue = ptr.String(jtv)
33853			}
33854
33855		case "UpdatedTimestamp":
33856			if value != nil {
33857				jtv, ok := value.(string)
33858				if !ok {
33859					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
33860				}
33861				t, err := smithytime.ParseDateTime(jtv)
33862				if err != nil {
33863					return err
33864				}
33865				sv.UpdatedTimestamp = ptr.Time(t)
33866			}
33867
33868		default:
33869			_, _ = key, value
33870
33871		}
33872	}
33873	*v = sv
33874	return nil
33875}
33876
33877func awsRestjson1_deserializeDocumentSipRuleList(v *[]types.SipRule, value interface{}) error {
33878	if v == nil {
33879		return fmt.Errorf("unexpected nil of type %T", v)
33880	}
33881	if value == nil {
33882		return nil
33883	}
33884
33885	shape, ok := value.([]interface{})
33886	if !ok {
33887		return fmt.Errorf("unexpected JSON type %v", value)
33888	}
33889
33890	var cv []types.SipRule
33891	if *v == nil {
33892		cv = []types.SipRule{}
33893	} else {
33894		cv = *v
33895	}
33896
33897	for _, value := range shape {
33898		var col types.SipRule
33899		destAddr := &col
33900		if err := awsRestjson1_deserializeDocumentSipRule(&destAddr, value); err != nil {
33901			return err
33902		}
33903		col = *destAddr
33904		cv = append(cv, col)
33905
33906	}
33907	*v = cv
33908	return nil
33909}
33910
33911func awsRestjson1_deserializeDocumentSipRuleTargetApplication(v **types.SipRuleTargetApplication, value interface{}) error {
33912	if v == nil {
33913		return fmt.Errorf("unexpected nil of type %T", v)
33914	}
33915	if value == nil {
33916		return nil
33917	}
33918
33919	shape, ok := value.(map[string]interface{})
33920	if !ok {
33921		return fmt.Errorf("unexpected JSON type %v", value)
33922	}
33923
33924	var sv *types.SipRuleTargetApplication
33925	if *v == nil {
33926		sv = &types.SipRuleTargetApplication{}
33927	} else {
33928		sv = *v
33929	}
33930
33931	for key, value := range shape {
33932		switch key {
33933		case "AwsRegion":
33934			if value != nil {
33935				jtv, ok := value.(string)
33936				if !ok {
33937					return fmt.Errorf("expected String to be of type string, got %T instead", value)
33938				}
33939				sv.AwsRegion = ptr.String(jtv)
33940			}
33941
33942		case "Priority":
33943			if value != nil {
33944				jtv, ok := value.(json.Number)
33945				if !ok {
33946					return fmt.Errorf("expected SipApplicationPriority to be json.Number, got %T instead", value)
33947				}
33948				i64, err := jtv.Int64()
33949				if err != nil {
33950					return err
33951				}
33952				sv.Priority = ptr.Int32(int32(i64))
33953			}
33954
33955		case "SipMediaApplicationId":
33956			if value != nil {
33957				jtv, ok := value.(string)
33958				if !ok {
33959					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
33960				}
33961				sv.SipMediaApplicationId = ptr.String(jtv)
33962			}
33963
33964		default:
33965			_, _ = key, value
33966
33967		}
33968	}
33969	*v = sv
33970	return nil
33971}
33972
33973func awsRestjson1_deserializeDocumentSipRuleTargetApplicationList(v *[]types.SipRuleTargetApplication, value interface{}) error {
33974	if v == nil {
33975		return fmt.Errorf("unexpected nil of type %T", v)
33976	}
33977	if value == nil {
33978		return nil
33979	}
33980
33981	shape, ok := value.([]interface{})
33982	if !ok {
33983		return fmt.Errorf("unexpected JSON type %v", value)
33984	}
33985
33986	var cv []types.SipRuleTargetApplication
33987	if *v == nil {
33988		cv = []types.SipRuleTargetApplication{}
33989	} else {
33990		cv = *v
33991	}
33992
33993	for _, value := range shape {
33994		var col types.SipRuleTargetApplication
33995		destAddr := &col
33996		if err := awsRestjson1_deserializeDocumentSipRuleTargetApplication(&destAddr, value); err != nil {
33997			return err
33998		}
33999		col = *destAddr
34000		cv = append(cv, col)
34001
34002	}
34003	*v = cv
34004	return nil
34005}
34006
34007func awsRestjson1_deserializeDocumentStreamingConfiguration(v **types.StreamingConfiguration, value interface{}) error {
34008	if v == nil {
34009		return fmt.Errorf("unexpected nil of type %T", v)
34010	}
34011	if value == nil {
34012		return nil
34013	}
34014
34015	shape, ok := value.(map[string]interface{})
34016	if !ok {
34017		return fmt.Errorf("unexpected JSON type %v", value)
34018	}
34019
34020	var sv *types.StreamingConfiguration
34021	if *v == nil {
34022		sv = &types.StreamingConfiguration{}
34023	} else {
34024		sv = *v
34025	}
34026
34027	for key, value := range shape {
34028		switch key {
34029		case "DataRetentionInHours":
34030			if value != nil {
34031				jtv, ok := value.(json.Number)
34032				if !ok {
34033					return fmt.Errorf("expected DataRetentionInHours to be json.Number, got %T instead", value)
34034				}
34035				i64, err := jtv.Int64()
34036				if err != nil {
34037					return err
34038				}
34039				sv.DataRetentionInHours = ptr.Int32(int32(i64))
34040			}
34041
34042		case "Disabled":
34043			if value != nil {
34044				jtv, ok := value.(bool)
34045				if !ok {
34046					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34047				}
34048				sv.Disabled = ptr.Bool(jtv)
34049			}
34050
34051		case "StreamingNotificationTargets":
34052			if err := awsRestjson1_deserializeDocumentStreamingNotificationTargetList(&sv.StreamingNotificationTargets, value); err != nil {
34053				return err
34054			}
34055
34056		default:
34057			_, _ = key, value
34058
34059		}
34060	}
34061	*v = sv
34062	return nil
34063}
34064
34065func awsRestjson1_deserializeDocumentStreamingNotificationTarget(v **types.StreamingNotificationTarget, value interface{}) error {
34066	if v == nil {
34067		return fmt.Errorf("unexpected nil of type %T", v)
34068	}
34069	if value == nil {
34070		return nil
34071	}
34072
34073	shape, ok := value.(map[string]interface{})
34074	if !ok {
34075		return fmt.Errorf("unexpected JSON type %v", value)
34076	}
34077
34078	var sv *types.StreamingNotificationTarget
34079	if *v == nil {
34080		sv = &types.StreamingNotificationTarget{}
34081	} else {
34082		sv = *v
34083	}
34084
34085	for key, value := range shape {
34086		switch key {
34087		case "NotificationTarget":
34088			if value != nil {
34089				jtv, ok := value.(string)
34090				if !ok {
34091					return fmt.Errorf("expected NotificationTarget to be of type string, got %T instead", value)
34092				}
34093				sv.NotificationTarget = types.NotificationTarget(jtv)
34094			}
34095
34096		default:
34097			_, _ = key, value
34098
34099		}
34100	}
34101	*v = sv
34102	return nil
34103}
34104
34105func awsRestjson1_deserializeDocumentStreamingNotificationTargetList(v *[]types.StreamingNotificationTarget, value interface{}) error {
34106	if v == nil {
34107		return fmt.Errorf("unexpected nil of type %T", v)
34108	}
34109	if value == nil {
34110		return nil
34111	}
34112
34113	shape, ok := value.([]interface{})
34114	if !ok {
34115		return fmt.Errorf("unexpected JSON type %v", value)
34116	}
34117
34118	var cv []types.StreamingNotificationTarget
34119	if *v == nil {
34120		cv = []types.StreamingNotificationTarget{}
34121	} else {
34122		cv = *v
34123	}
34124
34125	for _, value := range shape {
34126		var col types.StreamingNotificationTarget
34127		destAddr := &col
34128		if err := awsRestjson1_deserializeDocumentStreamingNotificationTarget(&destAddr, value); err != nil {
34129			return err
34130		}
34131		col = *destAddr
34132		cv = append(cv, col)
34133
34134	}
34135	*v = cv
34136	return nil
34137}
34138
34139func awsRestjson1_deserializeDocumentStringList(v *[]string, value interface{}) error {
34140	if v == nil {
34141		return fmt.Errorf("unexpected nil of type %T", v)
34142	}
34143	if value == nil {
34144		return nil
34145	}
34146
34147	shape, ok := value.([]interface{})
34148	if !ok {
34149		return fmt.Errorf("unexpected JSON type %v", value)
34150	}
34151
34152	var cv []string
34153	if *v == nil {
34154		cv = []string{}
34155	} else {
34156		cv = *v
34157	}
34158
34159	for _, value := range shape {
34160		var col string
34161		if value != nil {
34162			jtv, ok := value.(string)
34163			if !ok {
34164				return fmt.Errorf("expected String to be of type string, got %T instead", value)
34165			}
34166			col = jtv
34167		}
34168		cv = append(cv, col)
34169
34170	}
34171	*v = cv
34172	return nil
34173}
34174
34175func awsRestjson1_deserializeDocumentTag(v **types.Tag, value interface{}) error {
34176	if v == nil {
34177		return fmt.Errorf("unexpected nil of type %T", v)
34178	}
34179	if value == nil {
34180		return nil
34181	}
34182
34183	shape, ok := value.(map[string]interface{})
34184	if !ok {
34185		return fmt.Errorf("unexpected JSON type %v", value)
34186	}
34187
34188	var sv *types.Tag
34189	if *v == nil {
34190		sv = &types.Tag{}
34191	} else {
34192		sv = *v
34193	}
34194
34195	for key, value := range shape {
34196		switch key {
34197		case "Key":
34198			if value != nil {
34199				jtv, ok := value.(string)
34200				if !ok {
34201					return fmt.Errorf("expected TagKey to be of type string, got %T instead", value)
34202				}
34203				sv.Key = ptr.String(jtv)
34204			}
34205
34206		case "Value":
34207			if value != nil {
34208				jtv, ok := value.(string)
34209				if !ok {
34210					return fmt.Errorf("expected TagValue to be of type string, got %T instead", value)
34211				}
34212				sv.Value = ptr.String(jtv)
34213			}
34214
34215		default:
34216			_, _ = key, value
34217
34218		}
34219	}
34220	*v = sv
34221	return nil
34222}
34223
34224func awsRestjson1_deserializeDocumentTagList(v *[]types.Tag, value interface{}) error {
34225	if v == nil {
34226		return fmt.Errorf("unexpected nil of type %T", v)
34227	}
34228	if value == nil {
34229		return nil
34230	}
34231
34232	shape, ok := value.([]interface{})
34233	if !ok {
34234		return fmt.Errorf("unexpected JSON type %v", value)
34235	}
34236
34237	var cv []types.Tag
34238	if *v == nil {
34239		cv = []types.Tag{}
34240	} else {
34241		cv = *v
34242	}
34243
34244	for _, value := range shape {
34245		var col types.Tag
34246		destAddr := &col
34247		if err := awsRestjson1_deserializeDocumentTag(&destAddr, value); err != nil {
34248			return err
34249		}
34250		col = *destAddr
34251		cv = append(cv, col)
34252
34253	}
34254	*v = cv
34255	return nil
34256}
34257
34258func awsRestjson1_deserializeDocumentTelephonySettings(v **types.TelephonySettings, value interface{}) error {
34259	if v == nil {
34260		return fmt.Errorf("unexpected nil of type %T", v)
34261	}
34262	if value == nil {
34263		return nil
34264	}
34265
34266	shape, ok := value.(map[string]interface{})
34267	if !ok {
34268		return fmt.Errorf("unexpected JSON type %v", value)
34269	}
34270
34271	var sv *types.TelephonySettings
34272	if *v == nil {
34273		sv = &types.TelephonySettings{}
34274	} else {
34275		sv = *v
34276	}
34277
34278	for key, value := range shape {
34279		switch key {
34280		case "InboundCalling":
34281			if value != nil {
34282				jtv, ok := value.(bool)
34283				if !ok {
34284					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34285				}
34286				sv.InboundCalling = ptr.Bool(jtv)
34287			}
34288
34289		case "OutboundCalling":
34290			if value != nil {
34291				jtv, ok := value.(bool)
34292				if !ok {
34293					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34294				}
34295				sv.OutboundCalling = ptr.Bool(jtv)
34296			}
34297
34298		case "SMS":
34299			if value != nil {
34300				jtv, ok := value.(bool)
34301				if !ok {
34302					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34303				}
34304				sv.SMS = ptr.Bool(jtv)
34305			}
34306
34307		default:
34308			_, _ = key, value
34309
34310		}
34311	}
34312	*v = sv
34313	return nil
34314}
34315
34316func awsRestjson1_deserializeDocumentTermination(v **types.Termination, value interface{}) error {
34317	if v == nil {
34318		return fmt.Errorf("unexpected nil of type %T", v)
34319	}
34320	if value == nil {
34321		return nil
34322	}
34323
34324	shape, ok := value.(map[string]interface{})
34325	if !ok {
34326		return fmt.Errorf("unexpected JSON type %v", value)
34327	}
34328
34329	var sv *types.Termination
34330	if *v == nil {
34331		sv = &types.Termination{}
34332	} else {
34333		sv = *v
34334	}
34335
34336	for key, value := range shape {
34337		switch key {
34338		case "CallingRegions":
34339			if err := awsRestjson1_deserializeDocumentCallingRegionList(&sv.CallingRegions, value); err != nil {
34340				return err
34341			}
34342
34343		case "CidrAllowedList":
34344			if err := awsRestjson1_deserializeDocumentStringList(&sv.CidrAllowedList, value); err != nil {
34345				return err
34346			}
34347
34348		case "CpsLimit":
34349			if value != nil {
34350				jtv, ok := value.(json.Number)
34351				if !ok {
34352					return fmt.Errorf("expected CpsLimit to be json.Number, got %T instead", value)
34353				}
34354				i64, err := jtv.Int64()
34355				if err != nil {
34356					return err
34357				}
34358				sv.CpsLimit = ptr.Int32(int32(i64))
34359			}
34360
34361		case "DefaultPhoneNumber":
34362			if value != nil {
34363				jtv, ok := value.(string)
34364				if !ok {
34365					return fmt.Errorf("expected E164PhoneNumber to be of type string, got %T instead", value)
34366				}
34367				sv.DefaultPhoneNumber = ptr.String(jtv)
34368			}
34369
34370		case "Disabled":
34371			if value != nil {
34372				jtv, ok := value.(bool)
34373				if !ok {
34374					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34375				}
34376				sv.Disabled = ptr.Bool(jtv)
34377			}
34378
34379		default:
34380			_, _ = key, value
34381
34382		}
34383	}
34384	*v = sv
34385	return nil
34386}
34387
34388func awsRestjson1_deserializeDocumentTerminationHealth(v **types.TerminationHealth, value interface{}) error {
34389	if v == nil {
34390		return fmt.Errorf("unexpected nil of type %T", v)
34391	}
34392	if value == nil {
34393		return nil
34394	}
34395
34396	shape, ok := value.(map[string]interface{})
34397	if !ok {
34398		return fmt.Errorf("unexpected JSON type %v", value)
34399	}
34400
34401	var sv *types.TerminationHealth
34402	if *v == nil {
34403		sv = &types.TerminationHealth{}
34404	} else {
34405		sv = *v
34406	}
34407
34408	for key, value := range shape {
34409		switch key {
34410		case "Source":
34411			if value != nil {
34412				jtv, ok := value.(string)
34413				if !ok {
34414					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34415				}
34416				sv.Source = ptr.String(jtv)
34417			}
34418
34419		case "Timestamp":
34420			if value != nil {
34421				jtv, ok := value.(string)
34422				if !ok {
34423					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34424				}
34425				t, err := smithytime.ParseDateTime(jtv)
34426				if err != nil {
34427					return err
34428				}
34429				sv.Timestamp = ptr.Time(t)
34430			}
34431
34432		default:
34433			_, _ = key, value
34434
34435		}
34436	}
34437	*v = sv
34438	return nil
34439}
34440
34441func awsRestjson1_deserializeDocumentThrottledClientException(v **types.ThrottledClientException, value interface{}) error {
34442	if v == nil {
34443		return fmt.Errorf("unexpected nil of type %T", v)
34444	}
34445	if value == nil {
34446		return nil
34447	}
34448
34449	shape, ok := value.(map[string]interface{})
34450	if !ok {
34451		return fmt.Errorf("unexpected JSON type %v", value)
34452	}
34453
34454	var sv *types.ThrottledClientException
34455	if *v == nil {
34456		sv = &types.ThrottledClientException{}
34457	} else {
34458		sv = *v
34459	}
34460
34461	for key, value := range shape {
34462		switch key {
34463		case "Code":
34464			if value != nil {
34465				jtv, ok := value.(string)
34466				if !ok {
34467					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
34468				}
34469				sv.Code = types.ErrorCode(jtv)
34470			}
34471
34472		case "Message":
34473			if value != nil {
34474				jtv, ok := value.(string)
34475				if !ok {
34476					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34477				}
34478				sv.Message = ptr.String(jtv)
34479			}
34480
34481		default:
34482			_, _ = key, value
34483
34484		}
34485	}
34486	*v = sv
34487	return nil
34488}
34489
34490func awsRestjson1_deserializeDocumentUnauthorizedClientException(v **types.UnauthorizedClientException, value interface{}) error {
34491	if v == nil {
34492		return fmt.Errorf("unexpected nil of type %T", v)
34493	}
34494	if value == nil {
34495		return nil
34496	}
34497
34498	shape, ok := value.(map[string]interface{})
34499	if !ok {
34500		return fmt.Errorf("unexpected JSON type %v", value)
34501	}
34502
34503	var sv *types.UnauthorizedClientException
34504	if *v == nil {
34505		sv = &types.UnauthorizedClientException{}
34506	} else {
34507		sv = *v
34508	}
34509
34510	for key, value := range shape {
34511		switch key {
34512		case "Code":
34513			if value != nil {
34514				jtv, ok := value.(string)
34515				if !ok {
34516					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
34517				}
34518				sv.Code = types.ErrorCode(jtv)
34519			}
34520
34521		case "Message":
34522			if value != nil {
34523				jtv, ok := value.(string)
34524				if !ok {
34525					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34526				}
34527				sv.Message = ptr.String(jtv)
34528			}
34529
34530		default:
34531			_, _ = key, value
34532
34533		}
34534	}
34535	*v = sv
34536	return nil
34537}
34538
34539func awsRestjson1_deserializeDocumentUnprocessableEntityException(v **types.UnprocessableEntityException, value interface{}) error {
34540	if v == nil {
34541		return fmt.Errorf("unexpected nil of type %T", v)
34542	}
34543	if value == nil {
34544		return nil
34545	}
34546
34547	shape, ok := value.(map[string]interface{})
34548	if !ok {
34549		return fmt.Errorf("unexpected JSON type %v", value)
34550	}
34551
34552	var sv *types.UnprocessableEntityException
34553	if *v == nil {
34554		sv = &types.UnprocessableEntityException{}
34555	} else {
34556		sv = *v
34557	}
34558
34559	for key, value := range shape {
34560		switch key {
34561		case "Code":
34562			if value != nil {
34563				jtv, ok := value.(string)
34564				if !ok {
34565					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
34566				}
34567				sv.Code = types.ErrorCode(jtv)
34568			}
34569
34570		case "Message":
34571			if value != nil {
34572				jtv, ok := value.(string)
34573				if !ok {
34574					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34575				}
34576				sv.Message = ptr.String(jtv)
34577			}
34578
34579		default:
34580			_, _ = key, value
34581
34582		}
34583	}
34584	*v = sv
34585	return nil
34586}
34587
34588func awsRestjson1_deserializeDocumentUser(v **types.User, value interface{}) error {
34589	if v == nil {
34590		return fmt.Errorf("unexpected nil of type %T", v)
34591	}
34592	if value == nil {
34593		return nil
34594	}
34595
34596	shape, ok := value.(map[string]interface{})
34597	if !ok {
34598		return fmt.Errorf("unexpected JSON type %v", value)
34599	}
34600
34601	var sv *types.User
34602	if *v == nil {
34603		sv = &types.User{}
34604	} else {
34605		sv = *v
34606	}
34607
34608	for key, value := range shape {
34609		switch key {
34610		case "AccountId":
34611			if value != nil {
34612				jtv, ok := value.(string)
34613				if !ok {
34614					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34615				}
34616				sv.AccountId = ptr.String(jtv)
34617			}
34618
34619		case "AlexaForBusinessMetadata":
34620			if err := awsRestjson1_deserializeDocumentAlexaForBusinessMetadata(&sv.AlexaForBusinessMetadata, value); err != nil {
34621				return err
34622			}
34623
34624		case "DisplayName":
34625			if value != nil {
34626				jtv, ok := value.(string)
34627				if !ok {
34628					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
34629				}
34630				sv.DisplayName = ptr.String(jtv)
34631			}
34632
34633		case "InvitedOn":
34634			if value != nil {
34635				jtv, ok := value.(string)
34636				if !ok {
34637					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34638				}
34639				t, err := smithytime.ParseDateTime(jtv)
34640				if err != nil {
34641					return err
34642				}
34643				sv.InvitedOn = ptr.Time(t)
34644			}
34645
34646		case "LicenseType":
34647			if value != nil {
34648				jtv, ok := value.(string)
34649				if !ok {
34650					return fmt.Errorf("expected License to be of type string, got %T instead", value)
34651				}
34652				sv.LicenseType = types.License(jtv)
34653			}
34654
34655		case "PersonalPIN":
34656			if value != nil {
34657				jtv, ok := value.(string)
34658				if !ok {
34659					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34660				}
34661				sv.PersonalPIN = ptr.String(jtv)
34662			}
34663
34664		case "PrimaryEmail":
34665			if value != nil {
34666				jtv, ok := value.(string)
34667				if !ok {
34668					return fmt.Errorf("expected EmailAddress to be of type string, got %T instead", value)
34669				}
34670				sv.PrimaryEmail = ptr.String(jtv)
34671			}
34672
34673		case "PrimaryProvisionedNumber":
34674			if value != nil {
34675				jtv, ok := value.(string)
34676				if !ok {
34677					return fmt.Errorf("expected SensitiveString to be of type string, got %T instead", value)
34678				}
34679				sv.PrimaryProvisionedNumber = ptr.String(jtv)
34680			}
34681
34682		case "RegisteredOn":
34683			if value != nil {
34684				jtv, ok := value.(string)
34685				if !ok {
34686					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34687				}
34688				t, err := smithytime.ParseDateTime(jtv)
34689				if err != nil {
34690					return err
34691				}
34692				sv.RegisteredOn = ptr.Time(t)
34693			}
34694
34695		case "UserId":
34696			if value != nil {
34697				jtv, ok := value.(string)
34698				if !ok {
34699					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34700				}
34701				sv.UserId = ptr.String(jtv)
34702			}
34703
34704		case "UserInvitationStatus":
34705			if value != nil {
34706				jtv, ok := value.(string)
34707				if !ok {
34708					return fmt.Errorf("expected InviteStatus to be of type string, got %T instead", value)
34709				}
34710				sv.UserInvitationStatus = types.InviteStatus(jtv)
34711			}
34712
34713		case "UserRegistrationStatus":
34714			if value != nil {
34715				jtv, ok := value.(string)
34716				if !ok {
34717					return fmt.Errorf("expected RegistrationStatus to be of type string, got %T instead", value)
34718				}
34719				sv.UserRegistrationStatus = types.RegistrationStatus(jtv)
34720			}
34721
34722		case "UserType":
34723			if value != nil {
34724				jtv, ok := value.(string)
34725				if !ok {
34726					return fmt.Errorf("expected UserType to be of type string, got %T instead", value)
34727				}
34728				sv.UserType = types.UserType(jtv)
34729			}
34730
34731		default:
34732			_, _ = key, value
34733
34734		}
34735	}
34736	*v = sv
34737	return nil
34738}
34739
34740func awsRestjson1_deserializeDocumentUserError(v **types.UserError, value interface{}) error {
34741	if v == nil {
34742		return fmt.Errorf("unexpected nil of type %T", v)
34743	}
34744	if value == nil {
34745		return nil
34746	}
34747
34748	shape, ok := value.(map[string]interface{})
34749	if !ok {
34750		return fmt.Errorf("unexpected JSON type %v", value)
34751	}
34752
34753	var sv *types.UserError
34754	if *v == nil {
34755		sv = &types.UserError{}
34756	} else {
34757		sv = *v
34758	}
34759
34760	for key, value := range shape {
34761		switch key {
34762		case "ErrorCode":
34763			if value != nil {
34764				jtv, ok := value.(string)
34765				if !ok {
34766					return fmt.Errorf("expected ErrorCode to be of type string, got %T instead", value)
34767				}
34768				sv.ErrorCode = types.ErrorCode(jtv)
34769			}
34770
34771		case "ErrorMessage":
34772			if value != nil {
34773				jtv, ok := value.(string)
34774				if !ok {
34775					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34776				}
34777				sv.ErrorMessage = ptr.String(jtv)
34778			}
34779
34780		case "UserId":
34781			if value != nil {
34782				jtv, ok := value.(string)
34783				if !ok {
34784					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34785				}
34786				sv.UserId = ptr.String(jtv)
34787			}
34788
34789		default:
34790			_, _ = key, value
34791
34792		}
34793	}
34794	*v = sv
34795	return nil
34796}
34797
34798func awsRestjson1_deserializeDocumentUserErrorList(v *[]types.UserError, value interface{}) error {
34799	if v == nil {
34800		return fmt.Errorf("unexpected nil of type %T", v)
34801	}
34802	if value == nil {
34803		return nil
34804	}
34805
34806	shape, ok := value.([]interface{})
34807	if !ok {
34808		return fmt.Errorf("unexpected JSON type %v", value)
34809	}
34810
34811	var cv []types.UserError
34812	if *v == nil {
34813		cv = []types.UserError{}
34814	} else {
34815		cv = *v
34816	}
34817
34818	for _, value := range shape {
34819		var col types.UserError
34820		destAddr := &col
34821		if err := awsRestjson1_deserializeDocumentUserError(&destAddr, value); err != nil {
34822			return err
34823		}
34824		col = *destAddr
34825		cv = append(cv, col)
34826
34827	}
34828	*v = cv
34829	return nil
34830}
34831
34832func awsRestjson1_deserializeDocumentUserList(v *[]types.User, 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.([]interface{})
34841	if !ok {
34842		return fmt.Errorf("unexpected JSON type %v", value)
34843	}
34844
34845	var cv []types.User
34846	if *v == nil {
34847		cv = []types.User{}
34848	} else {
34849		cv = *v
34850	}
34851
34852	for _, value := range shape {
34853		var col types.User
34854		destAddr := &col
34855		if err := awsRestjson1_deserializeDocumentUser(&destAddr, value); err != nil {
34856			return err
34857		}
34858		col = *destAddr
34859		cv = append(cv, col)
34860
34861	}
34862	*v = cv
34863	return nil
34864}
34865
34866func awsRestjson1_deserializeDocumentUserSettings(v **types.UserSettings, value interface{}) error {
34867	if v == nil {
34868		return fmt.Errorf("unexpected nil of type %T", v)
34869	}
34870	if value == nil {
34871		return nil
34872	}
34873
34874	shape, ok := value.(map[string]interface{})
34875	if !ok {
34876		return fmt.Errorf("unexpected JSON type %v", value)
34877	}
34878
34879	var sv *types.UserSettings
34880	if *v == nil {
34881		sv = &types.UserSettings{}
34882	} else {
34883		sv = *v
34884	}
34885
34886	for key, value := range shape {
34887		switch key {
34888		case "Telephony":
34889			if err := awsRestjson1_deserializeDocumentTelephonySettings(&sv.Telephony, value); err != nil {
34890				return err
34891			}
34892
34893		default:
34894			_, _ = key, value
34895
34896		}
34897	}
34898	*v = sv
34899	return nil
34900}
34901
34902func awsRestjson1_deserializeDocumentVoiceConnector(v **types.VoiceConnector, value interface{}) error {
34903	if v == nil {
34904		return fmt.Errorf("unexpected nil of type %T", v)
34905	}
34906	if value == nil {
34907		return nil
34908	}
34909
34910	shape, ok := value.(map[string]interface{})
34911	if !ok {
34912		return fmt.Errorf("unexpected JSON type %v", value)
34913	}
34914
34915	var sv *types.VoiceConnector
34916	if *v == nil {
34917		sv = &types.VoiceConnector{}
34918	} else {
34919		sv = *v
34920	}
34921
34922	for key, value := range shape {
34923		switch key {
34924		case "AwsRegion":
34925			if value != nil {
34926				jtv, ok := value.(string)
34927				if !ok {
34928					return fmt.Errorf("expected VoiceConnectorAwsRegion to be of type string, got %T instead", value)
34929				}
34930				sv.AwsRegion = types.VoiceConnectorAwsRegion(jtv)
34931			}
34932
34933		case "CreatedTimestamp":
34934			if value != nil {
34935				jtv, ok := value.(string)
34936				if !ok {
34937					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34938				}
34939				t, err := smithytime.ParseDateTime(jtv)
34940				if err != nil {
34941					return err
34942				}
34943				sv.CreatedTimestamp = ptr.Time(t)
34944			}
34945
34946		case "Name":
34947			if value != nil {
34948				jtv, ok := value.(string)
34949				if !ok {
34950					return fmt.Errorf("expected VoiceConnectorName to be of type string, got %T instead", value)
34951				}
34952				sv.Name = ptr.String(jtv)
34953			}
34954
34955		case "OutboundHostName":
34956			if value != nil {
34957				jtv, ok := value.(string)
34958				if !ok {
34959					return fmt.Errorf("expected String to be of type string, got %T instead", value)
34960				}
34961				sv.OutboundHostName = ptr.String(jtv)
34962			}
34963
34964		case "RequireEncryption":
34965			if value != nil {
34966				jtv, ok := value.(bool)
34967				if !ok {
34968					return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
34969				}
34970				sv.RequireEncryption = ptr.Bool(jtv)
34971			}
34972
34973		case "UpdatedTimestamp":
34974			if value != nil {
34975				jtv, ok := value.(string)
34976				if !ok {
34977					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
34978				}
34979				t, err := smithytime.ParseDateTime(jtv)
34980				if err != nil {
34981					return err
34982				}
34983				sv.UpdatedTimestamp = ptr.Time(t)
34984			}
34985
34986		case "VoiceConnectorId":
34987			if value != nil {
34988				jtv, ok := value.(string)
34989				if !ok {
34990					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
34991				}
34992				sv.VoiceConnectorId = ptr.String(jtv)
34993			}
34994
34995		default:
34996			_, _ = key, value
34997
34998		}
34999	}
35000	*v = sv
35001	return nil
35002}
35003
35004func awsRestjson1_deserializeDocumentVoiceConnectorGroup(v **types.VoiceConnectorGroup, value interface{}) error {
35005	if v == nil {
35006		return fmt.Errorf("unexpected nil of type %T", v)
35007	}
35008	if value == nil {
35009		return nil
35010	}
35011
35012	shape, ok := value.(map[string]interface{})
35013	if !ok {
35014		return fmt.Errorf("unexpected JSON type %v", value)
35015	}
35016
35017	var sv *types.VoiceConnectorGroup
35018	if *v == nil {
35019		sv = &types.VoiceConnectorGroup{}
35020	} else {
35021		sv = *v
35022	}
35023
35024	for key, value := range shape {
35025		switch key {
35026		case "CreatedTimestamp":
35027			if value != nil {
35028				jtv, ok := value.(string)
35029				if !ok {
35030					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35031				}
35032				t, err := smithytime.ParseDateTime(jtv)
35033				if err != nil {
35034					return err
35035				}
35036				sv.CreatedTimestamp = ptr.Time(t)
35037			}
35038
35039		case "Name":
35040			if value != nil {
35041				jtv, ok := value.(string)
35042				if !ok {
35043					return fmt.Errorf("expected VoiceConnectorGroupName to be of type string, got %T instead", value)
35044				}
35045				sv.Name = ptr.String(jtv)
35046			}
35047
35048		case "UpdatedTimestamp":
35049			if value != nil {
35050				jtv, ok := value.(string)
35051				if !ok {
35052					return fmt.Errorf("expected Iso8601Timestamp to be of type string, got %T instead", value)
35053				}
35054				t, err := smithytime.ParseDateTime(jtv)
35055				if err != nil {
35056					return err
35057				}
35058				sv.UpdatedTimestamp = ptr.Time(t)
35059			}
35060
35061		case "VoiceConnectorGroupId":
35062			if value != nil {
35063				jtv, ok := value.(string)
35064				if !ok {
35065					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35066				}
35067				sv.VoiceConnectorGroupId = ptr.String(jtv)
35068			}
35069
35070		case "VoiceConnectorItems":
35071			if err := awsRestjson1_deserializeDocumentVoiceConnectorItemList(&sv.VoiceConnectorItems, value); err != nil {
35072				return err
35073			}
35074
35075		default:
35076			_, _ = key, value
35077
35078		}
35079	}
35080	*v = sv
35081	return nil
35082}
35083
35084func awsRestjson1_deserializeDocumentVoiceConnectorGroupList(v *[]types.VoiceConnectorGroup, value interface{}) error {
35085	if v == nil {
35086		return fmt.Errorf("unexpected nil of type %T", v)
35087	}
35088	if value == nil {
35089		return nil
35090	}
35091
35092	shape, ok := value.([]interface{})
35093	if !ok {
35094		return fmt.Errorf("unexpected JSON type %v", value)
35095	}
35096
35097	var cv []types.VoiceConnectorGroup
35098	if *v == nil {
35099		cv = []types.VoiceConnectorGroup{}
35100	} else {
35101		cv = *v
35102	}
35103
35104	for _, value := range shape {
35105		var col types.VoiceConnectorGroup
35106		destAddr := &col
35107		if err := awsRestjson1_deserializeDocumentVoiceConnectorGroup(&destAddr, value); err != nil {
35108			return err
35109		}
35110		col = *destAddr
35111		cv = append(cv, col)
35112
35113	}
35114	*v = cv
35115	return nil
35116}
35117
35118func awsRestjson1_deserializeDocumentVoiceConnectorItem(v **types.VoiceConnectorItem, value interface{}) error {
35119	if v == nil {
35120		return fmt.Errorf("unexpected nil of type %T", v)
35121	}
35122	if value == nil {
35123		return nil
35124	}
35125
35126	shape, ok := value.(map[string]interface{})
35127	if !ok {
35128		return fmt.Errorf("unexpected JSON type %v", value)
35129	}
35130
35131	var sv *types.VoiceConnectorItem
35132	if *v == nil {
35133		sv = &types.VoiceConnectorItem{}
35134	} else {
35135		sv = *v
35136	}
35137
35138	for key, value := range shape {
35139		switch key {
35140		case "Priority":
35141			if value != nil {
35142				jtv, ok := value.(json.Number)
35143				if !ok {
35144					return fmt.Errorf("expected VoiceConnectorItemPriority to be json.Number, got %T instead", value)
35145				}
35146				i64, err := jtv.Int64()
35147				if err != nil {
35148					return err
35149				}
35150				sv.Priority = ptr.Int32(int32(i64))
35151			}
35152
35153		case "VoiceConnectorId":
35154			if value != nil {
35155				jtv, ok := value.(string)
35156				if !ok {
35157					return fmt.Errorf("expected NonEmptyString to be of type string, got %T instead", value)
35158				}
35159				sv.VoiceConnectorId = ptr.String(jtv)
35160			}
35161
35162		default:
35163			_, _ = key, value
35164
35165		}
35166	}
35167	*v = sv
35168	return nil
35169}
35170
35171func awsRestjson1_deserializeDocumentVoiceConnectorItemList(v *[]types.VoiceConnectorItem, value interface{}) error {
35172	if v == nil {
35173		return fmt.Errorf("unexpected nil of type %T", v)
35174	}
35175	if value == nil {
35176		return nil
35177	}
35178
35179	shape, ok := value.([]interface{})
35180	if !ok {
35181		return fmt.Errorf("unexpected JSON type %v", value)
35182	}
35183
35184	var cv []types.VoiceConnectorItem
35185	if *v == nil {
35186		cv = []types.VoiceConnectorItem{}
35187	} else {
35188		cv = *v
35189	}
35190
35191	for _, value := range shape {
35192		var col types.VoiceConnectorItem
35193		destAddr := &col
35194		if err := awsRestjson1_deserializeDocumentVoiceConnectorItem(&destAddr, value); err != nil {
35195			return err
35196		}
35197		col = *destAddr
35198		cv = append(cv, col)
35199
35200	}
35201	*v = cv
35202	return nil
35203}
35204
35205func awsRestjson1_deserializeDocumentVoiceConnectorList(v *[]types.VoiceConnector, value interface{}) error {
35206	if v == nil {
35207		return fmt.Errorf("unexpected nil of type %T", v)
35208	}
35209	if value == nil {
35210		return nil
35211	}
35212
35213	shape, ok := value.([]interface{})
35214	if !ok {
35215		return fmt.Errorf("unexpected JSON type %v", value)
35216	}
35217
35218	var cv []types.VoiceConnector
35219	if *v == nil {
35220		cv = []types.VoiceConnector{}
35221	} else {
35222		cv = *v
35223	}
35224
35225	for _, value := range shape {
35226		var col types.VoiceConnector
35227		destAddr := &col
35228		if err := awsRestjson1_deserializeDocumentVoiceConnector(&destAddr, value); err != nil {
35229			return err
35230		}
35231		col = *destAddr
35232		cv = append(cv, col)
35233
35234	}
35235	*v = cv
35236	return nil
35237}
35238
35239func awsRestjson1_deserializeDocumentVoiceConnectorSettings(v **types.VoiceConnectorSettings, 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.VoiceConnectorSettings
35253	if *v == nil {
35254		sv = &types.VoiceConnectorSettings{}
35255	} else {
35256		sv = *v
35257	}
35258
35259	for key, value := range shape {
35260		switch key {
35261		case "CdrBucket":
35262			if value != nil {
35263				jtv, ok := value.(string)
35264				if !ok {
35265					return fmt.Errorf("expected String to be of type string, got %T instead", value)
35266				}
35267				sv.CdrBucket = ptr.String(jtv)
35268			}
35269
35270		default:
35271			_, _ = key, value
35272
35273		}
35274	}
35275	*v = sv
35276	return nil
35277}
35278